Commit 3bab9748db4d7e0661afaf365b3789966223145d
1 parent
ddb6fe7e
系统操作日志:使用自定义 starter 的方式重新集成 mzt-biz-log
Showing
21 changed files
with
187 additions
and
128 deletions
yudao-dependencies/pom.xml
| @@ -26,7 +26,7 @@ | @@ -26,7 +26,7 @@ | ||
| 26 | <mybatis-plus.version>3.5.4.1</mybatis-plus.version> | 26 | <mybatis-plus.version>3.5.4.1</mybatis-plus.version> |
| 27 | <mybatis-plus-generator.version>3.5.4.1</mybatis-plus-generator.version> | 27 | <mybatis-plus-generator.version>3.5.4.1</mybatis-plus-generator.version> |
| 28 | <dynamic-datasource.version>4.2.0</dynamic-datasource.version> | 28 | <dynamic-datasource.version>4.2.0</dynamic-datasource.version> |
| 29 | - <mybatis-plus-join.version>1.4.7.2</mybatis-plus-join.version> | 29 | + <mybatis-plus-join.version>1.4.8.1</mybatis-plus-join.version> |
| 30 | <redisson.version>3.25.0</redisson.version> | 30 | <redisson.version>3.25.0</redisson.version> |
| 31 | <dm8.jdbc.version>8.1.3.62</dm8.jdbc.version> | 31 | <dm8.jdbc.version>8.1.3.62</dm8.jdbc.version> |
| 32 | <!-- 消息队列 --> | 32 | <!-- 消息队列 --> |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/pom.xml
| @@ -46,6 +46,13 @@ | @@ -46,6 +46,13 @@ | ||
| 46 | <groupId>com.google.guava</groupId> | 46 | <groupId>com.google.guava</groupId> |
| 47 | <artifactId>guava</artifactId> | 47 | <artifactId>guava</artifactId> |
| 48 | </dependency> | 48 | </dependency> |
| 49 | + <!-- Springboot-注解-通用操作日志组件 --> | ||
| 50 | + <!-- 此组件解决的问题是: 「谁」在「什么时间」对「什么」做了「什么事」 --> | ||
| 51 | + <dependency> | ||
| 52 | + <groupId>io.github.mouzt</groupId> | ||
| 53 | + <artifactId>bizlog-sdk</artifactId> | ||
| 54 | + </dependency> | ||
| 55 | + | ||
| 49 | </dependencies> | 56 | </dependencies> |
| 50 | 57 | ||
| 51 | </project> | 58 | </project> |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelogv2/config/YudaoOperateLogV2Configuration.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.operatelogv2.config; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.operatelogv2.core.service.ILogRecordServiceImpl; | ||
| 4 | +import cn.iocoder.yudao.module.system.api.logger.OperateLogApi; | ||
| 5 | +import com.mzt.logapi.service.ILogRecordService; | ||
| 6 | +import com.mzt.logapi.starter.annotation.EnableLogRecord; | ||
| 7 | +import lombok.extern.slf4j.Slf4j; | ||
| 8 | +import org.springframework.boot.autoconfigure.AutoConfiguration; | ||
| 9 | +import org.springframework.context.annotation.Bean; | ||
| 10 | +import org.springframework.context.annotation.Primary; | ||
| 11 | + | ||
| 12 | +/** | ||
| 13 | + * mzt-biz-log 配置类 | ||
| 14 | + * | ||
| 15 | + * @author HUIHUI | ||
| 16 | + */ | ||
| 17 | +@EnableLogRecord(tenant = "") // 貌似用不上 tenant 这玩意给个空好啦 | ||
| 18 | +@AutoConfiguration | ||
| 19 | +@Slf4j | ||
| 20 | +public class YudaoOperateLogV2Configuration { | ||
| 21 | + | ||
| 22 | + @Bean | ||
| 23 | + @Primary | ||
| 24 | + public ILogRecordService iLogRecordServiceImpl(OperateLogApi operateLogApi) { | ||
| 25 | + return new ILogRecordServiceImpl(operateLogApi); | ||
| 26 | + } | ||
| 27 | + | ||
| 28 | +} |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelogv2/core/package-info.java
0 → 100644
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/bizlog/service/ILogRecordServiceImpl.java renamed to yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelogv2/core/service/ILogRecordServiceImpl.java
| 1 | -package cn.iocoder.yudao.module.system.framework.bizlog.service; | 1 | +package cn.iocoder.yudao.framework.operatelogv2.core.service; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; | 3 | import cn.iocoder.yudao.framework.common.util.monitor.TracerUtils; |
| 4 | import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; | 4 | import cn.iocoder.yudao.framework.common.util.servlet.ServletUtils; |
| 5 | import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; | 5 | import cn.iocoder.yudao.framework.web.core.util.WebFrameworkUtils; |
| 6 | -import cn.iocoder.yudao.module.system.service.logger.OperateLogService; | ||
| 7 | -import cn.iocoder.yudao.module.system.service.logger.bo.OperateLogV2CreateReqBO; | 6 | +import cn.iocoder.yudao.module.system.api.logger.OperateLogApi; |
| 7 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; | ||
| 8 | import com.mzt.logapi.beans.LogRecord; | 8 | import com.mzt.logapi.beans.LogRecord; |
| 9 | import com.mzt.logapi.service.ILogRecordService; | 9 | import com.mzt.logapi.service.ILogRecordService; |
| 10 | -import jakarta.annotation.Resource; | ||
| 11 | import jakarta.servlet.http.HttpServletRequest; | 10 | import jakarta.servlet.http.HttpServletRequest; |
| 11 | +import lombok.RequiredArgsConstructor; | ||
| 12 | import lombok.extern.slf4j.Slf4j; | 12 | import lombok.extern.slf4j.Slf4j; |
| 13 | -import org.springframework.stereotype.Service; | ||
| 14 | 13 | ||
| 15 | import java.util.Collections; | 14 | import java.util.Collections; |
| 16 | import java.util.List; | 15 | import java.util.List; |
| 17 | 16 | ||
| 18 | -// TODO @puhui999:这个应该搞到 operatelog 组件里哈; | ||
| 19 | /** | 17 | /** |
| 20 | * 操作日志 ILogRecordService 实现类 | 18 | * 操作日志 ILogRecordService 实现类 |
| 21 | * | 19 | * |
| 22 | - * 基于 {@link OperateLogService} 实现,记录操作日志 | 20 | + * 基于 {@link OperateLogApi} 实现,记录操作日志 |
| 23 | * | 21 | * |
| 24 | * @author HUIHUI | 22 | * @author HUIHUI |
| 25 | */ | 23 | */ |
| 26 | @Slf4j | 24 | @Slf4j |
| 27 | -@Service | 25 | +@RequiredArgsConstructor |
| 28 | public class ILogRecordServiceImpl implements ILogRecordService { | 26 | public class ILogRecordServiceImpl implements ILogRecordService { |
| 29 | 27 | ||
| 30 | - @Resource | ||
| 31 | - private OperateLogService operateLogService; | 28 | + private final OperateLogApi operateLogApi; |
| 32 | 29 | ||
| 33 | @Override | 30 | @Override |
| 34 | public void record(LogRecord logRecord) { | 31 | public void record(LogRecord logRecord) { |
| 35 | - OperateLogV2CreateReqBO reqBO = new OperateLogV2CreateReqBO(); | 32 | + OperateLogV2CreateReqDTO reqBO = new OperateLogV2CreateReqDTO(); |
| 36 | // 补全通用字段 | 33 | // 补全通用字段 |
| 37 | reqBO.setTraceId(TracerUtils.getTraceId()); | 34 | reqBO.setTraceId(TracerUtils.getTraceId()); |
| 38 | // 补充用户信息 | 35 | // 补充用户信息 |
| @@ -42,24 +39,24 @@ public class ILogRecordServiceImpl implements ILogRecordService { | @@ -42,24 +39,24 @@ public class ILogRecordServiceImpl implements ILogRecordService { | ||
| 42 | // 补全请求信息 | 39 | // 补全请求信息 |
| 43 | fillRequestFields(reqBO); | 40 | fillRequestFields(reqBO); |
| 44 | // 异步记录日志 | 41 | // 异步记录日志 |
| 45 | - operateLogService.createOperateLogV2(reqBO); | 42 | + operateLogApi.createOperateLogV2(reqBO); |
| 46 | log.info("操作日志 ===> {}", reqBO); | 43 | log.info("操作日志 ===> {}", reqBO); |
| 47 | } | 44 | } |
| 48 | 45 | ||
| 49 | - private static void fillUserFields(OperateLogV2CreateReqBO reqBO) { | 46 | + private static void fillUserFields(OperateLogV2CreateReqDTO reqBO) { |
| 50 | reqBO.setUserId(WebFrameworkUtils.getLoginUserId()); | 47 | reqBO.setUserId(WebFrameworkUtils.getLoginUserId()); |
| 51 | reqBO.setUserType(WebFrameworkUtils.getLoginUserType()); | 48 | reqBO.setUserType(WebFrameworkUtils.getLoginUserType()); |
| 52 | } | 49 | } |
| 53 | 50 | ||
| 54 | - public static void fillModuleFields(OperateLogV2CreateReqBO reqBO, LogRecord logRecord) { | ||
| 55 | - reqBO.setModule(logRecord.getType()); // 大模块类型如 crm-客户 | ||
| 56 | - reqBO.setName(logRecord.getSubType());// 操作名称如 转移客户 | 51 | + public static void fillModuleFields(OperateLogV2CreateReqDTO reqBO, LogRecord logRecord) { |
| 52 | + reqBO.setType(logRecord.getType()); // 大模块类型如 crm-客户 | ||
| 53 | + reqBO.setSubType(logRecord.getSubType());// 操作名称如 转移客户 | ||
| 57 | reqBO.setBizId(Long.parseLong(logRecord.getBizNo())); // 操作模块业务编号 | 54 | reqBO.setBizId(Long.parseLong(logRecord.getBizNo())); // 操作模块业务编号 |
| 58 | reqBO.setContent(logRecord.getAction());// 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。 | 55 | reqBO.setContent(logRecord.getAction());// 例如说,修改编号为 1 的用户信息,将性别从男改成女,将姓名从芋道改成源码。 |
| 59 | reqBO.setExtra(logRecord.getExtra()); // 拓展字段,有些复杂的业务,需要记录一些字段 ( JSON 格式 ),例如说,记录订单编号,{ orderId: "1"} | 56 | reqBO.setExtra(logRecord.getExtra()); // 拓展字段,有些复杂的业务,需要记录一些字段 ( JSON 格式 ),例如说,记录订单编号,{ orderId: "1"} |
| 60 | } | 57 | } |
| 61 | 58 | ||
| 62 | - private static void fillRequestFields(OperateLogV2CreateReqBO reqBO) { | 59 | + private static void fillRequestFields(OperateLogV2CreateReqDTO reqBO) { |
| 63 | // 获得 Request 对象 | 60 | // 获得 Request 对象 |
| 64 | HttpServletRequest request = ServletUtils.getRequest(); | 61 | HttpServletRequest request = ServletUtils.getRequest(); |
| 65 | if (request == null) { | 62 | if (request == null) { |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelogv2/core/vo/OperateLogV2PageReqVO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.framework.operatelogv2.core.vo; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | +import lombok.Data; | ||
| 6 | + | ||
| 7 | +@Schema(description = "管理后台 - 操作日志分页 Request VO") | ||
| 8 | +@Data | ||
| 9 | +public class OperateLogV2PageReqVO extends PageParam { | ||
| 10 | + | ||
| 11 | + @Schema(description = "模块数据编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024") | ||
| 12 | + private Long bizId; | ||
| 13 | + | ||
| 14 | + @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 15 | + private Long userId; | ||
| 16 | + | ||
| 17 | + @Schema(description = "模块类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") | ||
| 18 | + private String bizType; | ||
| 19 | + | ||
| 20 | +} |
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/java/cn/iocoder/yudao/framework/operatelogv2/package-info.java
0 → 100644
yudao-framework/yudao-spring-boot-starter-biz-operatelog/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
| 1 | -cn.iocoder.yudao.framework.operatelog.config.YudaoOperateLogAutoConfiguration | ||
| 2 | \ No newline at end of file | 1 | \ No newline at end of file |
| 2 | +cn.iocoder.yudao.framework.operatelog.config.YudaoOperateLogAutoConfiguration | ||
| 3 | +cn.iocoder.yudao.framework.operatelogv2.config.YudaoOperateLogV2Configuration | ||
| 3 | \ No newline at end of file | 4 | \ No newline at end of file |
yudao-module-crm/yudao-module-crm-api/src/main/java/cn/iocoder/yudao/module/crm/enums/LogRecordConstants.java
| @@ -22,6 +22,5 @@ public interface LogRecordConstants { | @@ -22,6 +22,5 @@ public interface LogRecordConstants { | ||
| 22 | //======================= 客户转移操作日志 ======================= | 22 | //======================= 客户转移操作日志 ======================= |
| 23 | 23 | ||
| 24 | String TRANSFER_CUSTOMER_LOG_SUCCESS = "把客户【{{#crmCustomer.name}}】的负责人从【{getAdminUserById{#crmCustomer.ownerUserId}}】变更为了【{getAdminUserById{#reqVO.newOwnerUserId}}】"; | 24 | String TRANSFER_CUSTOMER_LOG_SUCCESS = "把客户【{{#crmCustomer.name}}】的负责人从【{getAdminUserById{#crmCustomer.ownerUserId}}】变更为了【{getAdminUserById{#reqVO.newOwnerUserId}}】"; |
| 25 | - String TRANSFER_CUSTOMER_LOG_FAIL = ""; // TODO @puhui999:这个可以删除哈,一般不搞失败的日志 | ||
| 26 | 25 | ||
| 27 | } | 26 | } |
yudao-module-system/yudao-module-system-api/pom.xml
| @@ -22,32 +22,12 @@ | @@ -22,32 +22,12 @@ | ||
| 22 | <artifactId>yudao-common</artifactId> | 22 | <artifactId>yudao-common</artifactId> |
| 23 | </dependency> | 23 | </dependency> |
| 24 | 24 | ||
| 25 | - <!-- TODO @puhui999 & 芋艿:操作日志,要不要这么引入? --> | ||
| 26 | - <!-- Springboot-注解-通用操作日志组件 --> | ||
| 27 | - <!-- 此组件解决的问题是: 「谁」在「什么时间」对「什么」做了「什么事」 --> | ||
| 28 | - <dependency> | ||
| 29 | - <groupId>io.github.mouzt</groupId> | ||
| 30 | - <artifactId>bizlog-sdk</artifactId> | ||
| 31 | - </dependency> | ||
| 32 | - | ||
| 33 | - <!-- TODO @puhui999 & 芋艿:要不要移除掉 --> | ||
| 34 | - <!--工具类相关--> | ||
| 35 | - <dependency> | ||
| 36 | - <groupId>com.fasterxml.jackson.core</groupId> | ||
| 37 | - <artifactId>jackson-databind</artifactId> | ||
| 38 | - </dependency> | ||
| 39 | - <dependency> | ||
| 40 | - <groupId>com.fasterxml.jackson.core</groupId> | ||
| 41 | - <artifactId>jackson-core</artifactId> | ||
| 42 | - </dependency> | ||
| 43 | - | ||
| 44 | <!-- 参数校验 --> | 25 | <!-- 参数校验 --> |
| 45 | <dependency> | 26 | <dependency> |
| 46 | <groupId>org.springframework.boot</groupId> | 27 | <groupId>org.springframework.boot</groupId> |
| 47 | <artifactId>spring-boot-starter-validation</artifactId> | 28 | <artifactId>spring-boot-starter-validation</artifactId> |
| 48 | <optional>true</optional> | 29 | <optional>true</optional> |
| 49 | </dependency> | 30 | </dependency> |
| 50 | - | ||
| 51 | </dependencies> | 31 | </dependencies> |
| 52 | 32 | ||
| 53 | </project> | 33 | </project> |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApi.java
| 1 | package cn.iocoder.yudao.module.system.api.logger; | 1 | package cn.iocoder.yudao.module.system.api.logger; |
| 2 | 2 | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 3 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; | 4 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; |
| 5 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; | ||
| 6 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; | ||
| 4 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; | 7 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; |
| 5 | import jakarta.validation.Valid; | 8 | import jakarta.validation.Valid; |
| 6 | 9 | ||
| 7 | -import java.util.List; | ||
| 8 | - | ||
| 9 | /** | 10 | /** |
| 10 | * 操作日志 API 接口 | 11 | * 操作日志 API 接口 |
| 11 | * | 12 | * |
| @@ -21,12 +22,18 @@ public interface OperateLogApi { | @@ -21,12 +22,18 @@ public interface OperateLogApi { | ||
| 21 | void createOperateLog(@Valid OperateLogCreateReqDTO createReqDTO); | 22 | void createOperateLog(@Valid OperateLogCreateReqDTO createReqDTO); |
| 22 | 23 | ||
| 23 | /** | 24 | /** |
| 24 | - * 获取指定模块的指定数据的操作日志 | 25 | + * 创建操作日志 |
| 26 | + * | ||
| 27 | + * @param createReqDTO 请求 | ||
| 28 | + */ | ||
| 29 | + void createOperateLogV2(@Valid OperateLogV2CreateReqDTO createReqDTO); | ||
| 30 | + | ||
| 31 | + /** | ||
| 32 | + * 获取指定模块的指定数据的操作日志分页 | ||
| 25 | * | 33 | * |
| 26 | - * @param module 操作模块 | ||
| 27 | - * @param bizId 操作模块编号 | ||
| 28 | - * @return 操作日志 | 34 | + * @param pageReqVO 请求 |
| 35 | + * @return 操作日志分页 | ||
| 29 | */ | 36 | */ |
| 30 | - List<OperateLogV2RespDTO> getOperateLogByModuleAndBizId(String module, Long bizId); | 37 | + PageResult<OperateLogV2RespDTO> getOperateLogPage(OperateLogV2PageReqDTO pageReqVO); |
| 31 | 38 | ||
| 32 | } | 39 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/bo/OperateLogV2CreateReqBO.java renamed to yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2CreateReqDTO.java
| 1 | -package cn.iocoder.yudao.module.system.service.logger.bo; | 1 | +package cn.iocoder.yudao.module.system.api.logger.dto; |
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | 3 | import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; |
| 4 | import jakarta.validation.constraints.NotEmpty; | 4 | import jakarta.validation.constraints.NotEmpty; |
| 5 | +import jakarta.validation.constraints.NotNull; | ||
| 5 | import lombok.Data; | 6 | import lombok.Data; |
| 6 | 7 | ||
| 7 | /** | 8 | /** |
| @@ -10,7 +11,7 @@ import lombok.Data; | @@ -10,7 +11,7 @@ import lombok.Data; | ||
| 10 | * @author HUIHUI | 11 | * @author HUIHUI |
| 11 | */ | 12 | */ |
| 12 | @Data | 13 | @Data |
| 13 | -public class OperateLogV2CreateReqBO { | 14 | +public class OperateLogV2CreateReqDTO { |
| 14 | 15 | ||
| 15 | /** | 16 | /** |
| 16 | * 链路追踪编号 | 17 | * 链路追踪编号 |
| @@ -23,29 +24,29 @@ public class OperateLogV2CreateReqBO { | @@ -23,29 +24,29 @@ public class OperateLogV2CreateReqBO { | ||
| 23 | * | 24 | * |
| 24 | * 关联 MemberUserDO 的 id 属性,或者 AdminUserDO 的 id 属性 | 25 | * 关联 MemberUserDO 的 id 属性,或者 AdminUserDO 的 id 属性 |
| 25 | */ | 26 | */ |
| 26 | - @NotEmpty(message = "用户编号不能为空") | 27 | + @NotNull(message = "用户编号不能为空") |
| 27 | private Long userId; | 28 | private Long userId; |
| 28 | /** | 29 | /** |
| 29 | * 用户类型 | 30 | * 用户类型 |
| 30 | * | 31 | * |
| 31 | * 关联 {@link UserTypeEnum} | 32 | * 关联 {@link UserTypeEnum} |
| 32 | */ | 33 | */ |
| 33 | - @NotEmpty(message = "用户类型不能为空") | 34 | + @NotNull(message = "用户类型不能为空") |
| 34 | private Integer userType; | 35 | private Integer userType; |
| 35 | /** | 36 | /** |
| 36 | - * 操作模块 | 37 | + * 操作模块类型 |
| 37 | */ | 38 | */ |
| 38 | - @NotEmpty(message = "操作模块不能为空") | ||
| 39 | - private String module; | 39 | + @NotEmpty(message = "操作模块类型不能为空") |
| 40 | + private String type; | ||
| 40 | /** | 41 | /** |
| 41 | * 操作名 | 42 | * 操作名 |
| 42 | */ | 43 | */ |
| 43 | @NotEmpty(message = "操作名不能为空") | 44 | @NotEmpty(message = "操作名不能为空") |
| 44 | - private String name; | 45 | + private String subType; |
| 45 | /** | 46 | /** |
| 46 | * 操作模块业务编号 | 47 | * 操作模块业务编号 |
| 47 | */ | 48 | */ |
| 48 | - @NotEmpty(message = "操作模块业务编号不能为空") | 49 | + @NotNull(message = "操作模块业务编号不能为空") |
| 49 | private Long bizId; | 50 | private Long bizId; |
| 50 | /** | 51 | /** |
| 51 | * 操作内容,记录整个操作的明细 | 52 | * 操作内容,记录整个操作的明细 |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2PageReqDTO.java
0 → 100644
| 1 | +package cn.iocoder.yudao.module.system.api.logger.dto; | ||
| 2 | + | ||
| 3 | +import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||
| 4 | +import lombok.Data; | ||
| 5 | + | ||
| 6 | +/** | ||
| 7 | + * 操作日志分页 Request DTO | ||
| 8 | + * | ||
| 9 | + * @author HUIHUI | ||
| 10 | + */ | ||
| 11 | +@Data | ||
| 12 | +public class OperateLogV2PageReqDTO extends PageParam { | ||
| 13 | + | ||
| 14 | + /** | ||
| 15 | + * 模块类型 | ||
| 16 | + */ | ||
| 17 | + private String bizType; | ||
| 18 | + /** | ||
| 19 | + * 模块数据编号 | ||
| 20 | + */ | ||
| 21 | + private Long bizId; | ||
| 22 | + | ||
| 23 | + /** | ||
| 24 | + * 用户编号 | ||
| 25 | + */ | ||
| 26 | + private Long userId; | ||
| 27 | + | ||
| 28 | +} |
yudao-module-system/yudao-module-system-api/src/main/java/cn/iocoder/yudao/module/system/api/logger/dto/OperateLogV2RespDTO.java
| 1 | package cn.iocoder.yudao.module.system.api.logger.dto; | 1 | package cn.iocoder.yudao.module.system.api.logger.dto; |
| 2 | 2 | ||
| 3 | -import cn.iocoder.yudao.framework.common.enums.UserTypeEnum; | ||
| 4 | -import com.fasterxml.jackson.annotation.JsonFormat; | ||
| 5 | import lombok.Data; | 3 | import lombok.Data; |
| 6 | 4 | ||
| 7 | -import java.time.LocalDateTime; | ||
| 8 | - | ||
| 9 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 10 | -import static cn.iocoder.yudao.framework.common.util.date.DateUtils.TIME_ZONE_DEFAULT; | ||
| 11 | - | ||
| 12 | /** | 5 | /** |
| 13 | * 系统操作日志 Resp DTO | 6 | * 系统操作日志 Resp DTO |
| 14 | * | 7 | * |
| @@ -26,6 +19,10 @@ public class OperateLogV2RespDTO { | @@ -26,6 +19,10 @@ public class OperateLogV2RespDTO { | ||
| 26 | */ | 19 | */ |
| 27 | private Long userId; | 20 | private Long userId; |
| 28 | /** | 21 | /** |
| 22 | + * 用户名称 | ||
| 23 | + */ | ||
| 24 | + private String userName; | ||
| 25 | + /** | ||
| 29 | * 用户类型 | 26 | * 用户类型 |
| 30 | */ | 27 | */ |
| 31 | private Integer userType; | 28 | private Integer userType; |
| @@ -68,20 +65,8 @@ public class OperateLogV2RespDTO { | @@ -68,20 +65,8 @@ public class OperateLogV2RespDTO { | ||
| 68 | private String userAgent; | 65 | private String userAgent; |
| 69 | 66 | ||
| 70 | /** | 67 | /** |
| 71 | - * 创建时间 | ||
| 72 | - */ | ||
| 73 | - // TODO puhui999: 木得效果怎么肥事 | ||
| 74 | - @JsonFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND, timezone = TIME_ZONE_DEFAULT) | ||
| 75 | - private LocalDateTime createTime; | ||
| 76 | - | ||
| 77 | - // TODO @puhui999:下面 2 个字段不用返回;用 userId 哈;返回一个 userName | ||
| 78 | - /** | ||
| 79 | - * 创建者 | ||
| 80 | - */ | ||
| 81 | - private String creator; | ||
| 82 | - /** | ||
| 83 | - * 创建者名称 | 68 | + * 创建时间, 直接返回字符串 |
| 84 | */ | 69 | */ |
| 85 | - private String creatorName; | 70 | + private String createTime; |
| 86 | 71 | ||
| 87 | } | 72 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/api/logger/OperateLogApiImpl.java
| 1 | package cn.iocoder.yudao.module.system.api.logger; | 1 | package cn.iocoder.yudao.module.system.api.logger; |
| 2 | 2 | ||
| 3 | import cn.hutool.core.collection.CollUtil; | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | +import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 4 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 5 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; | 6 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; |
| 7 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; | ||
| 8 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; | ||
| 6 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; | 9 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; |
| 10 | +import cn.iocoder.yudao.module.system.convert.logger.OperateLogConvert; | ||
| 7 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; | 11 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; |
| 8 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | 12 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
| 9 | import cn.iocoder.yudao.module.system.service.logger.OperateLogService; | 13 | import cn.iocoder.yudao.module.system.service.logger.OperateLogService; |
| 10 | import cn.iocoder.yudao.module.system.service.user.AdminUserService; | 14 | import cn.iocoder.yudao.module.system.service.user.AdminUserService; |
| 11 | import jakarta.annotation.Resource; | 15 | import jakarta.annotation.Resource; |
| 16 | +import org.springframework.scheduling.annotation.Async; | ||
| 12 | import org.springframework.stereotype.Service; | 17 | import org.springframework.stereotype.Service; |
| 13 | import org.springframework.validation.annotation.Validated; | 18 | import org.springframework.validation.annotation.Validated; |
| 14 | 19 | ||
| 15 | -import java.util.Collections; | ||
| 16 | import java.util.List; | 20 | import java.util.List; |
| 17 | import java.util.Map; | 21 | import java.util.Map; |
| 18 | 22 | ||
| @@ -39,21 +43,31 @@ public class OperateLogApiImpl implements OperateLogApi { | @@ -39,21 +43,31 @@ public class OperateLogApiImpl implements OperateLogApi { | ||
| 39 | } | 43 | } |
| 40 | 44 | ||
| 41 | @Override | 45 | @Override |
| 42 | - public List<OperateLogV2RespDTO> getOperateLogByModuleAndBizId(String module, Long bizId) { | ||
| 43 | - List<OperateLogV2DO> logList = operateLogService.getOperateLogByModuleAndBizId(module, bizId); | ||
| 44 | - if (CollUtil.isEmpty(logList)) { | ||
| 45 | - return Collections.emptyList(); | 46 | + @Async |
| 47 | + public void createOperateLogV2(OperateLogV2CreateReqDTO createReqDTO) { | ||
| 48 | + operateLogService.createOperateLogV2(createReqDTO); | ||
| 49 | + } | ||
| 50 | + | ||
| 51 | + @Override | ||
| 52 | + public PageResult<OperateLogV2RespDTO> getOperateLogPage(OperateLogV2PageReqDTO pageReqVO) { | ||
| 53 | + PageResult<OperateLogV2DO> operateLogPage = operateLogService.getOperateLogPage(pageReqVO); | ||
| 54 | + if (CollUtil.isEmpty(operateLogPage.getList())) { | ||
| 55 | + return PageResult.empty(); | ||
| 46 | } | 56 | } |
| 47 | 57 | ||
| 48 | // 获取用户 | 58 | // 获取用户 |
| 49 | - List<AdminUserDO> userList = adminUserService.getUserList(convertSet(logList, item -> Long.parseLong(item.getCreator()))); | 59 | + List<AdminUserDO> userList = adminUserService.getUserList(convertSet(operateLogPage.getList(), OperateLogV2DO::getUserId)); |
| 60 | + return BeanUtils.toBean(operateLogPage, OperateLogV2RespDTO.class).setList(setUserInfo(operateLogPage.getList(), userList)); | ||
| 61 | + } | ||
| 62 | + | ||
| 63 | + private static List<OperateLogV2RespDTO> setUserInfo(List<OperateLogV2DO> logList, List<AdminUserDO> userList) { | ||
| 50 | Map<Long, AdminUserDO> userMap = convertMap(userList, AdminUserDO::getId); | 64 | Map<Long, AdminUserDO> userMap = convertMap(userList, AdminUserDO::getId); |
| 51 | return convertList(logList, item -> { | 65 | return convertList(logList, item -> { |
| 52 | - OperateLogV2RespDTO bean = BeanUtils.toBean(item, OperateLogV2RespDTO.class); | ||
| 53 | - findAndThen(userMap, Long.parseLong(item.getCreator()), user -> { | ||
| 54 | - bean.setCreatorName(user.getNickname()); | 66 | + OperateLogV2RespDTO respDTO = OperateLogConvert.INSTANCE.convert(item); |
| 67 | + findAndThen(userMap, item.getUserId(), user -> { | ||
| 68 | + respDTO.setUserName(user.getNickname()); | ||
| 55 | }); | 69 | }); |
| 56 | - return bean; | 70 | + return respDTO; |
| 57 | }); | 71 | }); |
| 58 | } | 72 | } |
| 59 | 73 |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/convert/logger/OperateLogConvert.java
| @@ -3,15 +3,20 @@ package cn.iocoder.yudao.module.system.convert.logger; | @@ -3,15 +3,20 @@ package cn.iocoder.yudao.module.system.convert.logger; | ||
| 3 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; | 3 | import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; |
| 4 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; | 4 | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; |
| 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 5 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 6 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2RespDTO; | ||
| 6 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; | 7 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogRespVO; |
| 7 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; |
| 9 | +import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; | ||
| 8 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | 10 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
| 9 | import org.mapstruct.Mapper; | 11 | import org.mapstruct.Mapper; |
| 12 | +import org.mapstruct.Mapping; | ||
| 10 | import org.mapstruct.factory.Mappers; | 13 | import org.mapstruct.factory.Mappers; |
| 11 | 14 | ||
| 12 | import java.util.List; | 15 | import java.util.List; |
| 13 | import java.util.Map; | 16 | import java.util.Map; |
| 14 | 17 | ||
| 18 | +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||
| 19 | + | ||
| 15 | @Mapper | 20 | @Mapper |
| 16 | public interface OperateLogConvert { | 21 | public interface OperateLogConvert { |
| 17 | 22 | ||
| @@ -25,4 +30,7 @@ public interface OperateLogConvert { | @@ -25,4 +30,7 @@ public interface OperateLogConvert { | ||
| 25 | }); | 30 | }); |
| 26 | } | 31 | } |
| 27 | 32 | ||
| 33 | + @Mapping(target = "createTime", source = "logV2DO.createTime", dateFormat = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) | ||
| 34 | + OperateLogV2RespDTO convert(OperateLogV2DO logV2DO); | ||
| 35 | + | ||
| 28 | } | 36 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/dataobject/logger/OperateLogV2DO.java
| @@ -42,15 +42,14 @@ public class OperateLogV2DO extends BaseDO { | @@ -42,15 +42,14 @@ public class OperateLogV2DO extends BaseDO { | ||
| 42 | * 关联 {@link UserTypeEnum} | 42 | * 关联 {@link UserTypeEnum} |
| 43 | */ | 43 | */ |
| 44 | private Integer userType; | 44 | private Integer userType; |
| 45 | - // TODO @puhui999:module 改成 type,name 改成 subType; | ||
| 46 | /** | 45 | /** |
| 47 | - * 操作模块 | 46 | + * 操作模块类型 |
| 48 | */ | 47 | */ |
| 49 | - private String module; | 48 | + private String type; |
| 50 | /** | 49 | /** |
| 51 | * 操作名 | 50 | * 操作名 |
| 52 | */ | 51 | */ |
| 53 | - private String name; | 52 | + private String subType; |
| 54 | /** | 53 | /** |
| 55 | * 操作模块业务编号 | 54 | * 操作模块业务编号 |
| 56 | */ | 55 | */ |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/logger/OperateLogV2Mapper.java
| @@ -3,28 +3,29 @@ package cn.iocoder.yudao.module.system.dal.mysql.logger; | @@ -3,28 +3,29 @@ package cn.iocoder.yudao.module.system.dal.mysql.logger; | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; | 4 | import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; |
| 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; | 5 | import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; |
| 6 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; | ||
| 6 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; | 7 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; |
| 7 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; |
| 8 | import org.apache.ibatis.annotations.Mapper; | 9 | import org.apache.ibatis.annotations.Mapper; |
| 9 | 10 | ||
| 10 | import java.util.Collection; | 11 | import java.util.Collection; |
| 11 | -import java.util.List; | ||
| 12 | 12 | ||
| 13 | @Mapper | 13 | @Mapper |
| 14 | public interface OperateLogV2Mapper extends BaseMapperX<OperateLogV2DO> { | 14 | public interface OperateLogV2Mapper extends BaseMapperX<OperateLogV2DO> { |
| 15 | 15 | ||
| 16 | default PageResult<OperateLogV2DO> selectPage(OperateLogPageReqVO reqVO, Collection<Long> userIds) { | 16 | default PageResult<OperateLogV2DO> selectPage(OperateLogPageReqVO reqVO, Collection<Long> userIds) { |
| 17 | LambdaQueryWrapperX<OperateLogV2DO> query = new LambdaQueryWrapperX<OperateLogV2DO>() | 17 | LambdaQueryWrapperX<OperateLogV2DO> query = new LambdaQueryWrapperX<OperateLogV2DO>() |
| 18 | - .likeIfPresent(OperateLogV2DO::getModule, reqVO.getModule()) | 18 | + .likeIfPresent(OperateLogV2DO::getType, reqVO.getModule()) |
| 19 | .inIfPresent(OperateLogV2DO::getUserId, userIds); | 19 | .inIfPresent(OperateLogV2DO::getUserId, userIds); |
| 20 | query.orderByDesc(OperateLogV2DO::getId); // 降序 | 20 | query.orderByDesc(OperateLogV2DO::getId); // 降序 |
| 21 | return selectPage(reqVO, query); | 21 | return selectPage(reqVO, query); |
| 22 | } | 22 | } |
| 23 | 23 | ||
| 24 | - default List<OperateLogV2DO> selectListByModuleAndBizId(String module, Long bizId) { | ||
| 25 | - return selectList(new LambdaQueryWrapperX<OperateLogV2DO>() | ||
| 26 | - .eq(OperateLogV2DO::getModule, module) | ||
| 27 | - .eq(OperateLogV2DO::getBizId, bizId) | 24 | + default PageResult<OperateLogV2DO> selectPage(OperateLogV2PageReqDTO pageReqVO) { |
| 25 | + return selectPage(pageReqVO, new LambdaQueryWrapperX<OperateLogV2DO>() | ||
| 26 | + .eqIfPresent(OperateLogV2DO::getType, pageReqVO.getBizType()) | ||
| 27 | + .eqIfPresent(OperateLogV2DO::getBizId, pageReqVO.getBizId()) | ||
| 28 | + .eqIfPresent(OperateLogV2DO::getUserId, pageReqVO.getUserId()) | ||
| 28 | .orderByDesc(OperateLogV2DO::getCreateTime)); | 29 | .orderByDesc(OperateLogV2DO::getCreateTime)); |
| 29 | } | 30 | } |
| 30 | 31 |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/framework/bizlog/config/YudaoOperateLogV2Configuration.java deleted
| 1 | -package cn.iocoder.yudao.module.system.framework.bizlog.config; | ||
| 2 | - | ||
| 3 | -import com.mzt.logapi.starter.annotation.EnableLogRecord; | ||
| 4 | -import org.springframework.context.annotation.Configuration; | ||
| 5 | - | ||
| 6 | -// TODO @puhui999:挪到 yudao-spring-boot-starter-biz-operatelog 下,搞个 cn.iocoder.yudao.framework.operatelogv2;跑通后,我们直接就删除老的实现了; | ||
| 7 | -/** | ||
| 8 | - * mzt-biz-log 配置类 | ||
| 9 | - * | ||
| 10 | - * @author HUIHUI | ||
| 11 | - */ | ||
| 12 | -@Configuration(proxyBeanMethods = false) | ||
| 13 | -@EnableLogRecord(tenant = "") // 貌似用不上 tenant 这玩意给个空好啦 | ||
| 14 | -public class YudaoOperateLogV2Configuration { | ||
| 15 | - | ||
| 16 | -} |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogService.java
| @@ -2,12 +2,11 @@ package cn.iocoder.yudao.module.system.service.logger; | @@ -2,12 +2,11 @@ package cn.iocoder.yudao.module.system.service.logger; | ||
| 2 | 2 | ||
| 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; | 3 | import cn.iocoder.yudao.framework.common.pojo.PageResult; |
| 4 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; | 4 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; |
| 5 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; | ||
| 6 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; | ||
| 5 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; | 7 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; |
| 6 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; | 8 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; |
| 7 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; | 9 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; |
| 8 | -import cn.iocoder.yudao.module.system.service.logger.bo.OperateLogV2CreateReqBO; | ||
| 9 | - | ||
| 10 | -import java.util.List; | ||
| 11 | 10 | ||
| 12 | /** | 11 | /** |
| 13 | * 操作日志 Service 接口 | 12 | * 操作日志 Service 接口 |
| @@ -38,16 +37,14 @@ public interface OperateLogService { | @@ -38,16 +37,14 @@ public interface OperateLogService { | ||
| 38 | * | 37 | * |
| 39 | * @param createReqBO 创建请求 | 38 | * @param createReqBO 创建请求 |
| 40 | */ | 39 | */ |
| 41 | - void createOperateLogV2(OperateLogV2CreateReqBO createReqBO); | 40 | + void createOperateLogV2(OperateLogV2CreateReqDTO createReqBO); |
| 42 | 41 | ||
| 43 | - // TODO @puhui999:module 改成 type | ||
| 44 | /** | 42 | /** |
| 45 | - * 获取指定模块的指定数据的操作日志 | 43 | + * 获得操作日志分页列表 |
| 46 | * | 44 | * |
| 47 | - * @param module 操作模块 | ||
| 48 | - * @param bizId 操作模块编号 | ||
| 49 | - * @return 操作日志 | 45 | + * @param pageReqVO 分页条件 |
| 46 | + * @return 操作日志分页列表 | ||
| 50 | */ | 47 | */ |
| 51 | - List<OperateLogV2DO> getOperateLogByModuleAndBizId(String module, Long bizId); | 48 | + PageResult<OperateLogV2DO> getOperateLogPage(OperateLogV2PageReqDTO pageReqVO); |
| 52 | 49 | ||
| 53 | } | 50 | } |
yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/logger/OperateLogServiceImpl.java
| @@ -6,13 +6,14 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | @@ -6,13 +6,14 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||
| 6 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | 6 | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; |
| 7 | import cn.iocoder.yudao.framework.common.util.string.StrUtils; | 7 | import cn.iocoder.yudao.framework.common.util.string.StrUtils; |
| 8 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; | 8 | import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogCreateReqDTO; |
| 9 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2CreateReqDTO; | ||
| 10 | +import cn.iocoder.yudao.module.system.api.logger.dto.OperateLogV2PageReqDTO; | ||
| 9 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; | 11 | import cn.iocoder.yudao.module.system.controller.admin.logger.vo.operatelog.OperateLogPageReqVO; |
| 10 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; | 12 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO; |
| 11 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; | 13 | import cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogV2DO; |
| 12 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; | 14 | import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; |
| 13 | import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; | 15 | import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogMapper; |
| 14 | import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogV2Mapper; | 16 | import cn.iocoder.yudao.module.system.dal.mysql.logger.OperateLogV2Mapper; |
| 15 | -import cn.iocoder.yudao.module.system.service.logger.bo.OperateLogV2CreateReqBO; | ||
| 16 | import cn.iocoder.yudao.module.system.service.user.AdminUserService; | 17 | import cn.iocoder.yudao.module.system.service.user.AdminUserService; |
| 17 | import jakarta.annotation.Resource; | 18 | import jakarta.annotation.Resource; |
| 18 | import lombok.extern.slf4j.Slf4j; | 19 | import lombok.extern.slf4j.Slf4j; |
| @@ -20,7 +21,6 @@ import org.springframework.stereotype.Service; | @@ -20,7 +21,6 @@ import org.springframework.stereotype.Service; | ||
| 20 | import org.springframework.validation.annotation.Validated; | 21 | import org.springframework.validation.annotation.Validated; |
| 21 | 22 | ||
| 22 | import java.util.Collection; | 23 | import java.util.Collection; |
| 23 | -import java.util.List; | ||
| 24 | 24 | ||
| 25 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | 25 | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; |
| 26 | import static cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH; | 26 | import static cn.iocoder.yudao.module.system.dal.dataobject.logger.OperateLogDO.JAVA_METHOD_ARGS_MAX_LENGTH; |
| @@ -69,14 +69,15 @@ public class OperateLogServiceImpl implements OperateLogService { | @@ -69,14 +69,15 @@ public class OperateLogServiceImpl implements OperateLogService { | ||
| 69 | // ======================= LOG V2 ======================= | 69 | // ======================= LOG V2 ======================= |
| 70 | 70 | ||
| 71 | @Override | 71 | @Override |
| 72 | - public void createOperateLogV2(OperateLogV2CreateReqBO createReqBO) { | 72 | + public void createOperateLogV2(OperateLogV2CreateReqDTO createReqBO) { |
| 73 | OperateLogV2DO log = BeanUtils.toBean(createReqBO, OperateLogV2DO.class); | 73 | OperateLogV2DO log = BeanUtils.toBean(createReqBO, OperateLogV2DO.class); |
| 74 | operateLogV2Mapper.insert(log); | 74 | operateLogV2Mapper.insert(log); |
| 75 | } | 75 | } |
| 76 | 76 | ||
| 77 | + | ||
| 77 | @Override | 78 | @Override |
| 78 | - public List<OperateLogV2DO> getOperateLogByModuleAndBizId(String module, Long bizId) { | ||
| 79 | - return operateLogV2Mapper.selectListByModuleAndBizId(module, bizId); | 79 | + public PageResult<OperateLogV2DO> getOperateLogPage(OperateLogV2PageReqDTO pageReqVO) { |
| 80 | + return operateLogV2Mapper.selectPage(pageReqVO); | ||
| 80 | } | 81 | } |
| 81 | 82 | ||
| 82 | } | 83 | } |