【代码修复】SYSTEM:角色标识的提示不正确问题

This commit is contained in:
YunaiV
2024-08-31 13:29:34 +08:00
parent df5077f499
commit 047252d4fc
7 changed files with 26 additions and 73 deletions

View File

@@ -4,19 +4,21 @@ import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils;
import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.system.api.logger.OperateLogApi;
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
import com.mzt.logapi.beans.LogRecord;
import com.mzt.logapi.service.ILogRecordService;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
import java.util.List;
/**
* 操作日志 ILogRecordService 实现类
*
* 基于 {@link OperateLogFrameworkService}实现, 记录操作日志
* 基于 {@link OperateLogApi} 实现,记录操作日志
*
* @author HUIHUI
*/
@@ -24,22 +26,27 @@ import java.util.List;
public class LogRecordServiceImpl implements ILogRecordService {
@Resource
OperateLogFrameworkService operateLogFrameworkService;
private OperateLogApi operateLogApi;
@Override
@Async
public void record(LogRecord logRecord) {
// 1. 补全通用字段
OperateLogCreateReqDTO reqDTO = new OperateLogCreateReqDTO();
reqDTO.setTraceId(TracerUtils.getTraceId());
// 补充用户信息
fillUserFields(reqDTO);
// 补全模块信息
fillModuleFields(reqDTO, logRecord);
// 补全请求信息
fillRequestFields(reqDTO);
try {
reqDTO.setTraceId(TracerUtils.getTraceId());
// 补充用户信息
fillUserFields(reqDTO);
// 补全模块信息
fillModuleFields(reqDTO, logRecord);
// 补全请求信息
fillRequestFields(reqDTO);
// 2. 异步记录日志
operateLogFrameworkService.createOperateLog(reqDTO);
// 2. 异步记录日志
operateLogApi.createOperateLog(reqDTO).getCheckedData();
} catch (Throwable ex) {
// 由于 @Async 异步调用,这里打印下日志,更容易跟进
log.error("[record][url({}) log({}) 发生异常]", reqDTO.getRequestUrl(), reqDTO, ex);
}
}
private static void fillUserFields(OperateLogCreateReqDTO reqDTO) {

View File

@@ -1,19 +0,0 @@
package cn.iocoder.yudao.framework.operatelog.core.service;
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
/**
* API 操作日志 Framework Service 接口
*
* @author 陈晨成
*/
public interface OperateLogFrameworkService {
/**
* 创建 操作日志
*
* @param reqDTO API 操作日志
*/
void createOperateLog(OperateLogCreateReqDTO reqDTO);
}

View File

@@ -1,33 +0,0 @@
package cn.iocoder.yudao.framework.operatelog.core.service;
import cn.iocoder.yudao.module.system.api.logger.OperateLogApi;
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Async;
/**
* API 操作日志 Framework Service 实现类
*
* 基于 {@link OperateLogApi} 服务,记录操作日志
*
* @author 陈晨成
*/
@RequiredArgsConstructor
@Slf4j
public class OperateLogFrameworkServiceImpl implements OperateLogFrameworkService {
private final OperateLogApi operateLogApi;
@Override
@Async
public void createOperateLog(OperateLogCreateReqDTO reqDTO) {
try {
operateLogApi.createOperateLog(reqDTO);
} catch (Throwable ex) {
// 由于 @Async 异步调用,这里打印下日志,更容易跟进
log.error("[createOperateLog][url({}) log({}) 发生异常]", reqDTO.getRequestUrl(), reqDTO, ex);
}
}
}

View File

@@ -24,7 +24,7 @@ import org.springframework.security.web.access.AccessDeniedHandler;
/**
* Spring Security 自动配置类,主要用于相关组件的配置
* <p>
*
* 注意,不能和 {@link YudaoWebSecurityConfigurerAdapter} 用一个,原因是会导致初始化报错。
* 参见 https://stackoverflow.com/questions/53847050/spring-boot-delegatebuilder-cannot-be-null-on-autowiring-authenticationmanager 文档。
*