mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 12:18:42 +08:00 
			
		
		
		
	优化 yudao-spring-boot-starter-biz-operatelog 的封装,和 yudao-cloud 保持一致
This commit is contained in:
		@@ -0,0 +1,27 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.api.logger;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.logger.OperateLogService;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
 | 
			
		||||
import javax.annotation.Resource;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 操作日志 API 实现类
 | 
			
		||||
 *
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
@Service
 | 
			
		||||
@Validated
 | 
			
		||||
public class OperateLogApiImpl implements OperateLogApi {
 | 
			
		||||
 | 
			
		||||
    @Resource
 | 
			
		||||
    private OperateLogService operateLogService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    public void createOperateLog(OperateLogCreateReqDTO createReqDTO) {
 | 
			
		||||
        operateLogService.createOperateLog(createReqDTO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
@@ -5,7 +5,8 @@ Content-Type: application/json
 | 
			
		||||
tenant-id: {{adminTenentId}}
 | 
			
		||||
 | 
			
		||||
{
 | 
			
		||||
  "code": "test_01",
 | 
			
		||||
  "templateCode": "test_01",
 | 
			
		||||
  "mobile": "156016913900",
 | 
			
		||||
  "params": {
 | 
			
		||||
    "key01": "value01",
 | 
			
		||||
    "key02": "value02"
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
 | 
			
		||||
import org.mapstruct.Mapper;
 | 
			
		||||
import org.mapstruct.factory.Mappers;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,9 @@
 | 
			
		||||
package cn.iocoder.yudao.module.system.service.logger;
 | 
			
		||||
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.service.OperateLog;
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.service.OperateLogFrameworkService;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExportReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO;
 | 
			
		||||
@@ -10,8 +12,17 @@ import java.util.List;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 操作日志 Service 接口
 | 
			
		||||
 *
 | 
			
		||||
 * @author 芋道源码
 | 
			
		||||
 */
 | 
			
		||||
public interface OperateLogService extends OperateLogFrameworkService {
 | 
			
		||||
public interface OperateLogService {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 记录操作日志
 | 
			
		||||
     *
 | 
			
		||||
     * @param createReqDTO 操作日志请求
 | 
			
		||||
     */
 | 
			
		||||
    void createOperateLog(OperateLogCreateReqDTO createReqDTO);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 获得操作日志分页列表
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
 | 
			
		||||
import cn.iocoder.yudao.framework.common.util.string.StrUtils;
 | 
			
		||||
import cn.iocoder.yudao.framework.operatelog.core.dto.OperateLogCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogExportReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert;
 | 
			
		||||
@@ -13,8 +13,6 @@ import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
 | 
			
		||||
import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper;
 | 
			
		||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
 | 
			
		||||
import lombok.extern.slf4j.Slf4j;
 | 
			
		||||
import org.springframework.scheduling.annotation.Async;
 | 
			
		||||
import org.springframework.scheduling.annotation.AsyncResult;
 | 
			
		||||
import org.springframework.stereotype.Service;
 | 
			
		||||
import org.springframework.validation.annotation.Validated;
 | 
			
		||||
 | 
			
		||||
@@ -22,7 +20,6 @@ import javax.annotation.Resource;
 | 
			
		||||
import java.util.Collection;
 | 
			
		||||
import java.util.Collections;
 | 
			
		||||
import java.util.List;
 | 
			
		||||
import java.util.concurrent.Future;
 | 
			
		||||
 | 
			
		||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
 | 
			
		||||
import static cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH;
 | 
			
		||||
@@ -40,19 +37,11 @@ public class OperateLogServiceImpl implements OperateLogService {
 | 
			
		||||
    private AdminUserService userService;
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Async
 | 
			
		||||
    public Future<Boolean> createOperateLogAsync(OperateLogCreateReqDTO reqVO) {
 | 
			
		||||
        boolean success = false;
 | 
			
		||||
        try {
 | 
			
		||||
            OperateLogDO logDO = OperateLogConvert.INSTANCE.convert(reqVO);
 | 
			
		||||
            logDO.setJavaMethodArgs(StrUtils.maxLength(logDO.getJavaMethodArgs(), JAVA_METHOD_ARGS_MAX_LENGTH));
 | 
			
		||||
            logDO.setResultData(StrUtils.maxLength(logDO.getResultData(), RESULT_MAX_LENGTH));
 | 
			
		||||
            success = operateLogMapper.insert(logDO) == 1;
 | 
			
		||||
        } catch (Throwable throwable) {
 | 
			
		||||
            // 仅仅打印日志,不对外抛出。原因是,还是要保留现场数据。
 | 
			
		||||
            log.error("[createOperateLogAsync][记录操作日志异常,日志为 ({})]", reqVO, throwable);
 | 
			
		||||
        }
 | 
			
		||||
        return new AsyncResult<>(success);
 | 
			
		||||
    public void createOperateLog(OperateLogCreateReqDTO createReqDTO) {
 | 
			
		||||
        OperateLogDO logDO = OperateLogConvert.INSTANCE.convert(createReqDTO);
 | 
			
		||||
        logDO.setJavaMethodArgs(StrUtils.maxLength(logDO.getJavaMethodArgs(), JAVA_METHOD_ARGS_MAX_LENGTH));
 | 
			
		||||
        logDO.setResultData(StrUtils.maxLength(logDO.getResultData(), RESULT_MAX_LENGTH));
 | 
			
		||||
        operateLogMapper.insert(logDO);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user