遇到问题
if (!StringUtils.isEmpty(ccHierarchySearchDto.getRole())) {
wrapper.eq(CCHierarchy::getRole2, ccHierarchySearchDto.getRole())
.or()
.eq(CCHierarchy::getRole1, ccHierarchySearchDto.getRole());
}
这样的写法会导致多条件搜索出来的数据不正确。
解决办法
if (!StringUtils.isEmpty(ccHierarchySearchDto.getUser())) {
wrapper.and(i -> {
i.like(CCHierarchy::getUserId, ccHierarchySearchDto.getUser());
i.or().like(CCHierarchy::getUserName, ccHierarchySearchDto.getUser());
i.or().like(CCHierarchy::getUserChineseName, ccHierarchySearchDto.getUser());
});
}
只是举例写法上下块内容不对应
完整代码
@Override
public ResponseEntity<IPage<CCHierarchy>> getCCHierarchyListByCondition(CCHierarchySearchDto ccHierarchySearchDto) {
AddInterfaceLog addInterfaceLog = new AddInterfaceLog();
try {
MPJLambdaWrapper<CCHierarchy> wrapper = new MPJLambdaWrapper<>();
wrapper.selectAll(CCHierarchy.class);
if (!StringUtils.isEmpty(ccHierarchySearchDto.getUser())) {
wrapper.and(i -> {
i.like(CCHierarchy::getUserId, ccHierarchySearchDto.getUser());
i.or().like(CCHierarchy::getUserName, ccHierarchySearchDto.getUser());
i.or().like(CCHierarchy::getUserChineseName, ccHierarchySearchDto.getUser());
});
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getRole())) {
wrapper.eq(CCHierarchy::getRole2, ccHierarchySearchDto.getRole());
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getManager())) {
wrapper.and(i -> {
i.eq(CCHierarchy::getManagerId, ccHierarchySearchDto.getManager());
i.or().like(CCHierarchy::getManagerName, ccHierarchySearchDto.getManager());
});
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getBaseCity())) {
wrapper.eq(CCHierarchy::getBaseCity, ccHierarchySearchDto.getBaseCity());
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getBaseRegion())) {
wrapper.eq(CCHierarchy::getBaseRegion, ccHierarchySearchDto.getBaseRegion());
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getBaseProvince())) {
wrapper.eq(CCHierarchy::getBaseProvince, ccHierarchySearchDto.getBaseProvince());
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getUserId())) {
wrapper.eq(CCHierarchy::getUserId, ccHierarchySearchDto.getUserId());
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getEmail())) {
wrapper.like(CCHierarchy::getEmail, ccHierarchySearchDto.getEmail());
}
if (!StringUtils.isEmpty(ccHierarchySearchDto.getTelephoneNum())) {
wrapper.like(CCHierarchy::getTelephoneNum, ccHierarchySearchDto.getTelephoneNum());
}
//userId升序
wrapper.orderByAsc(CCHierarchy::getUserId)
.orderByDesc(CCHierarchy::getUpdatedTime)
.orderByDesc(CCHierarchy::getCreatedTime);
Integer currentPage = ccHierarchySearchDto.getCurrentPage();
Integer pageSize = ccHierarchySearchDto.getPageSize();
if (currentPage == null && pageSize == null) {
currentPage = 1;
pageSize = 99999;
}
Page page = new Page(currentPage, pageSize);
IPage<CCHierarchy> ccHierarchyIPage = ccHierarchyMapper.selectPage(page, wrapper);
Page<CCHierarchy> ccHierarchyPage = new Page<>();
BeanUtils.copyProperties(ccHierarchyIPage, ccHierarchyPage);
return ResponseEntity.ok(ccHierarchyPage);
} catch (Exception e) {
log.error(e.toString());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
}
}