From b44f350cd0a629030a256bfbf5c56c76b6155722 Mon Sep 17 00:00:00 2001 From: xiaoyu <17601026937@163.com> Date: Wed, 16 Jun 2021 19:32:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E7=94=A8=E6=88=B7=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E3=80=81=E5=95=86=E6=88=B7=E4=BF=A1=E6=81=AF=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mgr/ctrl/merchant/MchInfoController.java | 40 +++++++++---------- .../mgr/ctrl/sysuser/SysUserController.java | 15 ++----- .../mch/ctrl/sysuser/SysUserController.java | 28 ++++++------- .../jeepay/mch/service/AuthService.java | 2 +- 4 files changed, 36 insertions(+), 49 deletions(-) diff --git a/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java b/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java index b333c87..5d8f65e 100644 --- a/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java +++ b/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/merchant/MchInfoController.java @@ -15,6 +15,7 @@ */ package com.jeequan.jeepay.mgr.ctrl.merchant; +import cn.hutool.core.codec.Base64; import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -130,6 +131,7 @@ public class MchInfoController extends CommonCtrl { @RequestMapping(value="/{mchNo}", method = RequestMethod.PUT) public ApiRes update(@PathVariable("mchNo") String mchNo) { MchInfo mchInfo = getObject(MchInfo.class); + List userIdCacheList = new ArrayList<>(); mchInfo.setMchNo(mchNo); // 校验该商户是否为特邀商户 MchInfo dbMchInfo = mchInfoService.getById(mchNo); @@ -143,40 +145,38 @@ public class MchInfoController extends CommonCtrl { } // 如果商户状态为禁用状态,清除该商户用户登录信息 if (mchInfo.getState() == CS.NO) { - List userIdList = new ArrayList<>(); List userList = sysUserService.list(SysUser.gw() .eq(SysUser::getBelongInfoId, mchNo) .eq(SysUser::getSysType, CS.SYS_TYPE.MCH) ); if (userList.size() > 0) { for (SysUser user:userList) { - userIdList.add(user.getSysUserId()); + userIdCacheList.add(user.getSysUserId()); } } - // 推送mq删除redis用户缓存 - mqQueue4ModifyMchUserRemove.push(StringUtils.join(userIdList, ",")); } + //判断是否重置密码 Boolean resetPass = getReqParamJSON().getBoolean("resetPass"); if (resetPass != null && resetPass) { - Boolean defaultPass = getReqParamJSON().getBoolean("defaultPass"); - String updatePwd = ""; - if (!defaultPass) { - // 获取修改的密码 - updatePwd = getValStringRequired("confirmPwd"); - }else { - // 重置默认密码 - updatePwd = CS.DEFAULT_PWD; + //判断是否重置密码 + String updatePwd = getReqParamJSON().getBoolean("defaultPass") == false? Base64.decodeStr(getValStringRequired("confirmPwd")):CS.DEFAULT_PWD; + if (StringUtils.isNotEmpty(updatePwd)) { + // 获取商户最初的用户 + SysUser sysUser = sysUserService.getOne(SysUser.gw() + .eq(SysUser::getBelongInfoId, mchNo) + .eq(SysUser::getSysType, CS.SYS_TYPE.MCH) + .eq(SysUser::getIsAdmin, CS.YES) + ); + sysUserAuthService.resetAuthInfo(sysUser.getSysUserId(), null, null, updatePwd, CS.SYS_TYPE.MCH); + if (mchInfo.getState() == CS.YES) userIdCacheList = Arrays.asList(sysUser.getSysUserId()); } - // 获取商户最初的用户 - List userList = sysUserService.list(SysUser.gw() - .eq(SysUser::getBelongInfoId, mchNo) - .eq(SysUser::getSysType, CS.SYS_TYPE.MCH) - .orderByAsc(SysUser::getCreatedAt) - ); - sysUserAuthService.resetAuthInfo(userList.get(0).getSysUserId(), null, null, updatePwd, CS.SYS_TYPE.MCH); + } + + // 商户被禁用、修改密码删除mq用户缓存 + if (mchInfo.getState() == CS.NO || resetPass) { // 推送mq删除redis用户缓存 - mqQueue4ModifyMchUserRemove.push(StringUtils.join(Arrays.asList(userList.get(0).getSysUserId()), ",")); + mqQueue4ModifyMchUserRemove.push(StringUtils.join(Arrays.asList(userIdCacheList), ",")); } boolean result = mchInfoService.updateById(mchInfo); diff --git a/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/sysuser/SysUserController.java b/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/sysuser/SysUserController.java index c73d4f2..f06405a 100644 --- a/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/sysuser/SysUserController.java +++ b/jeepay-manager/src/main/java/com/jeequan/jeepay/mgr/ctrl/sysuser/SysUserController.java @@ -15,13 +15,13 @@ */ package com.jeequan.jeepay.mgr.ctrl.sysuser; +import cn.hutool.core.codec.Base64; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jeequan.jeepay.core.aop.MethodLog; import com.jeequan.jeepay.core.constants.CS; import com.jeequan.jeepay.core.entity.SysUser; import com.jeequan.jeepay.core.exception.BizException; -import com.jeequan.jeepay.core.utils.StringKit; import com.jeequan.jeepay.core.model.ApiRes; import com.jeequan.jeepay.mgr.ctrl.CommonCtrl; import com.jeequan.jeepay.mgr.service.AuthService; @@ -131,23 +131,14 @@ public class SysUserController extends CommonCtrl { public ApiRes update(@PathVariable("recordId") Long recordId) { SysUser sysUser = getObject(SysUser.class); sysUser.setSysUserId(recordId); - Boolean resetPass = getReqParamJSON().getBoolean("resetPass"); //判断是否自己禁用自己 if(recordId.equals(getCurrentUser().getSysUser().getSysUserId()) && sysUser.getState() != null && sysUser.getState() == CS.PUB_DISABLE){ throw new BizException("系统不允许禁用当前登陆用户!"); } - //判断是否重置密码 + Boolean resetPass = getReqParamJSON().getBoolean("resetPass"); if (resetPass != null && resetPass) { - Boolean defaultPass = getReqParamJSON().getBoolean("defaultPass"); - String updatePwd = ""; - if (!defaultPass) { - // 获取修改的密码 - updatePwd = getValStringRequired("confirmPwd"); - }else { - // 重置默认密码 - updatePwd = CS.DEFAULT_PWD; - } + String updatePwd = getReqParamJSON().getBoolean("defaultPass") == false ? Base64.decodeStr(getValStringRequired("confirmPwd")) : CS.DEFAULT_PWD; sysUserAuthService.resetAuthInfo(recordId, null, null, updatePwd, CS.SYS_TYPE.MGR); // 删除用户redis缓存信息 authService.delAuthentication(Arrays.asList(recordId)); diff --git a/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/ctrl/sysuser/SysUserController.java b/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/ctrl/sysuser/SysUserController.java index ff193fd..dbf2d87 100644 --- a/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/ctrl/sysuser/SysUserController.java +++ b/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/ctrl/sysuser/SysUserController.java @@ -15,6 +15,7 @@ */ package com.jeequan.jeepay.mch.ctrl.sysuser; +import cn.hutool.core.codec.Base64; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.jeequan.jeepay.core.aop.MethodLog; @@ -100,6 +101,7 @@ public class SysUserController extends CommonCtrl { public ApiRes add() { SysUser sysUser = getObject(SysUser.class); sysUser.setBelongInfoId(getCurrentUser().getSysUser().getBelongInfoId()); + sysUser.setIsAdmin(CS.NO); sysUserService.addSysUser(sysUser, CS.SYS_TYPE.MCH); return ApiRes.ok(); } @@ -137,28 +139,22 @@ public class SysUserController extends CommonCtrl { public ApiRes update(@PathVariable("recordId") Long recordId) { SysUser sysUser = getObject(SysUser.class); sysUser.setSysUserId(recordId); - + // 如果当前用户为非超管则用户状态为普通用户 + if (getCurrentUser().getSysUser().getIsAdmin() != CS.YES) sysUser.setIsAdmin(CS.NO); SysUser dbRecord = sysUserService.getOne(SysUser.gw().eq(SysUser::getSysUserId, recordId).eq(SysUser::getBelongInfoId, getCurrentMchNo())); if (dbRecord == null) throw new BizException(ApiCodeEnum.SYS_OPERATION_FAIL_SELETE); - Boolean resetPass = getReqParamJSON().getBoolean("resetPass"); //判断是否自己禁用自己 if(recordId.equals(getCurrentUser().getSysUser().getSysUserId()) && sysUser.getState() != null && sysUser.getState() == CS.PUB_DISABLE){ throw new BizException("系统不允许禁用当前登陆用户!"); } //判断是否重置密码 + Boolean resetPass = getReqParamJSON().getBoolean("resetPass"); if (resetPass != null && resetPass) { - Boolean defaultPass = getReqParamJSON().getBoolean("defaultPass"); - String updatePwd = ""; - if (!defaultPass) { - // 获取修改的密码 - updatePwd = getValStringRequired("confirmPwd"); - }else { - // 重置默认密码 - updatePwd = CS.DEFAULT_PWD; - } - sysUserAuthService.resetAuthInfo(recordId, null, null, updatePwd, CS.SYS_TYPE.MCH); + //判断是否重置密码 + String updatePwd = getReqParamJSON().getBoolean("defaultPass") == false? Base64.decodeStr(getValStringRequired("confirmPwd")):CS.DEFAULT_PWD; + sysUserAuthService.resetAuthInfo(sysUser.getSysUserId(), null, null, updatePwd, CS.SYS_TYPE.MCH); // 删除用户redis缓存信息 authService.delAuthentication(Arrays.asList(recordId)); } @@ -190,13 +186,13 @@ public class SysUserController extends CommonCtrl { } //判断是否删除商户默认超管 - List userList = sysUserService.list(SysUser.gw() - .eq(SysUser::getBelongInfoId, sysUser.getBelongInfoId()) + SysUser mchUserDefault = sysUserService.getOne(SysUser.gw() + .eq(SysUser::getBelongInfoId, getCurrentMchNo()) .eq(SysUser::getSysType, CS.SYS_TYPE.MCH) - .orderByAsc(SysUser::getCreatedAt) + .eq(SysUser::getIsAdmin, CS.YES) ); - if (userList.size() > 0 && userList.get(0).getSysUserId().equals(recordId)) { + if (mchUserDefault.getSysUserId().equals(recordId)) { throw new BizException("系统不允许删除商户默认用户!"); } diff --git a/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/service/AuthService.java b/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/service/AuthService.java index 11f73db..5180455 100644 --- a/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/service/AuthService.java +++ b/jeepay-merchant/src/main/java/com/jeequan/jeepay/mch/service/AuthService.java @@ -97,7 +97,7 @@ public class AuthService { SysUser sysUser = jeeUserDetails.getSysUser(); //非超级管理员 && 不包含左侧菜单 进行错误提示 - if(sysUser.getIsAdmin() != CS.YES && sysEntitlementMapper.userHasLeftMenu(sysUser.getSysUserId(), CS.SYS_TYPE.MGR) <= 0){ + if(sysUser.getIsAdmin() != CS.YES && sysEntitlementMapper.userHasLeftMenu(sysUser.getSysUserId(), CS.SYS_TYPE.MCH) <= 0){ throw new BizException("当前用户未分配任何菜单权限,请联系管理员进行分配后再登录!"); } -- GitLab