From b4994d77e1febfc36a97a8c8dbe86e4ee96f85e5 Mon Sep 17 00:00:00 2001 From: wynne1005 Date: Thu, 3 Jun 2021 09:34:13 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=9D=BE=E4=B8=8B=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E9=87=8D=E7=BD=AE=E7=AD=96=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/iservice/busi/ISysUserPasswordService.java | 16 ++- .../controller/busi/SysUserController.java | 153 +++++++++++---------- .../busi/SysUserSavePasswordService.java | 28 ++++ 3 files changed, 121 insertions(+), 76 deletions(-) diff --git a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserPasswordService.java b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserPasswordService.java index 2c77db1..504b270 100644 --- a/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserPasswordService.java +++ b/modules/i3plus-core-api/src/main/java/cn/estsh/i3plus/core/api/iservice/busi/ISysUserPasswordService.java @@ -15,18 +15,22 @@ public interface ISysUserPasswordService extends ICrudService { /** * 修改用户密码 - * @param userId 用户ID + * + * @param userId 用户ID * @param password 旧密码 - * @param newPwd 新密码 + * @param newPwd 新密码 */ @ApiOperation(value = "修改用户密码") - void updatePassword(Long userId,String password,String newPwd); + void updatePassword(Long userId, String password, String newPwd); @ApiOperation(value = "修改用户密码") - void updatePassword(String loginName,String password,String newPwd); + void updatePassword(String loginName, String password, String newPwd); @ApiOperation(value = "重置用户密码") - void updatePassword(Long userId,String password); + void updatePassword(Long userId, String password); - void updatePasswordWizoutSession(String loginName,String password,String newPwd); + @ApiOperation(value = "重置用户密码") + void updatePasswordResetLastModifyTime(Long userId, String password); + + void updatePasswordWizoutSession(String loginName, String password, String newPwd); } diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java index aace7cf..0947775 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/controller/busi/SysUserController.java @@ -57,7 +57,7 @@ import java.util.List; @RestController @Api(tags = "系统用户服务") @RequestMapping(PlatformConstWords.BASE_URL + "/sys-user") -public class SysUserController extends CoreBaseController{ +public class SysUserController extends CoreBaseController { public static final Logger LOGGER = LoggerFactory.getLogger(SysUserController.class); @@ -81,26 +81,27 @@ public class SysUserController extends CoreBaseController{ /** * 新增系统用户 + * * @param sysUser 用户 * @param roleIds 角色id * @return 处理结果 */ @PostMapping(value = "/insert") @ApiOperation(value = "新增用户", notes = "新增系统用户") - public ResultBean insertSysUser(SysUser sysUser,String[] roleIds) { + public ResultBean insertSysUser(SysUser sysUser, String[] roleIds) { try { startMultiService(); - ConvertBean.modelSafeArrayNumber(roleIds,true); + ConvertBean.modelSafeArrayNumber(roleIds, true); ValidatorBean.beginValid(sysUser) - .numberCheck("userInfoId",sysUser.getUserInfoId()) - .notNull("userLoginName",sysUser.getUserLoginName()) + .numberCheck("userInfoId", sysUser.getUserInfoId()) + .notNull("userLoginName", sysUser.getUserLoginName()) // FIXME 松下取消邮箱校验 // .notNull("userEmail",sysUser.getUserEmail()) - .notNull("userLoginPassword",sysUser.getUserLoginPassword()); + .notNull("userLoginPassword", sysUser.getUserLoginPassword()); - if(roleIds == null || roleIds.length <= 0){ + if (roleIds == null || roleIds.length <= 0) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) @@ -112,7 +113,7 @@ public class SysUserController extends CoreBaseController{ personnelService.checkSysUserOnly(sysUser); SysUserInfo userInfo = sysUserInfoService.getSysUserInfoById(sysUser.getUserInfoId()); - if(userInfo == null){ + if (userInfo == null) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) @@ -126,12 +127,12 @@ public class SysUserController extends CoreBaseController{ sysUser.setIsValid(CommonEnumUtil.TRUE_OR_FALSE.TRUE.getValue()); sysUser.setUserType(CommonEnumUtil.USER_TYPE.USER.getValue()); sysUser.setUserLoginNum(0); - ConvertBean.modelInitialize(sysUser,AuthUtil.getSessionUser()); + ConvertBean.modelInitialize(sysUser, AuthUtil.getSessionUser()); SysUser user = sysUserService.insertSysUser(sysUser); // 更新用户关系 - personnelService.refreshRefSysUserRole(user.getId(),StringTool.getArrayLong(roleIds)); + personnelService.refreshRefSysUserRole(user.getId(), StringTool.getArrayLong(roleIds)); return ResultBean.success("操作成功") .setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()) @@ -145,25 +146,26 @@ public class SysUserController extends CoreBaseController{ /** * 修改用户 + * * @param sysUser 用户 * @param roleIds 角色id * @return 处理结果 */ @PutMapping(value = "/update") @ApiOperation(value = "修改用户", notes = "修改用户信息") - public ResultBean updateSysUser(SysUser sysUser,String[] roleIds) { + public ResultBean updateSysUser(SysUser sysUser, String[] roleIds) { try { startMultiService(); - ConvertBean.modelSafeArrayNumber(roleIds,true); + ConvertBean.modelSafeArrayNumber(roleIds, true); ValidatorBean.beginValid(sysUser) - .numberCheck("id",sysUser.getUserInfoId()) - .numberCheck("userInfoId",sysUser.getUserInfoId()) - .notNull("userLoginName",sysUser.getUserLoginName()); + .numberCheck("id", sysUser.getUserInfoId()) + .numberCheck("userInfoId", sysUser.getUserInfoId()) + .notNull("userLoginName", sysUser.getUserLoginName()); // FIXME 松下取消邮箱校验 // .notNull("userEmail",sysUser.getUserEmail()); - if(roleIds == null || roleIds.length <= 0){ + if (roleIds == null || roleIds.length <= 0) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) @@ -177,7 +179,7 @@ public class SysUserController extends CoreBaseController{ // 用户信息封装 SysUserInfo userInfo = sysUserService.getSysUserInfoById(sysUser.getUserInfoId()); SysUser user = sysUserService.getSysUserById(sysUser.getId()); - if(userInfo == null){ + if (userInfo == null) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION_DATA_NOT_EXIT.getCode()) @@ -186,7 +188,7 @@ public class SysUserController extends CoreBaseController{ } // 修改密码 - if(sysUser.getUserLoginPassword() != null && sysUser.getUserLoginPassword().trim().length() > 0){ + if (sysUser.getUserLoginPassword() != null && sysUser.getUserLoginPassword().trim().length() > 0) { String md5 = EncryptTool.hexMD5(sysUser.getUserLoginPassword()); user.setUserLoginPassword(md5); } @@ -196,10 +198,10 @@ public class SysUserController extends CoreBaseController{ user.setUserLoginName(sysUser.getUserLoginName()); user.setUserEmail(sysUser.getUserEmail()); user.setUserPhone(sysUser.getUserPhone()); - ConvertBean.modelUpdate(sysUser,AuthUtil.getSessionUser()); + ConvertBean.modelUpdate(sysUser, AuthUtil.getSessionUser()); // 更新用户关系 - personnelService.refreshRefSysUserRole(user.getId(),StringTool.getArrayLong(roleIds)); + personnelService.refreshRefSysUserRole(user.getId(), StringTool.getArrayLong(roleIds)); sysUserService.updateSysUser(user); return ResultBean.success("操作成功") @@ -214,7 +216,8 @@ public class SysUserController extends CoreBaseController{ /** * 修改用户状态 - * @param id 用户id + * + * @param id 用户id * @param status 状态 * @return 处理结果 */ @@ -237,56 +240,59 @@ public class SysUserController extends CoreBaseController{ /** * 批量修改系统功能状态 - * @param ids 系统功能id数组 + * + * @param ids 系统功能id数组 * @param status 状态 * @return 处理结果 */ @PutMapping(value = "/batch-status") @ApiOperation(value = "批量修改系统功能状态", notes = "根据ID修改系统功能状态") - public ResultBean updateBatchStatus(String[] ids,int status) { + public ResultBean updateBatchStatus(String[] ids, int status) { try { - ids = ConvertBean.modelSafeArrayNumber(ids,true); + ids = ConvertBean.modelSafeArrayNumber(ids, true); // 数据校验 ValidatorBean.checkNotNull(ids, "功能id 不能为空"); ValidatorBean.checkNotZero(status, "功能状态不能为空"); - sysUserService.updateBatchSysUserStatus(StringTool.getArrayLong(ids),status,AuthUtil.getSessionUser()); + sysUserService.updateBatchSysUserStatus(StringTool.getArrayLong(ids), status, AuthUtil.getSessionUser()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 修改当前登录用户密码 + * * @param password 原密码 - * @param newPwd 新密码 + * @param newPwd 新密码 * @return 处理结果 */ @PutMapping(value = "/update-password") @ApiOperation(value = "修改密码", notes = "修改当前登录用户密码") - public ResultBean updateSysUserPassword(String password,String newPwd) { + public ResultBean updateSysUserPassword(String password, String newPwd) { try { SessionUser sessionUser = AuthUtil.getSessionUser(); // 数据校验 ValidatorBean.checkNotNull(password, "旧密码不能为空"); ValidatorBean.checkNotNull(newPwd, "新密码不能为空"); - userPasswordService.updatePassword(sessionUser.getUser().getId(),password,newPwd.trim()); + userPasswordService.updatePassword(sessionUser.getUser().getId(), password, newPwd.trim()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - } catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 查询所有用户 + * * @return 查询所有用户 */ @GetMapping(value = "/list") @@ -306,16 +312,17 @@ public class SysUserController extends CoreBaseController{ /** * 查询系统用户 - * @param user 查询条件 + * + * @param user 查询条件 * @param pager 分页数据 * @return 处理结果 */ - @GetMapping(value="/query-user-by-pager") - @ApiOperation(value="查询系统用户",notes="组合查询用户,外带分页查询(isValid = 1)") - public ResultBean querySysUserByPager(SysUser user, Pager pager){ - try{ + @GetMapping(value = "/query-user-by-pager") + @ApiOperation(value = "查询系统用户", notes = "组合查询用户,外带分页查询(isValid = 1)") + public ResultBean querySysUserByPager(SysUser user, Pager pager) { + try { List idList = new ArrayList<>(); - if(user.getOrganizeId() == null || user.getOrganizeId() <= 0) { + if (user.getOrganizeId() == null || user.getOrganizeId() <= 0) { if (AuthUtil.getUserType().equals(CommonEnumUtil.USER_TYPE.ADMIN)) { user.setOrganizeCode(null); user.setOrganizeId(null); @@ -325,32 +332,33 @@ public class SysUserController extends CoreBaseController{ } } - if(user.getRoleId() != null){ + if (user.getRoleId() != null) { List refUserRoleList = personnelService.findSysRefUserRole(user.getRoleId(), null); - if(refUserRoleList != null && refUserRoleList.size() > 0){ + if (refUserRoleList != null && refUserRoleList.size() > 0) { refUserRoleList.forEach(ref -> idList.add(ref.getUserId())); } } List departmentIdList = coreMemTreeService.findDepartmentIdListByOrganizeIdAndDepartmentId(user.getOrganizeId(), user.getDepartmentId()); - if(departmentIdList != null && departmentIdList.size() > 0){ + if (departmentIdList != null && departmentIdList.size() > 0) { List refList = personnelService.findSysRefUserDepartmentByDepartmentIdList(departmentIdList); - if(refList != null && refList.size() > 0){ + if (refList != null && refList.size() > 0) { refList.forEach(ref -> idList.add(ref.getUserId())); } } - ListPager listPager = sysUserService.querySysUserByPager(user,idList, pager); + ListPager listPager = sysUserService.querySysUserByPager(user, idList, pager); return ResultBean.success("操作成功").setListPager(listPager).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 删除账号 + * * @param id 账号id * @return 处理结果 */ @@ -372,15 +380,16 @@ public class SysUserController extends CoreBaseController{ /** * 根据id批量删除 + * * @param ids id数组 * @return 处理结果 */ @DeleteMapping(value = "/batch-delete") @ApiOperation(value = "根据id批量删除", notes = "根据id批量删除") - public ResultBean deleteBatchSysUserByIds(String[] ids){ - try{ - ids = ConvertBean.modelSafeArrayNumber(ids,true); - if(ids.length == 0){ + public ResultBean deleteBatchSysUserByIds(String[] ids) { + try { + ids = ConvertBean.modelSafeArrayNumber(ids, true); + if (ids.length == 0) { throw ImppExceptionBuilder.newInstance() .setSystemID(CommonEnumUtil.SOFT_TYPE.CORE.getCode()) .setErrorCode(ImppExceptionEnum.VARIFY_EXCEPTION.getCode()) @@ -388,17 +397,18 @@ public class SysUserController extends CoreBaseController{ .build(); } - sysUserService.deleteBatchSysUserById(StringTool.getArrayLong(ids),AuthUtil.getSessionUser()); + sysUserService.deleteBatchSysUserById(StringTool.getArrayLong(ids), AuthUtil.getSessionUser()); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }catch(ImppBusiException busExcep){ + } catch (ImppBusiException busExcep) { return ResultBean.fail(busExcep); - }catch(Exception e){ + } catch (Exception e) { return ImppExceptionBuilder.newInstance().buildExceptionResult(e); } } /** * 查询用户的所有角色权限关系 + * * @param userId 用户id * @return 处理结果 */ @@ -420,27 +430,28 @@ public class SysUserController extends CoreBaseController{ /** * 根据id重置用户密码 + * * @param id 用户id * @return 处理结果 */ @PostMapping("/reset-pwd/{id}") - @ApiOperation(value = "密码重置",notes = "根据id重置用户密码") - public ResultBean updateResetPassword(@PathVariable String id){ + @ApiOperation(value = "密码重置", notes = "根据id重置用户密码") + public ResultBean updateResetPassword(@PathVariable String id) { try { startMultiService(); SysUser user = sysUserService.getSysUserById(Long.parseLong(id)); - if(user != null){ + if (user != null) { Integer num = personnelService.checkSysUserResetPassword(user); num = CommonConstWords.CONFIG_PWD_RESET_PASSWORD_DEFAULT - num; String password = RandomStringUtils.random(6, true, false); - userPasswordService.updatePassword(user.getId(),password); + userPasswordService.updatePasswordResetLastModifyTime(user.getId(), password); String content = "系统提示:\n" + - "\t"+getSessionUser().getUserName()+"使用密码重置功能帮您重置了【"+user.getUserLoginName()+"】账号的密码," + - "新密码是:"+password+""; + "\t" + getSessionUser().getUserName() + "使用密码重置功能帮您重置了【" + user.getUserLoginName() + "】账号的密码," + + "新密码是:" + password + ""; SysMessage message = new SysMessage(); message.setMessageTitle("重置密码"); @@ -456,11 +467,11 @@ public class SysUserController extends CoreBaseController{ sysMessageService.doSendSysMessage(message); LOGGER.info("系统提示:{} 使用密码重置功能帮{}重置了{}账号的密码,新密码是:{}", - getSessionUser().getUserName(),user.getUserName(),user.getUserLoginName(),password); + getSessionUser().getUserName(), user.getUserName(), user.getUserLoginName(), password); - String result = "操作成功,【"+user.getUserName()+"】账号今日重置密码次数剩余" +num+ "次"; + String result = "操作成功,【" + user.getUserName() + "】账号今日重置密码次数剩余" + num + "次"; return ResultBean.success(result).setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }else{ + } else { return ResultBean.success("操作失败") .setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()) .setErrorMsg("用户不存在"); @@ -474,22 +485,23 @@ public class SysUserController extends CoreBaseController{ /** * 发送验证码 + * * @param email 邮箱 * @return 处理结果 */ @GetMapping("/verification/get-email") - @ApiOperation(value = "发送验证码",notes = "发送邮件验证码") - public ResultBean getEmailVerification(String email){ + @ApiOperation(value = "发送验证码", notes = "发送邮件验证码") + public ResultBean getEmailVerification(String email) { try { SysUser user = sysUserService.getSysUserByEmail(email); - if(user != null){ + if (user != null) { String verification = RandomStringUtils.random(6, true, false); String redisKey = CommonConstWords.SESSION_VERIFICATION_USER_EMAIL + "_" + getSessionUser().getUserId(); redisCore.putObject(redisKey, verification + "-" + email, 180); String content = "系统提示:\n" + - "\t密码找回验证码:【"+verification+"】"; + "\t密码找回验证码:【" + verification + "】"; SysMessage message = new SysMessage(); message.setMessageTitle("验证码"); @@ -505,9 +517,9 @@ public class SysUserController extends CoreBaseController{ sysMessageService.doSendSysMessage(message); - LOGGER.info("系统提示:\t 密码找回验证码【{}】",verification); + LOGGER.info("系统提示:\t 密码找回验证码【{}】", verification); return ResultBean.success("操作成功").setCode(ResourceEnumUtil.MESSAGE.SUCCESS.getCode()); - }else{ + } else { return ResultBean.success("操作失败") .setCode(ResourceEnumUtil.MESSAGE.FAIL.getCode()) .setErrorMsg("用户不存在"); @@ -569,14 +581,15 @@ public class SysUserController extends CoreBaseController{ /** * 修改用户操作组织id - * @param idStr 用户 + * + * @param idStr 用户 * @param organizeIdStr 组织id * @return 处理结果 */ @PutMapping("/update-organize") @ApiOperation(value = "修改用户操作组织id") - public ResultBean updateSysUserOrganize(String idStr, String organizeIdStr){ - try{ + public ResultBean updateSysUserOrganize(String idStr, String organizeIdStr) { + try { startMultiService(); ValidatorBean.checkNotNull(idStr, "id不能为空"); diff --git a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java index c53307c..9cccf7d 100644 --- a/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java +++ b/modules/i3plus-core-apiservice/src/main/java/cn/estsh/i3plus/core/apiservice/serviceimpl/busi/SysUserSavePasswordService.java @@ -102,12 +102,40 @@ public class SysUserSavePasswordService extends CrudService imp SysUserPassword save = userPasswordRDao.save(pwd); user.setUserLoginPasswordId(save.getId()); + // 松下需要 重置密码之后 重新登录重新设置密码 user.setUserPasswordLastModifyTime(TimeTool.getNowTime(true)); ConvertBean.serviceModelUpdate(user, AuthUtil.getSessionUser().getUserName()); userService.updateSysUser(user); } @Override + public void updatePasswordResetLastModifyTime(Long userId, String password) { + SysUser user = userService.getSysUserById(userId); + ValidatorBean.checkNotNull(user, "不存在的用户信息"); + user.setUserLoginPassword(password); + userPasswordUtil.checkPasswordSave(user); + + userPasswordRDao.updateByProperties( + new String[]{"userId", "isDeleted"}, + new Object[]{user.getId(), CommonEnumUtil.IS_DEAL.NO.getValue()}, + new String[]{"isDeleted", "modifyDatetime", "modifyUser"}, + new Object[]{ + CommonEnumUtil.IS_DEAL.YES.getValue(), TimeTool.getNowTime(true), AuthUtil.getSessionUser().getUserName()}); + + SysUserPassword pwd = new SysUserPassword(); + pwd.setUserId(userId); + pwd.setUserPassword(SysUserPasswordUtil.encoder(password)); + ConvertBean.serviceModelInitialize(pwd, AuthUtil.getSessionUser()); + SysUserPassword save = userPasswordRDao.save(pwd); + + user.setUserLoginPasswordId(save.getId()); + // 松下需要 重置密码之后 重新登录重新设置密码 + user.setUserPasswordLastModifyTime(""); + ConvertBean.serviceModelUpdate(user, AuthUtil.getSessionUser().getUserName()); + userService.updateSysUser(user); + } + + @Override public void updatePasswordWizoutSession(String loginName, String password, String newPwd) { SysUser user = userService.validatePasswordByLoginNameAndReturnUser(loginName, password); user.setUserLoginPassword(newPwd);