add /sys/user/pageDecrypt 取消脱敏的用户分页查询
This commit is contained in:
+63
@@ -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
|
||||
|
||||
+11
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user