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 cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
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.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
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.entity.EsRevisionAdvice;
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.mapper.EsRevisionAdviceMapper;
|
import com.jero.modules.activiti.process.esRevisionAdvice.mapper.EsRevisionAdviceMapper;
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionAdviceService;
|
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 org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author ThinkBook
|
* @author ThinkBook
|
||||||
* @description 针对表【process_es_revision_advice】的数据库操作Service实现
|
* @description 针对表【process_es_revision_advice】的数据库操作Service实现
|
||||||
@@ -20,8 +27,14 @@ import org.springframework.stereotype.Service;
|
|||||||
public class EsRevisionAdviceServiceImpl extends ServiceImpl<EsRevisionAdviceMapper, EsRevisionAdvice>
|
public class EsRevisionAdviceServiceImpl extends ServiceImpl<EsRevisionAdviceMapper, EsRevisionAdvice>
|
||||||
implements EsRevisionAdviceService{
|
implements EsRevisionAdviceService{
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysUserService userService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public IPage<EsRevisionAdvice> adviceList(EsRevisionAdvice advice, Integer pageNo, Integer pageSize) {
|
public IPage<EsRevisionAdvice> adviceList(EsRevisionAdvice advice, Integer pageNo, Integer pageSize) {
|
||||||
|
boolean userQuery = StrUtil.isNotBlank(advice.getCreateUserId());
|
||||||
|
|
||||||
LambdaQueryWrapper<EsRevisionAdvice> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<EsRevisionAdvice> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
String standardId = advice.getStandardId();
|
String standardId = advice.getStandardId();
|
||||||
if (StrUtil.isBlank(standardId)) {
|
if (StrUtil.isBlank(standardId)) {
|
||||||
@@ -31,7 +44,14 @@ public class EsRevisionAdviceServiceImpl extends ServiceImpl<EsRevisionAdviceMap
|
|||||||
Page<EsRevisionAdvice> page = new Page<>(pageNo, pageSize);
|
Page<EsRevisionAdvice> page = new Page<>(pageNo, pageSize);
|
||||||
queryWrapper.eq(EsRevisionAdvice::getStandardId, advice.getStandardId());
|
queryWrapper.eq(EsRevisionAdvice::getStandardId, advice.getStandardId());
|
||||||
queryWrapper.eq(null != advice.getBatchNum() , EsRevisionAdvice::getBatchNum, advice.getBatchNum());
|
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.eq(StrUtil.isNotBlank(advice.getHandleAdvice()), EsRevisionAdvice::getHandleAdvice, advice.getHandleAdvice());
|
||||||
queryWrapper.like(StrUtil.isNotBlank(advice.getTermNum()), EsRevisionAdvice::getTermNum, advice.getTermNum());
|
queryWrapper.like(StrUtil.isNotBlank(advice.getTermNum()), EsRevisionAdvice::getTermNum, advice.getTermNum());
|
||||||
queryWrapper.orderByAsc(EsRevisionAdvice::getBatchNum);
|
queryWrapper.orderByAsc(EsRevisionAdvice::getBatchNum);
|
||||||
|
|||||||
Reference in New Issue
Block a user