Browse Source

🔧 简化 errorLog 和 accessLog 模块的 VO

YunaiV 1 year ago
parent
commit
30fef09eee
21 changed files with 185 additions and 654 deletions
  1. 1 1
      yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java
  2. 11 11
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiAccessLogController.java
  3. 12 12
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiErrorLogController.java
  4. 0 75
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java
  5. 0 65
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExcelVO.java
  6. 0 37
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExportReqVO.java
  7. 65 5
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java
  8. 0 95
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java
  9. 0 90
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExcelVO.java
  10. 0 34
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExportReqVO.java
  11. 91 7
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java
  12. 0 33
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/logger/ApiAccessLogConvert.java
  13. 0 31
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/logger/ApiErrorLogConvert.java
  14. 0 15
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiAccessLogMapper.java
  15. 0 14
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiErrorLogMapper.java
  16. 0 11
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogService.java
  17. 2 9
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImpl.java
  18. 0 11
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogService.java
  19. 3 11
      yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java
  20. 0 45
      yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java
  21. 0 42
      yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java

+ 1 - 1
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java

@@ -28,7 +28,7 @@ public interface BaseMapperX<T> extends MPJBaseMapper<T> {
 
     default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
         // 特殊:不分页,直接查询全部
-        if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageNo())) {
+        if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageSize())) {
             List<T> list = selectList(queryWrapper);
             return new PageResult<>(list, (long) list.size());
         }

+ 11 - 11
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiAccessLogController.java

@@ -1,18 +1,17 @@
 package cn.iocoder.yudao.module.infra.controller.admin.logger;
 
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExcelVO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO;
-import cn.iocoder.yudao.module.infra.convert.logger.ApiAccessLogConvert;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 import cn.iocoder.yudao.module.infra.service.logger.ApiAccessLogService;
-import io.swagger.v3.oas.annotations.tags.Tag;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -40,21 +39,22 @@ public class ApiAccessLogController {
     @GetMapping("/page")
     @Operation(summary = "获得API 访问日志分页")
     @PreAuthorize("@ss.hasPermission('infra:api-access-log:query')")
-    public CommonResult<PageResult<ApiAccessLogRespVO>> getApiAccessLogPage(@Valid ApiAccessLogPageReqVO pageVO) {
-        PageResult<ApiAccessLogDO> pageResult = apiAccessLogService.getApiAccessLogPage(pageVO);
-        return success(ApiAccessLogConvert.INSTANCE.convertPage(pageResult));
+    public CommonResult<PageResult<ApiAccessLogRespVO>> getApiAccessLogPage(@Valid ApiAccessLogPageReqVO pageReqVO) {
+        PageResult<ApiAccessLogDO> pageResult = apiAccessLogService.getApiAccessLogPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, ApiAccessLogRespVO.class));
     }
 
     @GetMapping("/export-excel")
     @Operation(summary = "导出API 访问日志 Excel")
     @PreAuthorize("@ss.hasPermission('infra:api-access-log:export')")
     @OperateLog(type = EXPORT)
-    public void exportApiAccessLogExcel(@Valid ApiAccessLogExportReqVO exportReqVO,
+    public void exportApiAccessLogExcel(@Valid ApiAccessLogPageReqVO exportReqVO,
                                         HttpServletResponse response) throws IOException {
-        List<ApiAccessLogDO> list = apiAccessLogService.getApiAccessLogList(exportReqVO);
+        exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<ApiAccessLogDO> list = apiAccessLogService.getApiAccessLogPage(exportReqVO).getList();
         // 导出 Excel
-        List<ApiAccessLogExcelVO> datas = ApiAccessLogConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "API 访问日志.xls", "数据", ApiAccessLogExcelVO.class, datas);
+        ExcelUtils.write(response, "API 访问日志.xls", "数据", ApiAccessLogRespVO.class,
+                BeanUtils.toBean(list, ApiAccessLogRespVO.class));
     }
 
 }

+ 12 - 12
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/ApiErrorLogController.java

@@ -1,20 +1,19 @@
 package cn.iocoder.yudao.module.infra.controller.admin.logger;
 
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExcelVO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogRespVO;
-import cn.iocoder.yudao.module.infra.convert.logger.ApiErrorLogConvert;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
 import cn.iocoder.yudao.module.infra.service.logger.ApiErrorLogService;
-import io.swagger.v3.oas.annotations.tags.Tag;
+import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Parameters;
-import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.tags.Tag;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -54,21 +53,22 @@ public class ApiErrorLogController {
     @GetMapping("/page")
     @Operation(summary = "获得 API 错误日志分页")
     @PreAuthorize("@ss.hasPermission('infra:api-error-log:query')")
-    public CommonResult<PageResult<ApiErrorLogRespVO>> getApiErrorLogPage(@Valid ApiErrorLogPageReqVO pageVO) {
-        PageResult<ApiErrorLogDO> pageResult = apiErrorLogService.getApiErrorLogPage(pageVO);
-        return success(ApiErrorLogConvert.INSTANCE.convertPage(pageResult));
+    public CommonResult<PageResult<ApiErrorLogRespVO>> getApiErrorLogPage(@Valid ApiErrorLogPageReqVO pageReqVO) {
+        PageResult<ApiErrorLogDO> pageResult = apiErrorLogService.getApiErrorLogPage(pageReqVO);
+        return success(BeanUtils.toBean(pageResult, ApiErrorLogRespVO.class));
     }
 
     @GetMapping("/export-excel")
     @Operation(summary = "导出 API 错误日志 Excel")
     @PreAuthorize("@ss.hasPermission('infra:api-error-log:export')")
     @OperateLog(type = EXPORT)
-    public void exportApiErrorLogExcel(@Valid ApiErrorLogExportReqVO exportReqVO,
+    public void exportApiErrorLogExcel(@Valid ApiErrorLogPageReqVO exportReqVO,
               HttpServletResponse response) throws IOException {
-        List<ApiErrorLogDO> list = apiErrorLogService.getApiErrorLogList(exportReqVO);
+        exportReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
+        List<ApiErrorLogDO> list = apiErrorLogService.getApiErrorLogPage(exportReqVO).getList();
         // 导出 Excel
-        List<ApiErrorLogExcelVO> datas = ApiErrorLogConvert.INSTANCE.convertList02(list);
-        ExcelUtils.write(response, "API 错误日志.xls", "数据", ApiErrorLogExcelVO.class, datas);
+        ExcelUtils.write(response, "API 错误日志.xls", "数据", ApiErrorLogRespVO.class,
+                BeanUtils.toBean(list, ApiErrorLogRespVO.class));
     }
 
 }

+ 0 - 75
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogBaseVO.java

@@ -1,75 +0,0 @@
-package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-/**
-* API 访问日志 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class ApiAccessLogBaseVO {
-
-    @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002")
-    @NotNull(message = "链路追踪编号不能为空")
-    private String traceId;
-
-    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666")
-    @NotNull(message = "用户编号不能为空")
-    private Long userId;
-
-    @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
-    @NotNull(message = "用户类型不能为空")
-    private Integer userType;
-
-    @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard")
-    @NotNull(message = "应用名不能为空")
-    private String applicationName;
-
-    @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET")
-    @NotNull(message = "请求方法名不能为空")
-    private String requestMethod;
-
-    @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xxx/yyy")
-    @NotNull(message = "请求地址不能为空")
-    private String requestUrl;
-
-    @Schema(description = "请求参数")
-    private String requestParams;
-
-    @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1")
-    @NotNull(message = "用户 IP不能为空")
-    private String userIp;
-
-    @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0")
-    @NotNull(message = "浏览器 UA不能为空")
-    private String userAgent;
-
-    @Schema(description = "开始请求时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "开始请求时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime beginTime;
-
-    @Schema(description = "结束请求时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "结束请求时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime endTime;
-
-    @Schema(description = "执行时长", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
-    @NotNull(message = "执行时长不能为空")
-    private Integer duration;
-
-    @Schema(description = "结果码", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
-    @NotNull(message = "结果码不能为空")
-    private Integer resultCode;
-
-    @Schema(description = "结果提示", example = "芋道源码,牛逼!")
-    private String resultMsg;
-
-}

+ 0 - 65
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExcelVO.java

@@ -1,65 +0,0 @@
-package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * API 访问日志 Excel VO
- *
- * @author 芋道源码
- */
-@Data
-public class ApiAccessLogExcelVO {
-
-    @ExcelProperty("日志主键")
-    private Long id;
-
-    @ExcelProperty("链路追踪编号")
-    private String traceId;
-
-    @ExcelProperty("用户编号")
-    private Long userId;
-
-    @ExcelProperty(value = "用户类型", converter = DictConvert.class)
-    @DictFormat(DictTypeConstants.USER_TYPE)
-    private Integer userType;
-
-    @ExcelProperty("应用名")
-    private String applicationName;
-
-    @ExcelProperty("请求方法名")
-    private String requestMethod;
-
-    @ExcelProperty("请求地址")
-    private String requestUrl;
-
-    @ExcelProperty("请求参数")
-    private String requestParams;
-
-    @ExcelProperty("用户 IP")
-    private String userIp;
-
-    @ExcelProperty("浏览器 UA")
-    private String userAgent;
-
-    @ExcelProperty("开始请求时间")
-    private LocalDateTime beginTime;
-
-    @ExcelProperty("结束请求时间")
-    private LocalDateTime endTime;
-
-    @ExcelProperty("执行时长")
-    private Integer duration;
-
-    @ExcelProperty("结果码")
-    private Integer resultCode;
-
-    @ExcelProperty("结果提示")
-    private String resultMsg;
-
-}

+ 0 - 37
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogExportReqVO.java

@@ -1,37 +0,0 @@
-package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@Schema(description = "管理后台 - API 访问日志 Excel 导出 Request VO,参数和 ApiAccessLogPageReqVO 是一致的")
-@Data
-public class ApiAccessLogExportReqVO {
-
-    @Schema(description = "用户编号", example = "666")
-    private Long userId;
-
-    @Schema(description = "用户类型", example = "2")
-    private Integer userType;
-
-    @Schema(description = "应用名", example = "dashboard")
-    private String applicationName;
-
-    @Schema(description = "请求地址,模糊匹配", example = "/xxx/yyy")
-    private String requestUrl;
-
-    @Schema(description = "开始时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] beginTime;
-
-    @Schema(description = "执行时长,大于等于,单位:毫秒", example = "100")
-    private Integer duration;
-
-    @Schema(description = "结果码", example = "0")
-    private Integer resultCode;
-
-}

+ 65 - 5
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apiaccesslog/ApiAccessLogRespVO.java

@@ -1,21 +1,81 @@
 package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog;
 
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
+import cn.iocoder.yudao.module.system.enums.DictTypeConstants;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
 
 import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - API 访问日志 Response VO")
 @Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class ApiAccessLogRespVO extends ApiAccessLogBaseVO {
+@ExcelIgnoreUnannotated
+public class ApiAccessLogRespVO {
 
     @Schema(description = "日志主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @ExcelProperty("日志主键")
     private Long id;
 
+    @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002")
+    @ExcelProperty("链路追踪编号")
+    private String traceId;
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666")
+    @ExcelProperty("用户编号")
+    private Long userId;
+
+    @Schema(description = "用户类型,参见 UserTypeEnum 枚举", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
+    @ExcelProperty(value = "用户类型", converter = DictConvert.class)
+    @DictFormat(DictTypeConstants.USER_TYPE)
+    private Integer userType;
+
+    @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard")
+    @ExcelProperty("应用名")
+    private String applicationName;
+
+    @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET")
+    @ExcelProperty("请求方法名")
+    private String requestMethod;
+
+    @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xxx/yyy")
+    @ExcelProperty("请求地址")
+    private String requestUrl;
+
+    @Schema(description = "请求参数")
+    @ExcelProperty("请求参数")
+    private String requestParams;
+
+    @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1")
+    @ExcelProperty("用户 IP")
+    private String userIp;
+
+    @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0")
+    @ExcelProperty("浏览器 UA")
+    private String userAgent;
+
+    @Schema(description = "开始请求时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("开始请求时间")
+    private LocalDateTime beginTime;
+
+    @Schema(description = "结束请求时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("结束请求时间")
+    private LocalDateTime endTime;
+
+    @Schema(description = "执行时长", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
+    @ExcelProperty("执行时长")
+    private Integer duration;
+
+    @Schema(description = "结果码", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
+    @ExcelProperty("结果码")
+    private Integer resultCode;
+
+    @Schema(description = "结果提示", example = "芋道源码,牛逼!")
+    @ExcelProperty("结果提示")
+    private String resultMsg;
+
     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
     private LocalDateTime createTime;
 

+ 0 - 95
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogBaseVO.java

@@ -1,95 +0,0 @@
-package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import javax.validation.constraints.NotNull;
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-/**
-* API 错误日志 Base VO,提供给添加、修改、详细的子 VO 使用
-* 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成
-*/
-@Data
-public class ApiErrorLogBaseVO {
-
-    @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002")
-    @NotNull(message = "链路追踪编号不能为空")
-    private String traceId;
-
-    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666")
-    @NotNull(message = "用户编号不能为空")
-    private Integer userId;
-
-    @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
-    @NotNull(message = "用户类型不能为空")
-    private Integer userType;
-
-    @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard")
-    @NotNull(message = "应用名不能为空")
-    private String applicationName;
-
-    @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET")
-    @NotNull(message = "请求方法名不能为空")
-    private String requestMethod;
-
-    @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xx/yy")
-    @NotNull(message = "请求地址不能为空")
-    private String requestUrl;
-
-    @Schema(description = "请求参数", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "请求参数不能为空")
-    private String requestParams;
-
-    @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1")
-    @NotNull(message = "用户 IP不能为空")
-    private String userIp;
-
-    @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0")
-    @NotNull(message = "浏览器 UA不能为空")
-    private String userAgent;
-
-    @Schema(description = "异常发生时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常发生时间不能为空")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime exceptionTime;
-
-    @Schema(description = "异常名", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常名不能为空")
-    private String exceptionName;
-
-    @Schema(description = "异常导致的消息", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常导致的消息不能为空")
-    private String exceptionMessage;
-
-    @Schema(description = "异常导致的根消息", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常导致的根消息不能为空")
-    private String exceptionRootCauseMessage;
-
-    @Schema(description = "异常的栈轨迹", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常的栈轨迹不能为空")
-    private String exceptionStackTrace;
-
-    @Schema(description = "异常发生的类全名", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常发生的类全名不能为空")
-    private String exceptionClassName;
-
-    @Schema(description = "异常发生的类文件", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常发生的类文件不能为空")
-    private String exceptionFileName;
-
-    @Schema(description = "异常发生的方法名", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常发生的方法名不能为空")
-    private String exceptionMethodName;
-
-    @Schema(description = "异常发生的方法所在行", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotNull(message = "异常发生的方法所在行不能为空")
-    private Integer exceptionLineNumber;
-
-    @Schema(description = "处理状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
-    @NotNull(message = "处理状态不能为空")
-    private Integer processStatus;
-
-}

+ 0 - 90
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExcelVO.java

@@ -1,90 +0,0 @@
-package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog;
-
-import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
-import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
-import cn.iocoder.yudao.module.infra.enums.DictTypeConstants;
-import com.alibaba.excel.annotation.ExcelProperty;
-import lombok.Data;
-
-import java.time.LocalDateTime;
-
-/**
- * API 错误日志 Excel VO
- *
- * @author 芋道源码
- */
-@Data
-public class ApiErrorLogExcelVO {
-
-    @ExcelProperty("编号")
-    private Integer id;
-
-    @ExcelProperty("链路追踪编号")
-    private String traceId;
-
-    @ExcelProperty("用户编号")
-    private Integer userId;
-
-    @ExcelProperty(value = "用户类型", converter = DictConvert.class)
-    @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.USER_TYPE)
-    private Integer userType;
-
-    @ExcelProperty("应用名")
-    private String applicationName;
-
-    @ExcelProperty("请求方法名")
-    private String requestMethod;
-
-    @ExcelProperty("请求地址")
-    private String requestUrl;
-
-    @ExcelProperty("请求参数")
-    private String requestParams;
-
-    @ExcelProperty("用户 IP")
-    private String userIp;
-
-    @ExcelProperty("浏览器 UA")
-    private String userAgent;
-
-    @ExcelProperty("异常发生时间")
-    private LocalDateTime exceptionTime;
-
-    @ExcelProperty("异常名")
-    private String exceptionName;
-
-    @ExcelProperty("异常导致的消息")
-    private String exceptionMessage;
-
-    @ExcelProperty("异常导致的根消息")
-    private String exceptionRootCauseMessage;
-
-    @ExcelProperty("异常的栈轨迹")
-    private String exceptionStackTrace;
-
-    @ExcelProperty("异常发生的类全名")
-    private String exceptionClassName;
-
-    @ExcelProperty("异常发生的类文件")
-    private String exceptionFileName;
-
-    @ExcelProperty("异常发生的方法名")
-    private String exceptionMethodName;
-
-    @ExcelProperty("异常发生的方法所在行")
-    private Integer exceptionLineNumber;
-
-    @ExcelProperty("创建时间")
-    private LocalDateTime createTime;
-
-    @ExcelProperty(value = "处理状态", converter = DictConvert.class)
-    @DictFormat(DictTypeConstants.API_ERROR_LOG_PROCESS_STATUS)
-    private Integer processStatus;
-
-    @ExcelProperty("处理时间")
-    private LocalDateTime processTime;
-
-    @ExcelProperty("处理用户编号")
-    private Integer processUserId;
-
-}

+ 0 - 34
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogExportReqVO.java

@@ -1,34 +0,0 @@
-package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.Data;
-import org.springframework.format.annotation.DateTimeFormat;
-
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@Schema(description = "管理后台 - API 错误日志 Excel 导出 Request VO,参数和 ApiErrorLogPageReqVO 是一致的")
-@Data
-public class ApiErrorLogExportReqVO {
-
-    @Schema(description = "用户编号", example = "666")
-    private Long userId;
-
-    @Schema(description = "用户类型", example = "1")
-    private Integer userType;
-
-    @Schema(description = "应用名", example = "dashboard")
-    private String applicationName;
-
-    @Schema(description = "请求地址", example = "/xx/yy")
-    private String requestUrl;
-
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    @Schema(description = "异常发生时间")
-    private LocalDateTime[] exceptionTime;
-
-    @Schema(description = "处理状态", example = "0")
-    private Integer processStatus;
-
-}

+ 91 - 7
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/controller/admin/logger/vo/apierrorlog/ApiErrorLogRespVO.java

@@ -1,28 +1,112 @@
 package cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog;
 
+import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
+import cn.iocoder.yudao.framework.excel.core.convert.DictConvert;
+import cn.iocoder.yudao.module.infra.enums.DictTypeConstants;
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
-import lombok.EqualsAndHashCode;
-import lombok.ToString;
 
 import java.time.LocalDateTime;
 
 @Schema(description = "管理后台 - API 错误日志 Response VO")
 @Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class ApiErrorLogRespVO extends ApiErrorLogBaseVO {
+@ExcelIgnoreUnannotated
+public class ApiErrorLogRespVO {
 
     @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1024")
+    @ExcelProperty("编号")
     private Integer id;
 
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    private LocalDateTime createTime;
+    @Schema(description = "链路追踪编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "66600cb6-7852-11eb-9439-0242ac130002")
+    @ExcelProperty("链路追踪编号")
+    private String traceId;
+
+    @Schema(description = "用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "666")
+    @ExcelProperty("用户编号")
+    private Integer userId;
+
+    @Schema(description = "用户类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
+    @ExcelProperty(value = "用户类型", converter = DictConvert.class)
+    @DictFormat(cn.iocoder.yudao.module.system.enums.DictTypeConstants.USER_TYPE)
+    private Integer userType;
+
+    @Schema(description = "应用名", requiredMode = Schema.RequiredMode.REQUIRED, example = "dashboard")
+    @ExcelProperty("应用名")
+    private String applicationName;
+
+    @Schema(description = "请求方法名", requiredMode = Schema.RequiredMode.REQUIRED, example = "GET")
+    @ExcelProperty("请求方法名")
+    private String requestMethod;
+
+    @Schema(description = "请求地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "/xx/yy")
+    @ExcelProperty("请求地址")
+    private String requestUrl;
+
+    @Schema(description = "请求参数", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("请求参数")
+    private String requestParams;
+
+    @Schema(description = "用户 IP", requiredMode = Schema.RequiredMode.REQUIRED, example = "127.0.0.1")
+    @ExcelProperty("用户 IP")
+    private String userIp;
+
+    @Schema(description = "浏览器 UA", requiredMode = Schema.RequiredMode.REQUIRED, example = "Mozilla/5.0")
+    @ExcelProperty("浏览器 UA")
+    private String userAgent;
+
+    @Schema(description = "异常发生时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常发生时间")
+    private LocalDateTime exceptionTime;
+
+    @Schema(description = "异常名", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常名")
+    private String exceptionName;
+
+    @Schema(description = "异常导致的消息", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常导致的消息")
+    private String exceptionMessage;
+
+    @Schema(description = "异常导致的根消息", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常导致的根消息")
+    private String exceptionRootCauseMessage;
+
+    @Schema(description = "异常的栈轨迹", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常的栈轨迹")
+    private String exceptionStackTrace;
+
+    @Schema(description = "异常发生的类全名", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常发生的类全名")
+    private String exceptionClassName;
+
+    @Schema(description = "异常发生的类文件", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常发生的类文件")
+    private String exceptionFileName;
+
+    @Schema(description = "异常发生的方法名", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常发生的方法名")
+    private String exceptionMethodName;
+
+    @Schema(description = "异常发生的方法所在行", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("异常发生的方法所在行")
+    private Integer exceptionLineNumber;
+
+    @Schema(description = "处理状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
+    @ExcelProperty(value = "处理状态", converter = DictConvert.class)
+    @DictFormat(DictTypeConstants.API_ERROR_LOG_PROCESS_STATUS)
+    private Integer processStatus;
 
     @Schema(description = "处理时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("处理时间")
     private LocalDateTime processTime;
 
     @Schema(description = "处理用户编号", example = "233")
+    @ExcelProperty("处理用户编号")
     private Integer processUserId;
 
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
 }

+ 0 - 33
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/logger/ApiAccessLogConvert.java

@@ -1,33 +0,0 @@
-package cn.iocoder.yudao.module.infra.convert.logger;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExcelVO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogRespVO;
-import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * API 访问日志 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface ApiAccessLogConvert {
-
-    ApiAccessLogConvert INSTANCE = Mappers.getMapper(ApiAccessLogConvert.class);
-
-    ApiAccessLogRespVO convert(ApiAccessLogDO bean);
-
-    List<ApiAccessLogRespVO> convertList(List<ApiAccessLogDO> list);
-
-    PageResult<ApiAccessLogRespVO> convertPage(PageResult<ApiAccessLogDO> page);
-
-    List<ApiAccessLogExcelVO> convertList02(List<ApiAccessLogDO> list);
-
-    ApiAccessLogDO convert(ApiAccessLogCreateReqDTO bean);
-
-}

+ 0 - 31
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/convert/logger/ApiErrorLogConvert.java

@@ -1,31 +0,0 @@
-package cn.iocoder.yudao.module.infra.convert.logger;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExcelVO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogRespVO;
-import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
-import org.mapstruct.Mapper;
-import org.mapstruct.factory.Mappers;
-
-import java.util.List;
-
-/**
- * API 错误日志 Convert
- *
- * @author 芋道源码
- */
-@Mapper
-public interface ApiErrorLogConvert {
-
-    ApiErrorLogConvert INSTANCE = Mappers.getMapper(ApiErrorLogConvert.class);
-
-    ApiErrorLogRespVO convert(ApiErrorLogDO bean);
-
-    PageResult<ApiErrorLogRespVO> convertPage(PageResult<ApiErrorLogDO> page);
-
-    List<ApiErrorLogExcelVO> convertList02(List<ApiErrorLogDO> list);
-
-    ApiErrorLogDO convert(ApiErrorLogCreateReqDTO bean);
-
-}

+ 0 - 15
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiAccessLogMapper.java

@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.infra.dal.mysql.logger;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 import org.apache.ibatis.annotations.Delete;
@@ -11,7 +10,6 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDateTime;
-import java.util.List;
 
 /**
  * API 访问日志 Mapper
@@ -34,19 +32,6 @@ public interface ApiAccessLogMapper extends BaseMapperX<ApiAccessLogDO> {
         );
     }
 
-    default List<ApiAccessLogDO> selectList(ApiAccessLogExportReqVO reqVO) {
-        return selectList(new LambdaQueryWrapperX<ApiAccessLogDO>()
-                .eqIfPresent(ApiAccessLogDO::getUserId, reqVO.getUserId())
-                .eqIfPresent(ApiAccessLogDO::getUserType, reqVO.getUserType())
-                .eqIfPresent(ApiAccessLogDO::getApplicationName, reqVO.getApplicationName())
-                .likeIfPresent(ApiAccessLogDO::getRequestUrl, reqVO.getRequestUrl())
-                .betweenIfPresent(ApiAccessLogDO::getBeginTime, reqVO.getBeginTime())
-                .geIfPresent(ApiAccessLogDO::getDuration, reqVO.getDuration())
-                .eqIfPresent(ApiAccessLogDO::getResultCode, reqVO.getResultCode())
-                .orderByDesc(ApiAccessLogDO::getId)
-        );
-    }
-
     /**
      * 物理删除指定时间之前的日志
      *

+ 0 - 14
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/logger/ApiErrorLogMapper.java

@@ -3,7 +3,6 @@ package cn.iocoder.yudao.module.infra.dal.mysql.logger;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
 import org.apache.ibatis.annotations.Delete;
@@ -11,7 +10,6 @@ import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
 import java.time.LocalDateTime;
-import java.util.List;
 
 /**
  * API 错误日志 Mapper
@@ -33,18 +31,6 @@ public interface ApiErrorLogMapper extends BaseMapperX<ApiErrorLogDO> {
         );
     }
 
-    default List<ApiErrorLogDO> selectList(ApiErrorLogExportReqVO reqVO) {
-        return selectList(new LambdaQueryWrapperX<ApiErrorLogDO>()
-                .eqIfPresent(ApiErrorLogDO::getUserId, reqVO.getUserId())
-                .eqIfPresent(ApiErrorLogDO::getUserType, reqVO.getUserType())
-                .eqIfPresent(ApiErrorLogDO::getApplicationName, reqVO.getApplicationName())
-                .likeIfPresent(ApiErrorLogDO::getRequestUrl, reqVO.getRequestUrl())
-                .betweenIfPresent(ApiErrorLogDO::getExceptionTime, reqVO.getExceptionTime())
-                .eqIfPresent(ApiErrorLogDO::getProcessStatus, reqVO.getProcessStatus())
-                .orderByDesc(ApiErrorLogDO::getId)
-        );
-    }
-
     /**
      * 物理删除指定时间之前的日志
      *

+ 0 - 11
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogService.java

@@ -2,12 +2,9 @@ package cn.iocoder.yudao.module.infra.service.logger;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 
-import java.util.List;
-
 /**
  * API 访问日志 Service 接口
  *
@@ -30,14 +27,6 @@ public interface ApiAccessLogService {
      */
     PageResult<ApiAccessLogDO> getApiAccessLogPage(ApiAccessLogPageReqVO pageReqVO);
 
-    /**
-     * 获得 API 访问日志列表, 用于 Excel 导出
-     *
-     * @param exportReqVO 查询条件
-     * @return API 访问日志分页
-     */
-    List<ApiAccessLogDO> getApiAccessLogList(ApiAccessLogExportReqVO exportReqVO);
-
     /**
      * 清理 exceedDay 天前的访问日志
      *

+ 2 - 9
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImpl.java

@@ -1,10 +1,9 @@
 package cn.iocoder.yudao.module.infra.service.logger;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
-import cn.iocoder.yudao.module.infra.convert.logger.ApiAccessLogConvert;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper;
 import lombok.extern.slf4j.Slf4j;
@@ -13,7 +12,6 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.List;
 
 /**
  * API 访问日志 Service 实现类
@@ -30,7 +28,7 @@ public class ApiAccessLogServiceImpl implements ApiAccessLogService {
 
     @Override
     public void createApiAccessLog(ApiAccessLogCreateReqDTO createDTO) {
-        ApiAccessLogDO apiAccessLog = ApiAccessLogConvert.INSTANCE.convert(createDTO);
+        ApiAccessLogDO apiAccessLog = BeanUtils.toBean(createDTO, ApiAccessLogDO.class);
         apiAccessLogMapper.insert(apiAccessLog);
     }
 
@@ -39,11 +37,6 @@ public class ApiAccessLogServiceImpl implements ApiAccessLogService {
         return apiAccessLogMapper.selectPage(pageReqVO);
     }
 
-    @Override
-    public List<ApiAccessLogDO> getApiAccessLogList(ApiAccessLogExportReqVO exportReqVO) {
-        return apiAccessLogMapper.selectList(exportReqVO);
-    }
-
     @Override
     @SuppressWarnings("DuplicatedCode")
     public Integer cleanAccessLog(Integer exceedDay, Integer deleteLimit) {

+ 0 - 11
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogService.java

@@ -2,12 +2,9 @@ package cn.iocoder.yudao.module.infra.service.logger;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
 
-import java.util.List;
-
 /**
  * API 错误日志 Service 接口
  *
@@ -30,14 +27,6 @@ public interface ApiErrorLogService {
      */
     PageResult<ApiErrorLogDO> getApiErrorLogPage(ApiErrorLogPageReqVO pageReqVO);
 
-    /**
-     * 获得 API 错误日志列表, 用于 Excel 导出
-     *
-     * @param exportReqVO 查询条件
-     * @return API 错误日志分页
-     */
-    List<ApiErrorLogDO> getApiErrorLogList(ApiErrorLogExportReqVO exportReqVO);
-
     /**
      * 更新 API 错误日志已处理
      *

+ 3 - 11
yudao-module-infra/yudao-module-infra-biz/src/main/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImpl.java

@@ -1,10 +1,9 @@
 package cn.iocoder.yudao.module.infra.service.logger;
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
-import cn.iocoder.yudao.module.infra.convert.logger.ApiErrorLogConvert;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper;
 import cn.iocoder.yudao.module.infra.enums.logger.ApiErrorLogProcessStatusEnum;
@@ -14,11 +13,9 @@ import org.springframework.validation.annotation.Validated;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
-import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_NOT_FOUND;
-import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.API_ERROR_LOG_PROCESSED;
+import static cn.iocoder.yudao.module.infra.enums.ErrorCodeConstants.*;
 
 /**
  * API 错误日志 Service 实现类
@@ -35,7 +32,7 @@ public class ApiErrorLogServiceImpl implements ApiErrorLogService {
 
     @Override
     public void createApiErrorLog(ApiErrorLogCreateReqDTO createDTO) {
-        ApiErrorLogDO apiErrorLog = ApiErrorLogConvert.INSTANCE.convert(createDTO)
+        ApiErrorLogDO apiErrorLog = BeanUtils.toBean(createDTO, ApiErrorLogDO.class)
                 .setProcessStatus(ApiErrorLogProcessStatusEnum.INIT.getStatus());
         apiErrorLogMapper.insert(apiErrorLog);
     }
@@ -45,11 +42,6 @@ public class ApiErrorLogServiceImpl implements ApiErrorLogService {
         return apiErrorLogMapper.selectPage(pageReqVO);
     }
 
-    @Override
-    public List<ApiErrorLogDO> getApiErrorLogList(ApiErrorLogExportReqVO exportReqVO) {
-        return apiErrorLogMapper.selectList(exportReqVO);
-    }
-
     @Override
     public void updateApiErrorLogProcess(Long id, Integer processStatus, Long processUserId) {
         ApiErrorLogDO errorLog = apiErrorLogMapper.selectById(id);

+ 0 - 45
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiAccessLogServiceImplTest.java

@@ -5,7 +5,6 @@ import cn.iocoder.yudao.framework.common.exception.enums.GlobalErrorCodeConstant
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
 import cn.iocoder.yudao.module.infra.api.logger.dto.ApiAccessLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apiaccesslog.ApiAccessLogPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiAccessLogDO;
 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiAccessLogMapper;
@@ -13,7 +12,6 @@ import org.junit.jupiter.api.Test;
 import org.springframework.context.annotation.Import;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildTime;
@@ -75,49 +73,6 @@ public class ApiAccessLogServiceImplTest extends BaseDbUnitTest {
         assertPojoEquals(apiAccessLogDO, pageResult.getList().get(0));
     }
 
-    @Test
-    public void testGetApiAccessLogList() {
-        ApiAccessLogDO apiAccessLogDO = randomPojo(ApiAccessLogDO.class, o -> {
-            o.setUserId(2233L);
-            o.setUserType(UserTypeEnum.ADMIN.getValue());
-            o.setApplicationName("yudao-test");
-            o.setRequestUrl("foo");
-            o.setBeginTime(buildTime(2021, 3, 13));
-            o.setDuration(1000);
-            o.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode());
-        });
-        apiAccessLogMapper.insert(apiAccessLogDO);
-        // 测试 userId 不匹配
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setUserId(3344L)));
-        // 测试 userType 不匹配
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setUserType(UserTypeEnum.MEMBER.getValue())));
-        // 测试 applicationName 不匹配
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setApplicationName("test")));
-        // 测试 requestUrl 不匹配
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setRequestUrl("bar")));
-        // 测试 beginTime 不匹配:构造一个早期时间 2021-02-06 00:00:00
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setBeginTime(buildTime(2021, 2, 6))));
-        // 测试 duration 不匹配
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setDuration(100)));
-        // 测试 resultCode 不匹配
-        apiAccessLogMapper.insert(cloneIgnoreId(apiAccessLogDO, o -> o.setResultCode(2)));
-        // 准备参数
-        ApiAccessLogExportReqVO reqVO = new ApiAccessLogExportReqVO();
-        reqVO.setUserId(2233L);
-        reqVO.setUserType(UserTypeEnum.ADMIN.getValue());
-        reqVO.setApplicationName("yudao-test");
-        reqVO.setRequestUrl("foo");
-        reqVO.setBeginTime(buildBetweenTime(2021, 3, 13, 2021, 3, 13));
-        reqVO.setDuration(1000);
-        reqVO.setResultCode(GlobalErrorCodeConstants.SUCCESS.getCode());
-
-        // 调用
-        List<ApiAccessLogDO> list = apiAccessLogService.getApiAccessLogList(reqVO);
-        // 断言,只查到了一条符合条件的
-        assertEquals(1, list.size());
-        assertPojoEquals(apiAccessLogDO, list.get(0));
-    }
-
     @Test
     public void testCreateApiAccessLog() {
         // 准备参数

+ 0 - 42
yudao-module-infra/yudao-module-infra-biz/src/test/java/cn/iocoder/yudao/module/infra/service/logger/ApiErrorLogServiceImplTest.java

@@ -4,7 +4,6 @@ import cn.iocoder.yudao.framework.common.enums.UserTypeEnum;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
 import cn.iocoder.yudao.module.infra.api.logger.dto.ApiErrorLogCreateReqDTO;
-import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogExportReqVO;
 import cn.iocoder.yudao.module.infra.controller.admin.logger.vo.apierrorlog.ApiErrorLogPageReqVO;
 import cn.iocoder.yudao.module.infra.dal.dataobject.logger.ApiErrorLogDO;
 import cn.iocoder.yudao.module.infra.dal.mysql.logger.ApiErrorLogMapper;
@@ -13,7 +12,6 @@ import org.junit.jupiter.api.Test;
 import org.springframework.context.annotation.Import;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 import static cn.hutool.core.util.RandomUtil.randomEle;
 import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.buildBetweenTime;
@@ -78,46 +76,6 @@ public class ApiErrorLogServiceImplTest extends BaseDbUnitTest {
         assertPojoEquals(apiErrorLogDO, pageResult.getList().get(0));
     }
 
-    @Test
-    public void testGetApiErrorLogList() {
-        // mock 数据
-        ApiErrorLogDO apiErrorLogDO = randomPojo(ApiErrorLogDO.class, o -> {
-            o.setUserId(2233L);
-            o.setUserType(UserTypeEnum.ADMIN.getValue());
-            o.setApplicationName("yudao-test");
-            o.setRequestUrl("foo");
-            o.setExceptionTime(buildTime(2021, 3, 13));
-            o.setProcessStatus(ApiErrorLogProcessStatusEnum.INIT.getStatus());
-        });
-        apiErrorLogMapper.insert(apiErrorLogDO);
-        // 测试 userId 不匹配
-        apiErrorLogMapper.insert(cloneIgnoreId(apiErrorLogDO, o -> o.setUserId(3344L)));
-        // 测试 userType 不匹配
-        apiErrorLogMapper.insert(cloneIgnoreId(apiErrorLogDO, logDO -> logDO.setUserType(UserTypeEnum.MEMBER.getValue())));
-        // 测试 applicationName 不匹配
-        apiErrorLogMapper.insert(cloneIgnoreId(apiErrorLogDO, logDO -> logDO.setApplicationName("test")));
-        // 测试 requestUrl 不匹配
-        apiErrorLogMapper.insert(cloneIgnoreId(apiErrorLogDO, logDO -> logDO.setRequestUrl("bar")));
-        // 测试 exceptionTime 不匹配:构造一个早期时间 2021-02-06 00:00:00
-        apiErrorLogMapper.insert(cloneIgnoreId(apiErrorLogDO, logDO -> logDO.setExceptionTime(buildTime(2021, 2, 6))));
-        // 测试 progressStatus 不匹配
-        apiErrorLogMapper.insert(cloneIgnoreId(apiErrorLogDO, logDO -> logDO.setProcessStatus(ApiErrorLogProcessStatusEnum.DONE.getStatus())));
-        // 准备参数
-        ApiErrorLogExportReqVO reqVO = new ApiErrorLogExportReqVO();
-        reqVO.setUserId(2233L);
-        reqVO.setUserType(UserTypeEnum.ADMIN.getValue());
-        reqVO.setApplicationName("yudao-test");
-        reqVO.setRequestUrl("foo");
-        reqVO.setExceptionTime(buildBetweenTime(2021, 3, 1, 2021, 3, 31));
-        reqVO.setProcessStatus(ApiErrorLogProcessStatusEnum.INIT.getStatus());
-
-        // 调用
-        List<ApiErrorLogDO> list = apiErrorLogService.getApiErrorLogList(reqVO);
-        // 断言,只查到了一条符合条件的
-        assertEquals(1, list.size());
-        assertPojoEquals(apiErrorLogDO, list.get(0));
-    }
-
     @Test
     public void testCreateApiErrorLog() {
         // 准备参数