From 433e03723ac2289078c9ebc8f2d5ec8b503a3172 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Sat, 12 Oct 2024 17:50:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E6=95=88=E7=8E=87=E5=B9=B6=E5=A2=9E=E5=8A=A0=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E6=A8=A1=E7=B3=8A=E6=9F=A5=E8=AF=A2=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构了 EsRevisionAdviceService 的 adviceList 方法,通过分离用户查询逻辑,避免了直接使用 createUserId 进行模糊查询可能导致的效率低下问题。新增了用户模糊查询功能,能够在不牺牲性能的情况下,根据 createUserId 检索对应的用户并获取其 id 列表,再进行精确查询。这一改动改善了代码的可维护性,并增强了查询功能。 --- .../impl/EsRevisionAdviceServiceImpl.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionAdviceServiceImpl.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionAdviceServiceImpl.java index dcfdf481..5e21dd78 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionAdviceServiceImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/esRevisionAdvice/service/impl/EsRevisionAdviceServiceImpl.java @@ -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 implements EsRevisionAdviceService{ + @Resource + private ISysUserService userService; + + @Override public IPage adviceList(EsRevisionAdvice advice, Integer pageNo, Integer pageSize) { + boolean userQuery = StrUtil.isNotBlank(advice.getCreateUserId()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); String standardId = advice.getStandardId(); if (StrUtil.isBlank(standardId)) { @@ -31,7 +44,14 @@ public class EsRevisionAdviceServiceImpl extends ServiceImpl 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 userQueryWrapper = new QueryWrapper<>(); + userQueryWrapper.like("CONCAT(realname, '(', username, ')')", advice.getCreateUserId()); + List 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);