diff --git a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 25f97ade..4bde48ba 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -181,7 +181,70 @@ public class SysUserController { return result; } + /** + * 获取用户列表数据 + * @param user + * @param pageNo + * @param pageSize + * @param req + * @return + */ + @ApiOperationSupport(order = 1) + @ApiOperation(value="用户列表查询", notes="用户列表查询") + @PermissionData(pageComponent = "system/UserList") + @GetMapping("/pageDecrypt") + public Result> queryPageListDecrypt(SysUser user, + @RequestParam(name="departId", required = false) String departId, + @RequestParam(name="roleId", required = false) String roleId, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { + Result> result = new Result<>(); + // 处理手机号和邮箱,进行对应加密 + Map parameterMap = req.getParameterMap(); + String groupId = req.getParameter("groupId"); + this.sysUserService.encryptReqMapData(parameterMap); + user.setEmail(this.sysUserService.proceedEmailEncrypt(user.getEmail())); + user.setPhone(this.sysUserService.proceedPhoneEncrypt(user.getPhone())); + + QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(user, parameterMap); + + Page page = new Page<>(pageNo, pageSize); + List subDepIds = null; + if (StrUtil.isNotEmpty(departId)){ + subDepIds = sysDepartService.getSubDepIdsByDepId(departId); + } + if (StringUtils.isNotBlank(user.getRealnameOrUsername())){ + queryWrapper.and(aw -> aw.like("realname", user.getRealnameOrUsername()) + .or().like("username", user.getRealnameOrUsername())); + } + IPage pageList; + try { + pageList = sysUserService.queryPageDecrypt(page, subDepIds, roleId, groupId, queryWrapper); + }catch (Exception e){ + log.error("操作异常:" + e.getMessage()); + return Result.error(MessageUtils.getMessage(ResultCommon.ERROR)); + } + //批量查询用户的所属部门 + //step.1 先拿到全部的 useids + List userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList()); + if(userIds!=null && !userIds.isEmpty()){ + //step.2 通过 useids,一次性查询用户的所属部门名字 + Map useDepNames = sysUserService.getDepNamesByUserIds(userIds); + //step.3 通过 useids,一次性查询用户的角色名字 + Map useRoleNames = sysUserService.getRoleNamesByUserIds(userIds); + //step.4 遍历赋值 + pageList.getRecords().forEach(item->{ + item.setOrgCodeTxt(useDepNames.get(item.getId())); + item.setRoleTxt(useRoleNames.get(item.getId())); + }); + } + + result.setSuccess(true); + result.setResult(pageList); + SysUserController.log.info(pageList.toString()); + return result; + } /** * 获取用户列表数据 * @param user diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 4f591b4a..de095624 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -37,6 +37,13 @@ public interface ISysUserService extends IService { * @return */ IPage queryPage(Page page, List subDepIds, String roleId, String groupId, QueryWrapper queryWrapper); +/** + * 分页查询用户,可支持组织机构检索 + * @param page + * @param queryWrapper + * @return + */ + IPage queryPageDecrypt(Page page, List subDepIds, String roleId, String groupId, QueryWrapper queryWrapper); /** * 查询用户id diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 387450c7..f8a40c5e 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -90,6 +90,17 @@ public class SysUserServiceImpl extends ServiceImpl impl return sysUserIPage; } + @Override + public IPage queryPageDecrypt(Page page, List subDepIds, String roleId, String groupId, QueryWrapper queryWrapper) { + IPage sysUserIPage = this.userMapper.queryPage(page, subDepIds, roleId, groupId, queryWrapper); + sysUserIPage.getRecords().forEach(user -> { + // 对手机号、邮箱进行解密处理 + user.setEmail(proceedEmailDecrypt(user.getEmail())); + user.setPhone(proceedPhoneDecrypt(user.getPhone())); + }); + return sysUserIPage; + } + @Override public List queryList(List subDepIds, String roleId, String groupId, QueryWrapper queryWrapper){ return this.userMapper.queryList(subDepIds, roleId, groupId, queryWrapper);