add /sys/user/pageDecrypt 取消脱敏的用户分页查询

This commit is contained in:
lijiarao
2024-09-29 09:26:54 +08:00
parent b76031bb1a
commit b71646c8a1
3 changed files with 81 additions and 0 deletions
@@ -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<IPage<SysUser>> 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<IPage<SysUser>> result = new Result<>();
// 处理手机号和邮箱,进行对应加密
Map<String, String[]> 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<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, parameterMap);
Page<SysUser> page = new Page<>(pageNo, pageSize);
List<String> 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<SysUser> 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<String> userIds = pageList.getRecords().stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && !userIds.isEmpty()){
//step.2 通过 useids,一次性查询用户的所属部门名字
Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
//step.3 通过 useids,一次性查询用户的角色名字
Map<String,String> 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
@@ -37,6 +37,13 @@ public interface ISysUserService extends IService<SysUser> {
* @return
*/
IPage<SysUser> queryPage(Page<SysUser> page, List<String> subDepIds, String roleId, String groupId, QueryWrapper<SysUser> queryWrapper);
/**
* 分页查询用户,可支持组织机构检索
* @param page
* @param queryWrapper
* @return
*/
IPage<SysUser> queryPageDecrypt(Page<SysUser> page, List<String> subDepIds, String roleId, String groupId, QueryWrapper<SysUser> queryWrapper);
/**
* 查询用户id
@@ -90,6 +90,17 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
return sysUserIPage;
}
@Override
public IPage<SysUser> queryPageDecrypt(Page<SysUser> page, List<String> subDepIds, String roleId, String groupId, QueryWrapper<SysUser> queryWrapper) {
IPage<SysUser> 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<String> queryList(List<String> subDepIds, String roleId, String groupId, QueryWrapper<SysUser> queryWrapper){
return this.userMapper.queryList(subDepIds, roleId, groupId, queryWrapper);