feat: 优化查询效率并增加用户模糊查询功能
重构了 EsRevisionAdviceService 的 adviceList 方法,通过分离用户查询逻辑,避免了直接使用 createUserId 进行模糊查询可能导致的效率低下问题。新增了用户模糊查询功能,能够在不牺牲性能的情况下,根据 createUserId 检索对应的用户并获取其 id 列表,再进行精确查询。这一改动改善了代码的可维护性,并增强了查询功能。
This commit is contained in:
+21
-1
@@ -2,6 +2,7 @@ package com.jero.modules.activiti.process.esRevisionAdvice.service.impl;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@@ -9,8 +10,14 @@ import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.modules.activiti.process.esRevisionAdvice.entity.EsRevisionAdvice;
|
||||
import com.jero.modules.activiti.process.esRevisionAdvice.mapper.EsRevisionAdviceMapper;
|
||||
import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionAdviceService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author ThinkBook
|
||||
* @description 针对表【process_es_revision_advice】的数据库操作Service实现
|
||||
@@ -20,8 +27,14 @@ import org.springframework.stereotype.Service;
|
||||
public class EsRevisionAdviceServiceImpl extends ServiceImpl<EsRevisionAdviceMapper, EsRevisionAdvice>
|
||||
implements EsRevisionAdviceService{
|
||||
|
||||
@Resource
|
||||
private ISysUserService userService;
|
||||
|
||||
|
||||
@Override
|
||||
public IPage<EsRevisionAdvice> adviceList(EsRevisionAdvice advice, Integer pageNo, Integer pageSize) {
|
||||
boolean userQuery = StrUtil.isNotBlank(advice.getCreateUserId());
|
||||
|
||||
LambdaQueryWrapper<EsRevisionAdvice> queryWrapper = new LambdaQueryWrapper<>();
|
||||
String standardId = advice.getStandardId();
|
||||
if (StrUtil.isBlank(standardId)) {
|
||||
@@ -31,7 +44,14 @@ public class EsRevisionAdviceServiceImpl extends ServiceImpl<EsRevisionAdviceMap
|
||||
Page<EsRevisionAdvice> page = new Page<>(pageNo, pageSize);
|
||||
queryWrapper.eq(EsRevisionAdvice::getStandardId, advice.getStandardId());
|
||||
queryWrapper.eq(null != advice.getBatchNum() , EsRevisionAdvice::getBatchNum, advice.getBatchNum());
|
||||
queryWrapper.eq(StrUtil.isNotBlank(advice.getCreateUserId()), EsRevisionAdvice::getCreateUserId, advice.getCreateUserId());
|
||||
if (userQuery) {
|
||||
QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>();
|
||||
userQueryWrapper.like("CONCAT(realname, '(', username, ')')", advice.getCreateUserId());
|
||||
List<SysUser> list = userService.list(userQueryWrapper);
|
||||
if (!list.isEmpty()) {
|
||||
queryWrapper.in(EsRevisionAdvice::getCreateUserId, list.stream().map(SysUser::getId).collect(Collectors.toList()));
|
||||
}
|
||||
}
|
||||
queryWrapper.eq(StrUtil.isNotBlank(advice.getHandleAdvice()), EsRevisionAdvice::getHandleAdvice, advice.getHandleAdvice());
|
||||
queryWrapper.like(StrUtil.isNotBlank(advice.getTermNum()), EsRevisionAdvice::getTermNum, advice.getTermNum());
|
||||
queryWrapper.orderByAsc(EsRevisionAdvice::getBatchNum);
|
||||
|
||||
Reference in New Issue
Block a user