From b592fff7a01078532fd03e70185f6ae7eb399636 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Mon, 2 Feb 2026 15:39:04 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProductLineController.java | 1 - .../operation/annotation/OperationLog.java | 2 + .../operation/aop/OperationLogAspect.java | 1 + .../OperationLogApplicationServiceImpl.java | 15 ++++++ .../impl/OperationLogApplicationService.java | 9 ++++ .../controller/OperationLogController.java | 25 ++++++++++ .../operation/domain/dto/OperationLogDTO.java | 2 + .../domain/entity/OperationLogEntity.java | 3 ++ .../domain/param/OperationLogParam.java | 21 +++++++++ .../SearchOperationLogDomainService.java | 12 +++++ .../SearchOperationLogDomainServiceImpl.java | 47 +++++++++++++++++++ .../domain/enums/QuestionUseStatusEnum.java | 2 +- .../task/controller/TaskController.java | 3 ++ 13 files changed, 141 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/project/operation/controller/OperationLogController.java create mode 100644 src/main/java/com/project/operation/domain/param/OperationLogParam.java create mode 100644 src/main/java/com/project/operation/domain/service/SearchOperationLogDomainService.java create mode 100644 src/main/java/com/project/operation/domain/service/impl/SearchOperationLogDomainServiceImpl.java diff --git a/src/main/java/com/project/information/controller/ProductLineController.java b/src/main/java/com/project/information/controller/ProductLineController.java index f8a69e5..2ffead1 100644 --- a/src/main/java/com/project/information/controller/ProductLineController.java +++ b/src/main/java/com/project/information/controller/ProductLineController.java @@ -30,7 +30,6 @@ public class ProductLineController { } @GetMapping("/treeList") - @OperationLog(module = "查询",description = "查询树形产品线") public Result> treeList(ProductLineParam param) throws Exception { return productLineApplicationService.treeList(param); } diff --git a/src/main/java/com/project/operation/annotation/OperationLog.java b/src/main/java/com/project/operation/annotation/OperationLog.java index 365bc1f..cc4a530 100644 --- a/src/main/java/com/project/operation/annotation/OperationLog.java +++ b/src/main/java/com/project/operation/annotation/OperationLog.java @@ -11,6 +11,8 @@ import java.lang.annotation.*; public @interface OperationLog { //操作模块 String module() default ""; + //操作 + String action() default ""; //操作描述 String description() default ""; } diff --git a/src/main/java/com/project/operation/aop/OperationLogAspect.java b/src/main/java/com/project/operation/aop/OperationLogAspect.java index 293675b..942075f 100644 --- a/src/main/java/com/project/operation/aop/OperationLogAspect.java +++ b/src/main/java/com/project/operation/aop/OperationLogAspect.java @@ -73,6 +73,7 @@ public class OperationLogAspect { //获取操作信息 OperationLog annotation = method.getAnnotation(OperationLog.class); operationLogDTO.setModule(annotation.module()); + operationLogDTO.setAction(annotation.action()); operationLogDTO.setDescription(annotation.description()); diff --git a/src/main/java/com/project/operation/application/OperationLogApplicationServiceImpl.java b/src/main/java/com/project/operation/application/OperationLogApplicationServiceImpl.java index 0c4cb67..c4e5529 100644 --- a/src/main/java/com/project/operation/application/OperationLogApplicationServiceImpl.java +++ b/src/main/java/com/project/operation/application/OperationLogApplicationServiceImpl.java @@ -1,17 +1,24 @@ package com.project.operation.application; +import com.project.base.domain.result.Result; import com.project.operation.application.impl.OperationLogApplicationService; import com.project.operation.domain.dto.OperationLogDTO; +import com.project.operation.domain.param.OperationLogParam; import com.project.operation.domain.service.OperationLogBaseService; import com.project.operation.domain.service.SaveOperationLogDomainService; +import com.project.operation.domain.service.SearchOperationLogDomainService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.List; + @Service public class OperationLogApplicationServiceImpl implements OperationLogApplicationService { @Autowired private SaveOperationLogDomainService saveOperationLogDomainService; + @Autowired + private SearchOperationLogDomainService searchOperationLogDomainService; /** * 保存日志 @@ -21,4 +28,12 @@ public class OperationLogApplicationServiceImpl implements OperationLogApplicati saveOperationLogDomainService.saveOperationLog(operationLogDTO); } + /** + * 查询日志 + */ + @Override + public Result> list(OperationLogParam param) { + return searchOperationLogDomainService.list(param); + } + } diff --git a/src/main/java/com/project/operation/application/impl/OperationLogApplicationService.java b/src/main/java/com/project/operation/application/impl/OperationLogApplicationService.java index b7f5724..a91278d 100644 --- a/src/main/java/com/project/operation/application/impl/OperationLogApplicationService.java +++ b/src/main/java/com/project/operation/application/impl/OperationLogApplicationService.java @@ -1,10 +1,19 @@ package com.project.operation.application.impl; +import com.project.base.domain.result.Result; import com.project.operation.domain.dto.OperationLogDTO; +import com.project.operation.domain.param.OperationLogParam; + +import java.util.List; public interface OperationLogApplicationService { /** * 保存操作日志 */ void saveOperationLog(OperationLogDTO operationLogDTO); + + /** + * 查询日志 + */ + Result> list(OperationLogParam param); } diff --git a/src/main/java/com/project/operation/controller/OperationLogController.java b/src/main/java/com/project/operation/controller/OperationLogController.java new file mode 100644 index 0000000..6aecb62 --- /dev/null +++ b/src/main/java/com/project/operation/controller/OperationLogController.java @@ -0,0 +1,25 @@ +package com.project.operation.controller; + +import com.project.base.domain.result.Result; +import com.project.operation.application.impl.OperationLogApplicationService; +import com.project.operation.domain.dto.OperationLogDTO; +import com.project.operation.domain.param.OperationLogParam; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +@RestController +@RequestMapping("/api/admin/operationLog") +public class OperationLogController { + + @Autowired + private OperationLogApplicationService operationLogApplicationService; + + @GetMapping("/list") + public Result> list(OperationLogParam param) throws Exception { + return operationLogApplicationService.list(param); + } +} diff --git a/src/main/java/com/project/operation/domain/dto/OperationLogDTO.java b/src/main/java/com/project/operation/domain/dto/OperationLogDTO.java index d0c9b68..07ef702 100644 --- a/src/main/java/com/project/operation/domain/dto/OperationLogDTO.java +++ b/src/main/java/com/project/operation/domain/dto/OperationLogDTO.java @@ -15,6 +15,8 @@ public class OperationLogDTO extends BaseDTO { private String module; + private String action; + private String description; private Integer result; diff --git a/src/main/java/com/project/operation/domain/entity/OperationLogEntity.java b/src/main/java/com/project/operation/domain/entity/OperationLogEntity.java index 830483d..406ba8e 100644 --- a/src/main/java/com/project/operation/domain/entity/OperationLogEntity.java +++ b/src/main/java/com/project/operation/domain/entity/OperationLogEntity.java @@ -23,6 +23,9 @@ public class OperationLogEntity extends BaseEntity { @Column(name = "module", columnDefinition = "varchar(255) comment '操作模块'") private String module; + @Column(name = "action", columnDefinition = "varchar(255) comment '操作'") + private String action; + @Column(name = "description" , columnDefinition="varchar(255) comment '操作描述'") private String description; diff --git a/src/main/java/com/project/operation/domain/param/OperationLogParam.java b/src/main/java/com/project/operation/domain/param/OperationLogParam.java new file mode 100644 index 0000000..d480888 --- /dev/null +++ b/src/main/java/com/project/operation/domain/param/OperationLogParam.java @@ -0,0 +1,21 @@ +package com.project.operation.domain.param; + +import com.project.base.domain.param.BaseParam; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.util.Date; + +@Data +public class OperationLogParam extends BaseParam { + //操作 + public String action; + //详细信息 + public String description; + //开始时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date startTime; + //结束时间 + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + public Date endTime; +} diff --git a/src/main/java/com/project/operation/domain/service/SearchOperationLogDomainService.java b/src/main/java/com/project/operation/domain/service/SearchOperationLogDomainService.java new file mode 100644 index 0000000..b7313e3 --- /dev/null +++ b/src/main/java/com/project/operation/domain/service/SearchOperationLogDomainService.java @@ -0,0 +1,12 @@ +package com.project.operation.domain.service; + +import com.project.base.domain.result.Result; +import com.project.operation.domain.dto.OperationLogDTO; +import com.project.operation.domain.param.OperationLogParam; + +import java.util.List; + +public interface SearchOperationLogDomainService { + + Result> list(OperationLogParam param); +} diff --git a/src/main/java/com/project/operation/domain/service/impl/SearchOperationLogDomainServiceImpl.java b/src/main/java/com/project/operation/domain/service/impl/SearchOperationLogDomainServiceImpl.java new file mode 100644 index 0000000..cf5095b --- /dev/null +++ b/src/main/java/com/project/operation/domain/service/impl/SearchOperationLogDomainServiceImpl.java @@ -0,0 +1,47 @@ +package com.project.operation.domain.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.project.base.domain.result.Result; +import com.project.operation.domain.dto.OperationLogDTO; +import com.project.operation.domain.entity.OperationLogEntity; +import com.project.operation.domain.param.OperationLogParam; +import com.project.operation.domain.service.OperationLogBaseService; +import com.project.operation.domain.service.SearchOperationLogDomainService; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +@Service +public class SearchOperationLogDomainServiceImpl implements SearchOperationLogDomainService { + @Autowired + private OperationLogBaseService operationLogBaseService; + + /** + * 查询日志 + */ + @Override + public Result> list(OperationLogParam param) { + QueryWrapper logQueryWrapper = new QueryWrapper<>(); + + if (StringUtils.isNotBlank(param.getAction())){ + logQueryWrapper.like("action",param.getAction()); + } + if (StringUtils.isNotBlank(param.getDescription())){ + logQueryWrapper.like("description",param.getDescription()); + } + if (param.getStartTime() != null) { + logQueryWrapper.ge("create_time",param.getStartTime()); + } + if (param.getEndTime() != null) { + logQueryWrapper.le("create_time",param.getEndTime()); + } + logQueryWrapper.orderByDesc("create_time"); + List entityList = operationLogBaseService.list(logQueryWrapper); + return Result.success(entityList.stream() + .map(entity -> entity.toDTO(OperationLogDTO::new)) + .collect(Collectors.toList())); + } +} diff --git a/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java b/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java index 36d6c34..21bb3c3 100644 --- a/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java +++ b/src/main/java/com/project/question/domain/enums/QuestionUseStatusEnum.java @@ -6,7 +6,7 @@ import lombok.RequiredArgsConstructor; @RequiredArgsConstructor @Getter -public enum QuestionUseStatusEnum implements HasValueEnum { +public enum QuestionUseStatusEnum implements HasValueEnum { Not_Use(Boolean.FALSE) , Used(Boolean.TRUE); private final Boolean value; diff --git a/src/main/java/com/project/task/controller/TaskController.java b/src/main/java/com/project/task/controller/TaskController.java index 35715ea..fbfad7c 100644 --- a/src/main/java/com/project/task/controller/TaskController.java +++ b/src/main/java/com/project/task/controller/TaskController.java @@ -3,6 +3,7 @@ package com.project.task.controller; import com.project.base.domain.result.PageResult; import com.project.base.domain.result.Result; +import com.project.operation.annotation.OperationLog; import com.project.task.application.TaskApplicationService; import com.project.task.domain.dto.TaskDTO; import com.project.task.domain.param.TaskParam; @@ -34,12 +35,14 @@ public class TaskController { } @PostMapping("/saveOrUpdate") + @OperationLog(module = "考试任务") public Result save(TaskDTO dto) throws Exception { return taskApplicationService.saveOrUpdate(dto); } @PostMapping("/batchDelete") + @OperationLog(module = "考试任务") public Result batchDelete(List idList) throws Exception { return taskApplicationService.batchDelete(idList); }