From e172db2287400f9d1fd775e57b54cbb0026371bb Mon Sep 17 00:00:00 2001 From: liao Date: Fri, 5 May 2023 11:38:11 +0800 Subject: [PATCH] =?UTF-8?q?fix=2068500=20=E3=80=90=E5=AE=89=E5=85=A8?= =?UTF-8?q?=E3=80=91=E6=89=8B=E6=9C=BA=E5=8F=B7=E9=82=AE=E7=AE=B1=E7=AD=89?= =?UTF-8?q?=E6=95=8F=E6=84=9F=E4=BF=A1=E6=81=AF=E5=9C=A8=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E4=B8=AD=E4=B8=8D=E6=98=AF=E5=8A=A0=E5=AF=86=E5=AD=98?= =?UTF-8?q?=E5=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/controller/SysUserController.java | 25 ++++++- .../system/service/ISysUserService.java | 14 ++++ .../service/impl/SysUserServiceImpl.java | 74 ++++++++++++++++++- 3 files changed, 111 insertions(+), 2 deletions(-) diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index fc9b3fe2..27c41521 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -300,7 +300,7 @@ public class SysUserController { // @RequestMapping(value = "/queryById", method = RequestMethod.GET) @GetMapping("/queryById") public Results queryById(@RequestParam(name = "id", required = true) String id) { - SysUser sysUser = sysUserService.getById(id); + SysUser sysUser = sysUserService.queryById(id); if (sysUser == null) { return Results.error(INEXISTENCE); } else { @@ -451,6 +451,10 @@ public class SysUserController { item.setOrgCodeTxt(useDepNames.get(item.getId())) ); } + userList.forEach(user -> { + // 对手机号、邮箱进行解密处理 + sysUserService.proceedDecrypt(user); + }); try { result.setSuccess(true); @@ -478,6 +482,10 @@ public class SysUserController { @RequestParam(name="realname",required=false) String realname, @RequestParam(name=USER_NAME,required=false) String username) { IPage pageList = sysUserDepartService.queryDepartUserPageList(departId, username, realname, pageSize, pageNo); + pageList.getRecords().forEach(user -> { + // 对手机号、邮箱进行解密处理 + sysUserService.proceedDecrypt(user); + }); return Results.OK(pageList); } @@ -501,6 +509,10 @@ public class SysUserController { } //update-end--Author:kangxiaolin Date:20180825 for:[03]用户导出,如果选择数据则只导出相关数据---------------------- List pageList = sysUserService.list(queryWrapper); + pageList.forEach(user -> { + // 对手机号、邮箱进行解密处理 + sysUserService.proceedDecrypt(user); + }); //导出文件名称 mv.addObject(JeroController.FILE_NAME, "用户列表"); @@ -577,6 +589,8 @@ public class SysUserController { successAndErrorLines.setSuccessLines(successLines); successAndErrorLines.setErrorLines(errorLines); try { + // 对手机号、邮箱进行加密处理 + sysUserService.proceedEncrypt(sysUserExcel); sysUserService.save(sysUserExcel); successAndErrorLines.setSuccessLines(successLines + 1); } catch (Exception e) { @@ -629,6 +643,9 @@ public class SysUserController { String[] userId = userIds.split(","); Collection idList = Arrays.asList(userId); Collection userRole = sysUserService.listByIds(idList); + userRole.forEach(user -> { + sysUserService.proceedDecrypt(user); + }); result.setSuccess(true); result.setResult(userRole); return result; @@ -676,6 +693,9 @@ public class SysUserController { String roleId = req.getParameter("roleId"); String username = req.getParameter(USER_NAME); IPage pageList = sysUserService.getUserByRoleId(page,roleId,username); + pageList.getRecords().forEach(user -> { + sysUserService.proceedDecrypt(user); + }); result.setSuccess(true); result.setResult(pageList); return result; @@ -793,6 +813,9 @@ public class SysUserController { item.setOrgCode(useDepNames.get(item.getId())) ); } + pageList.getRecords().forEach(user -> { + sysUserService.proceedDecrypt(user); + }); result.setSuccess(true); result.setResult(pageList); }else{ diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index bf1dc381..fb527f3b 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -278,4 +278,18 @@ public interface ISysUserService extends IService { /** userId转为username */ List userIdToUsername(Collection userIdList); + /** + * @Remarks: 根据id查询 + **/ + SysUser queryById(String id); + + /** + * @Remarks: 对手机号、邮箱进行解密处理 + **/ + void proceedDecrypt(SysUser user); + + /** + * @Remarks: 对手机号、邮箱进行加密处理 + **/ + void proceedEncrypt(SysUser user); } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index b3022b74..4de7d1e6 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -1,5 +1,6 @@ package com.jero.modules.system.service.impl; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -64,7 +65,12 @@ public class SysUserServiceImpl extends ServiceImpl impl @Override public IPage queryPage(Page page, List subDepIds, String roleId, QueryWrapper queryWrapper){ - return this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper); + IPage sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, queryWrapper); + sysUserIPage.getRecords().forEach(user -> { + // 对手机号、邮箱进行解密处理 + proceedDecrypt(user); + }); + return sysUserIPage; } @Override @@ -458,6 +464,8 @@ public class SysUserServiceImpl extends ServiceImpl impl @Transactional(rollbackFor = Exception.class) public void saveUser(SysUser user, String selectedRoles, String selectedDeparts) { //step.1 保存用户 + // 对手机号、邮箱进行加密处理 + proceedEncrypt(user); this.save(user); //step.2 保存角色 if(oConvertUtils.isNotEmpty(selectedRoles)) { @@ -477,11 +485,67 @@ public class SysUserServiceImpl extends ServiceImpl impl } } + /** + * @Remarks: 对手机号、邮箱进行加密处理 + **/ + @Override + public void proceedEncrypt(SysUser user) { + if (user == null) { + return; + } + String email = user.getEmail(); + String phone = user.getPhone(); + if (StrUtil.isNotEmpty(email)){ + // 对邮箱地址进行加密 + email = PasswordUtil.encrypt(email); + user.setEmail(email); + } + + if (StrUtil.isNotEmpty(phone)){ + // 对手机号码进行加密 + phone = PasswordUtil.encrypt(phone); + user.setPhone(phone); + } + } + + /** + * @Remarks: 对手机号、邮箱进行解密处理 + **/ + @Override + public void proceedDecrypt(SysUser user) { + if (user == null) { + return; + } + String email = user.getEmail(); + String phone = user.getPhone(); + if (StrUtil.isNotEmpty(email)){ + // 对邮箱地址进行加密 + try { + email = PasswordUtil.decrypt(email); + } catch (Exception e) { + email = user.getEmail(); + } + user.setEmail(email); + } + + if (StrUtil.isNotEmpty(phone)){ + // 对手机号码进行加密 + try { + phone = PasswordUtil.decrypt(phone); + } catch (Exception e) { + phone = user.getPhone(); + } + user.setPhone(phone); + } + } + @Override @Transactional(rollbackFor = Exception.class) @CacheEvict(value={CacheConstant.SYS_USERS_CACHE}, allEntries=true) public void editUser(SysUser user, String roles, String departs) { //step.1 修改用户基础信息 + // 对手机号、邮箱进行加密处理 + proceedEncrypt(user); this.updateById(user); //step.2 修改角色 //处理用户角色 先删后加 @@ -523,5 +587,13 @@ public class SysUserServiceImpl extends ServiceImpl impl return userList.stream().map(SysUser::getUsername).collect(Collectors.toList()); } + @Override + public SysUser queryById(String id) { + SysUser user = getById(id); + // 对手机号、邮箱进行解密处理 + proceedDecrypt(user); + return user; + } + }