Browse Source

补充日志信息

master
luogw 1 month ago
parent
commit
49d0dcc34d
  1. 91
      src/main/java/com/project/operation/domain/service/impl/description/ClassicPaperDescriptionStrategy.java

91
src/main/java/com/project/operation/domain/service/impl/description/ClassicPaperDescriptionStrategy.java

@ -0,0 +1,91 @@
package com.project.operation.domain.service.impl.description;
import com.project.classicpaper.domain.dto.ClassicCategoryDTO;
import com.project.classicpaper.domain.dto.ClassicPaperSetDTO;
import com.project.classicpaper.domain.entity.ClassicCategoryEntity;
import com.project.classicpaper.domain.entity.ClassicPaperSetEntity;
import com.project.classicpaper.mapper.ClassicCategoryMapper;
import com.project.classicpaper.mapper.ClassicPaperSetMapper;
import com.project.operation.domain.dto.OperationLogDTO;
import com.project.operation.domain.enums.ModuleEnum;
import com.project.operation.domain.service.DescriptionStrategy;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* 套题管理
*/
@Component
public class ClassicPaperDescriptionStrategy implements DescriptionStrategy {
@Autowired
private ClassicCategoryMapper classicCategoryMapper;
@Autowired
private ClassicPaperSetMapper classicPaperSetMapper;
@Override
public Boolean process(Object[] args, OperationLogDTO operationLogDTO, String methodName) {
// ClassicCategoryController.save — 添加套题分类
if (methodName.equals("save") && ObjectUtils.isNotEmpty(args) && args[0] instanceof ClassicCategoryDTO dto) {
if (StringUtils.isBlank(dto.getName())) {
return false;
}
operationLogDTO.setDescription("【套题分类】【" + dto.getName() + "】");
}
// ClassicCategoryController.delete — 删除套题分类
if (methodName.equals("delete") && ObjectUtils.isNotEmpty(args) && args[0] instanceof Long id) {
ClassicCategoryEntity entity = classicCategoryMapper.selectByIdIncludeDeleted(id);
if (entity == null || StringUtils.isBlank(entity.getName())) {
return false;
}
operationLogDTO.setDescription("【套题分类】【" + entity.getName() + "】");
}
// ClassicPaperSetController.generate — 添加套题
if (methodName.equals("generate") && ObjectUtils.isNotEmpty(args) && args[0] instanceof ClassicPaperSetDTO dto) {
if (StringUtils.isBlank(dto.getName())) {
return false;
}
operationLogDTO.setDescription("【" + dto.getName() + "】");
}
// ClassicPaperSetController.delete — 删除套题
if (methodName.equals("delete") && ObjectUtils.isNotEmpty(args) && args[0] instanceof String ids) {
if (StringUtils.isBlank(ids)) {
return false;
}
List<Long> idList = Arrays.stream(ids.split(","))
.filter(StringUtils::isNotBlank)
.map(Long::valueOf)
.collect(Collectors.toList());
if (idList.isEmpty()) {
return false;
}
List<ClassicPaperSetEntity> entities = classicPaperSetMapper.selectBatchIdsIncludeDeleted(idList);
if (CollectionUtils.isEmpty(entities)) {
return false;
}
operationLogDTO.setAction(idList.size() == 1 ? "删除" : "批量删除");
String description = entities.stream()
.map(e -> "【" + Optional.ofNullable(e.getName()).orElse("未知文件") + "】")
.collect(Collectors.joining(","));
operationLogDTO.setDescription(description);
}
return true;
}
@Override
public String getStrategyName() {
return ModuleEnum.CLASSIC_PAPER.name();
}
}
Loading…
Cancel
Save