From 911e1e14b7b382e97a30fc71310fb6dd438f9a61 Mon Sep 17 00:00:00 2001 From: luogw <3132758203@qq.com> Date: Wed, 5 Aug 2026 09:05:27 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E5=85=85=E6=97=A5=E5=BF=97=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ClassicCategoryController.java | 3 +++ .../controller/ClassicPaperSetController.java | 2 ++ .../mapper/ClassicPaperSetMapper.java | 8 ++++++ .../controller/InformationController.java | 2 ++ .../operation/aop/OperationLogAspect.java | 2 +- .../operation/domain/enums/ModuleEnum.java | 3 ++- .../description/DataDescriptionStrategy.java | 27 ++++++++++++++++--- 7 files changed, 42 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/project/classicpaper/controller/ClassicCategoryController.java b/src/main/java/com/project/classicpaper/controller/ClassicCategoryController.java index 824b997..b0c0ef0 100644 --- a/src/main/java/com/project/classicpaper/controller/ClassicCategoryController.java +++ b/src/main/java/com/project/classicpaper/controller/ClassicCategoryController.java @@ -3,6 +3,7 @@ package com.project.classicpaper.controller; import com.project.base.domain.result.Result; import com.project.classicpaper.application.ClassicCategoryApplicationService; import com.project.classicpaper.domain.dto.ClassicCategoryDTO; +import com.project.operation.annotation.OperationLog; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -27,6 +28,7 @@ public class ClassicCategoryController { } @PostMapping("/save") + @OperationLog(module = "套题管理", action = "添加") public Result save(ClassicCategoryDTO dto) throws Exception { return classicCategoryApplicationService.save(dto); } @@ -37,6 +39,7 @@ public class ClassicCategoryController { } @PostMapping("/delete") + @OperationLog(module = "套题管理", action = "删除") public Result delete(Long id) throws Exception { return classicCategoryApplicationService.delete(id); } diff --git a/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java b/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java index 2c2251b..0f23097 100644 --- a/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java +++ b/src/main/java/com/project/classicpaper/controller/ClassicPaperSetController.java @@ -22,6 +22,7 @@ public class ClassicPaperSetController { private ClassicPaperSetApplicationService classicPaperSetApplicationService; @PostMapping("/generate") + @OperationLog(module = "套题管理", action = "添加") public Result generate(ClassicPaperSetDTO request) throws Exception { return classicPaperSetApplicationService.generate(request); } @@ -52,6 +53,7 @@ public class ClassicPaperSetController { } @PostMapping("/delete") + @OperationLog(module = "套题管理", action = "删除") public Result delete(String ids) throws Exception { return classicPaperSetApplicationService.delete(ids); } diff --git a/src/main/java/com/project/classicpaper/mapper/ClassicPaperSetMapper.java b/src/main/java/com/project/classicpaper/mapper/ClassicPaperSetMapper.java index bd036d9..efc2b70 100644 --- a/src/main/java/com/project/classicpaper/mapper/ClassicPaperSetMapper.java +++ b/src/main/java/com/project/classicpaper/mapper/ClassicPaperSetMapper.java @@ -6,9 +6,17 @@ import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; +import java.util.List; + @Mapper public interface ClassicPaperSetMapper extends BaseMapper { @Select("SELECT * FROM evaluator_classic_paper_set WHERE id = #{id}") ClassicPaperSetEntity selectByIdIncludeDeleted(@Param("id") Long id); + + @Select({""}) + List selectBatchIdsIncludeDeleted(@Param("list") List idList); } diff --git a/src/main/java/com/project/information/controller/InformationController.java b/src/main/java/com/project/information/controller/InformationController.java index 416355a..2cfabc7 100644 --- a/src/main/java/com/project/information/controller/InformationController.java +++ b/src/main/java/com/project/information/controller/InformationController.java @@ -52,6 +52,7 @@ public class InformationController { } @PostMapping("/batchUploadAndOverwrite") + @OperationLog(module = "资料管理",action = "添加") public Result batchUploadAndOverwrite(MultipartFile[] files, Long subLineId, @RequestParam(required = false, defaultValue = "false") Boolean skipExisting) throws Exception { return informationApplicationService.batchUploadAndOverwrite(files , subLineId, skipExisting); } @@ -83,6 +84,7 @@ public class InformationController { * form-data 参数:subLineId, fileName, fileNames[], filePaths[], fileSuffixes[], contentCategories[] */ @PostMapping("/generateFromFiles") + @OperationLog(module = "资料管理",action = "添加") public Result generateFromFiles(GenerateFromFilesParam param) throws Exception { return generateFromFilesApplicationService.generateFromFiles(param); } diff --git a/src/main/java/com/project/operation/aop/OperationLogAspect.java b/src/main/java/com/project/operation/aop/OperationLogAspect.java index e36f32f..e1726cd 100644 --- a/src/main/java/com/project/operation/aop/OperationLogAspect.java +++ b/src/main/java/com/project/operation/aop/OperationLogAspect.java @@ -123,10 +123,10 @@ public class OperationLogAspect { operationLogDTO.setModule(annotation.module()); ModuleEnum moduleEnum = ModuleEnum.findByValue(annotation.module()); + operationLogDTO.setAction(annotation.action()); if (moduleEnum != null) { descriptionManager.process(moduleEnum.name(), joinPoint.getArgs(), operationLogDTO, method.getName()); } else { - operationLogDTO.setAction(annotation.action()); operationLogDTO.setDescription(annotation.description()); } } diff --git a/src/main/java/com/project/operation/domain/enums/ModuleEnum.java b/src/main/java/com/project/operation/domain/enums/ModuleEnum.java index a20dd15..83581f1 100644 --- a/src/main/java/com/project/operation/domain/enums/ModuleEnum.java +++ b/src/main/java/com/project/operation/domain/enums/ModuleEnum.java @@ -9,7 +9,8 @@ import lombok.RequiredArgsConstructor; public enum ModuleEnum implements HasValueEnum { EXAM_TASK("考试任务"), DATA_MANAGEMENT("资料管理"), - APPEAL_APPROVAL("申诉审批"); + APPEAL_APPROVAL("申诉审批"), + CLASSIC_PAPER("套题管理"); private final String value; diff --git a/src/main/java/com/project/operation/domain/service/impl/description/DataDescriptionStrategy.java b/src/main/java/com/project/operation/domain/service/impl/description/DataDescriptionStrategy.java index e8c8356..4b3a330 100644 --- a/src/main/java/com/project/operation/domain/service/impl/description/DataDescriptionStrategy.java +++ b/src/main/java/com/project/operation/domain/service/impl/description/DataDescriptionStrategy.java @@ -1,8 +1,10 @@ package com.project.operation.domain.service.impl.description; +import cn.hutool.core.util.ObjectUtil; import com.project.information.domain.dto.ProductLineDTO; import com.project.information.domain.entity.InformationEntity; import com.project.information.domain.entity.ProductLineEntity; +import com.project.information.domain.param.GenerateFromFilesParam; import com.project.information.mapper.InformationMapper; import com.project.information.mapper.ProductLineMapper; import com.project.operation.domain.dto.OperationLogDTO; @@ -14,6 +16,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.CollectionUtils; +import org.springframework.web.multipart.MultipartFile; import java.util.Arrays; import java.util.List; @@ -25,6 +28,9 @@ import java.util.stream.Collectors; */ @Component public class DataDescriptionStrategy implements DescriptionStrategy { + private static final String CATEGORY_LEVEL_1 = "【一级分类】"; + private static final String CATEGORY_LEVEL_2 = "【二级分类】"; + @Autowired private ProductLineMapper productLineMapper; @Autowired @@ -43,7 +49,9 @@ public class DataDescriptionStrategy implements DescriptionStrategy { }else{ operationLogDTO.setAction("创建"); } - operationLogDTO.setDescription("【"+ productLineDTO.getName()+"】"); + + String categoryPrefix = ObjectUtil.isNull(productLineDTO.getParentId()) ? CATEGORY_LEVEL_1 : CATEGORY_LEVEL_2; + operationLogDTO.setDescription(categoryPrefix + "/【" + productLineDTO.getName() + "】"); } if(methodName.equals("delete") && ObjectUtils.isNotEmpty(args) && args[0] instanceof Long id){ @@ -54,7 +62,8 @@ public class DataDescriptionStrategy implements DescriptionStrategy { if (productLineEntity == null){ return false; } - operationLogDTO.setDescription("【"+ productLineEntity.getName()+"】"); + String categoryPrefix = ObjectUtil.isNull(productLineEntity.getParentId()) ? CATEGORY_LEVEL_1 : CATEGORY_LEVEL_2; + operationLogDTO.setDescription(categoryPrefix + "/【" + productLineEntity.getName() + "】"); } if (methodName.equals("batchDelete") && ObjectUtils.isNotEmpty(args) && args[0] instanceof String ids) { @@ -76,12 +85,24 @@ public class DataDescriptionStrategy implements DescriptionStrategy { String description = infoEntities.stream() .map(informationDTO ->{ String taskName = Optional.ofNullable(informationDTO.getName()).orElse("未知文件"); - return "【" + informationDTO.getName() + "】"; + return "【" + taskName + "】"; }) .collect(Collectors.joining(",")); operationLogDTO.setDescription(description); } + if (methodName.equals("batchUploadAndOverwrite") && ObjectUtils.isNotEmpty(args) && args[0] instanceof MultipartFile[] files) { + String description = Arrays.stream(files) + .map(f -> "【" + Optional.ofNullable(f.getOriginalFilename()).orElse("未知文件") + "】") + .collect(Collectors.joining(",")); + operationLogDTO.setDescription(description); + } + + if (methodName.equals("generateFromFiles") && ObjectUtils.isNotEmpty(args) && args[0] instanceof GenerateFromFilesParam param) { + String fileName = Optional.ofNullable(param.getFileName()).orElse("未知文件"); + operationLogDTO.setDescription("【" + fileName + "】"); + } + return true; }