From 228e82e6aef34e08157b68080630f2939a39a792 Mon Sep 17 00:00:00 2001 From: furongxin <419481438@qq.com> Date: Thu, 10 Oct 2024 18:30:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=B7=A5=E4=BD=9C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=9F=A5=E7=9C=8B=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除了基于角色ID列表的动态查询,改为固定排除特定角色ID(1, 101, 162) -简化了查询参数,移除了不再使用的角色ID集合 - 增加了异常捕获和日志记录,以提高系统稳定性 - 注释了原来的动态查询逻辑,以便未来可能的恢复或调整 --- .../dal/mysql/worklog/LogInstanceMapper.java | 2 +- .../worklog/LogInstanceServiceImpl.java | 34 ++++++++++++------- .../mapper/worklog/LogInstanceMapper.xml | 13 +++---- 3 files changed, 29 insertions(+), 20 deletions(-) diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java index 755b2b57..137bef3c 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/worklog/LogInstanceMapper.java @@ -98,7 +98,7 @@ public interface LogInstanceMapper extends BaseMapperX { @Param("userId") Long userId); @DataPermission(enable = false) - List selectRaedUser(@Param("userId")Long userId, @Param("deptId")Long deptId, @Param("roleIds")Collection roleIds); + List selectRaedUser(@Param("userId")Long userId, @Param("deptId")Long deptId); /** * 获取上一篇下一篇 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java index e8c59607..ed8cf884 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/worklog/LogInstanceServiceImpl.java @@ -24,6 +24,7 @@ import cn.iocoder.yudao.module.system.service.worklog.dto.LogReadUserRespDTO; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; import org.mapstruct.ap.internal.util.Strings; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; @@ -48,6 +49,7 @@ import static cn.iocoder.yudao.module.system.enums.ErrorCodeConstants.*; */ @Service @Validated +@Slf4j public class LogInstanceServiceImpl implements LogInstanceService { @Resource @@ -137,23 +139,29 @@ public class LogInstanceServiceImpl implements LogInstanceService { //创建日志时,查询可以查看发起人日志的用户组 用线程控制 new Thread(() -> { - List roleIds = Arrays.asList(1L,101L); - String roleId = configApi.getConfigKey("system_work_log_role_id").getCheckedData(); - if (Strings.isNotEmpty(roleId)) { - roleIds = Arrays.stream(roleId.split(",")).map(Long::valueOf).collect(Collectors.toList()); - } - List respDTOS = logInstanceMapper.selectRaedUser(userId, adminUserDO.getDeptId(), roleIds); + try { +// List roleIds = Arrays.asList(1L,101L); +// String roleId = configApi.getConfigKey("system_work_log_role_id").getCheckedData(); +// +// if (Strings.isNotEmpty(roleId)) { +// roleIds = Arrays.stream(roleId.split(",")).map(Long::valueOf).collect(Collectors.toList()); +// } + List respDTOS = logInstanceMapper.selectRaedUser(userId, adminUserDO.getDeptId()); - //特殊情况, 日志发起人为研发部时 手动添加查看者 - if (adminUserDO.getDeptId() == 128L && adminUserDO.getId() != 126L) { + //特殊情况, 日志发起人为研发部时 手动添加查看者 + if (adminUserDO.getDeptId() == 128L && adminUserDO.getId() != 126L) { - LogReadUserRespDTO dto = new LogReadUserRespDTO(); - dto.setUserId(126L); - dto.setDeptId(128L); - respDTOS.add(dto); + LogReadUserRespDTO dto = new LogReadUserRespDTO(); + dto.setUserId(126L); + dto.setDeptId(128L); + respDTOS.add(dto); + } + + logReadService.createLogRule(respDTOS, logInstance.getId(), logInstance.getStartUserId()); + } catch (Exception e) { + log.error("获取日志查看用户失败", e); } - logReadService.createLogRule(respDTOS, logInstance.getId(), logInstance.getStartUserId()); }).start(); // 返回 diff --git a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml index a2a617f7..9f2f86e0 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml +++ b/yudao-module-system/yudao-module-system-biz/src/main/resources/mapper/worklog/LogInstanceMapper.xml @@ -71,12 +71,13 @@ WHERE role.permission = 'system:view-log:query' AND a.deleted = 0 - - AND a.role_id NOT IN - - #{roleId} - - + AND a.role_id NOT IN (1,101,162) + + + + + + ) menu LEFT JOIN system_role role on role.id = menu.role_id ) role_id ON u_role.role_id = role_id.id