From 98e0dfa77afc1a4e32ba21c3accc0520302d03f7 Mon Sep 17 00:00:00 2001 From: yy <2@2.com> Date: Fri, 7 Jun 2024 16:03:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=BF=97=E6=B7=BB=E5=8A=A0=E5=8C=BB?= =?UTF-8?q?=E9=99=A2=E7=AE=A1=E7=90=86=E5=91=98=E5=8F=AF=E4=BB=A5=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9C=AC=E5=8C=BB=E9=99=A2=E7=9A=84=EF=BC=8C=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=B7=BB=E5=8A=A0=E5=8C=BB=E9=99=A2id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/pig.sql | 1 + .../java/com/rax/admin/api/entity/SysLog.java | 2 ++ .../admin/service/impl/SysLogServiceImpl.java | 18 +++++++++++++++++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/db/pig.sql b/db/pig.sql index bbb9dd8..e354722 100644 --- a/db/pig.sql +++ b/db/pig.sql @@ -455,6 +455,7 @@ CREATE TABLE `sys_log` `time` bigint DEFAULT NULL COMMENT '执行时间', `del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标志', `exception` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '异常信息', + `hospital_id` bigint DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE, KEY `sys_log_request_uri` (`request_uri`) USING BTREE, KEY `sys_log_type` (`log_type`) USING BTREE, diff --git a/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysLog.java b/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysLog.java index b1dd699..f0b6ded 100644 --- a/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysLog.java +++ b/upms/upms-api/src/main/java/com/rax/admin/api/entity/SysLog.java @@ -136,4 +136,6 @@ public class SysLog implements Serializable { @Schema(description = "删除标记,1:已删除,0:正常") private String delFlag; + private Long hospitalId; + } diff --git a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysLogServiceImpl.java b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysLogServiceImpl.java index 55746bb..52833a2 100644 --- a/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysLogServiceImpl.java +++ b/upms/upms-biz/src/main/java/com/rax/admin/service/impl/SysLogServiceImpl.java @@ -9,9 +9,11 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.rax.admin.api.dto.SysLogDTO; import com.rax.admin.api.entity.SysLog; import com.rax.admin.api.entity.SysRole; +import com.rax.admin.api.entity.SysUser; import com.rax.admin.mapper.SysLogMapper; import com.rax.admin.service.SysLogService; import com.rax.admin.service.SysRoleService; +import com.rax.admin.service.SysUserService; import com.rax.common.security.service.RaxUser; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; @@ -32,14 +34,21 @@ import java.util.Map; @Service public class SysLogServiceImpl extends ServiceImpl implements SysLogService { private final static String ADMIN_ROLE_CODE = "ROLE_ADMIN"; + + private final static String SITE_ROLE_CODE = "ROLE_CHIEF"; + @Autowired private SysRoleService roleService; + @Autowired + private SysUserService userService; + @Override public Page getLogByPage(Page page, SysLogDTO sysLog) { RaxUser raxUser = (RaxUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal(); List roleList = roleService.findRolesByUserId(raxUser.getId()); List adminRoleList = roleList.stream().filter(predicate -> ADMIN_ROLE_CODE.contains(predicate.getRoleCode())).toList(); + List siteRoleList = roleList.stream().filter(predicate -> SITE_ROLE_CODE.contains(predicate.getRoleCode())).toList(); LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); if (StrUtil.isNotBlank(sysLog.getLogType())) { @@ -47,7 +56,12 @@ public class SysLogServiceImpl extends ServiceImpl impleme } if (adminRoleList.isEmpty()) { - wrapper.eq(SysLog::getCreateBy, raxUser.getName()); + if (siteRoleList.isEmpty()) { + wrapper.eq(SysLog::getCreateBy, raxUser.getName()); + } else { + SysUser sysUser = userService.getById(raxUser.getId()); + wrapper.eq(SysLog::getHospitalId, sysUser.getHospitalId()); + } } if (ArrayUtil.isNotEmpty(sysLog.getTimeInterval())) { @@ -68,6 +82,8 @@ public class SysLogServiceImpl extends ServiceImpl impleme @Override @Transactional(rollbackFor = Exception.class) public Boolean saveLog(SysLog sysLog) { + SysUser sysUser = userService.getOne(Wrappers.lambdaQuery().eq(SysUser::getUsername, sysLog.getCreateBy())); + sysLog.setHospitalId(sysUser.getHospitalId()); baseMapper.insert(sysLog); return Boolean.TRUE; }