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; }