feat(REQ-3488): 修改查询组织用户

This commit is contained in:
zhanghongbo 2025-01-07 17:36:30 +08:00
parent 610db4a3f9
commit d3c7446ad6
2 changed files with 48 additions and 13 deletions

View File

@ -6,6 +6,7 @@ import cn.axzo.foundation.page.PageReqV2;
import lombok.*; import lombok.*;
import lombok.experimental.SuperBuilder; import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -89,18 +90,33 @@ public class ListOrgUserReq extends PageReqV2 {
@CriteriaField(field = "status", operator = Operator.IN) @CriteriaField(field = "status", operator = Operator.IN)
private Set<Integer> statuses; private Set<Integer> statuses;
@CriteriaField(ignore = true)
@Builder.Default
private Integer page = 1;
/**
* 最大支持1000条数据不支持单页超过1000的查询接入方按需分页
*/
@Builder.Default
@CriteriaField(ignore = true)
private Integer pageSize = 1000;
@CriteriaField(ignore = true)
private List<String> sort;
@CriteriaField(ignore = true) @CriteriaField(ignore = true)
private Boolean needPersonProfile; private Boolean needPersonProfile;
/**
* 关键字查询
* 1用户名称模糊匹配
* 2手机号身份证号精确匹配
*/
@CriteriaField(ignore = true)
private String keyword;
/**
* 离职时间筛选起始
*/
@CriteriaField(field = "transferTime", operator = Operator.GE)
private Date leaveAtStart;
/**
* 离职时间筛选结束
*/
@CriteriaField(field = "transferTime", operator = Operator.LE)
private Date leaveAtEnd;
/**
* 是都包含删除(默认走查询未删除)
*/
@CriteriaField(ignore = true)
private Boolean includeDeleted;
} }

View File

@ -10,14 +10,18 @@ import cn.axzo.orgmanax.infra.client.profile.dto.ProfilePersonResp;
import cn.axzo.orgmanax.infra.dao.orguser.dao.OrgUserDao; import cn.axzo.orgmanax.infra.dao.orguser.dao.OrgUserDao;
import cn.axzo.orgmanax.infra.dao.orguser.entity.OrgUser; import cn.axzo.orgmanax.infra.dao.orguser.entity.OrgUser;
import cn.axzo.orgmanax.infra.dao.orguser.repository.OrgUserQueryRepository; import cn.axzo.orgmanax.infra.dao.orguser.repository.OrgUserQueryRepository;
import cn.axzo.trade.datasecurity.core.util.DataSecurityHelper;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.BooleanUtil; import cn.hutool.core.util.BooleanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -36,7 +40,22 @@ public class OrgUserQueryRepositoryImpl implements OrgUserQueryRepository {
@Override @Override
public PageResp<OrgUserResp> page(ListOrgUserReq req) { public PageResp<OrgUserResp> page(ListOrgUserReq req) {
IPage<OrgUser> page = PageConverter.toMybatis(req, OrgUser.class); IPage<OrgUser> page = PageConverter.toMybatis(req, OrgUser.class);
QueryWrapper<OrgUser> wrapper = QueryWrapperHelper.fromBean(req, OrgUser.class); LambdaQueryWrapper<OrgUser> wrapper = QueryWrapperHelper.fromBean(req, OrgUser.class).lambda();
// 处理删除标记
if (!BooleanUtil.isTrue(req.getIncludeDeleted())) {
wrapper.eq(OrgUser::getIsDelete, 0);
}
//处理关键词查询
if (ObjectUtil.isNotEmpty(req.getKeyword())) {
// 关键字加密(手机号与身份证需要精确匹配)
String encryptStr = DataSecurityHelper.encrypt(req.getKeyword());
wrapper.and(w -> w.like(OrgUser::getRealName, req.getKeyword())
.or().eq(OrgUser::getPhone, encryptStr)
.or().eq(OrgUser::getIdNumber, encryptStr));
}
IPage<OrgUserResp> results = orgUserDao.page(page, wrapper) IPage<OrgUserResp> results = orgUserDao.page(page, wrapper)
.convert(e -> BeanUtil.toBean(e, OrgUserResp.class)); .convert(e -> BeanUtil.toBean(e, OrgUserResp.class));
PageResp<OrgUserResp> resp = PageConverter.toResp(results); PageResp<OrgUserResp> resp = PageConverter.toResp(results);