diff --git a/src/main/java/com/project/task/domain/param/TaskParam.java b/src/main/java/com/project/task/domain/param/TaskParam.java index 072eccb..6e16076 100644 --- a/src/main/java/com/project/task/domain/param/TaskParam.java +++ b/src/main/java/com/project/task/domain/param/TaskParam.java @@ -25,4 +25,6 @@ public class TaskParam extends BaseParam { private Boolean excludeEnd = Boolean.TRUE; + private Long classicCategoryId; + } diff --git a/src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java b/src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java index 146b0a8..b779920 100644 --- a/src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java +++ b/src/main/java/com/project/task/domain/service/impl/SaveOrUpdateTaskDomainServiceImpl.java @@ -112,16 +112,25 @@ public class SaveOrUpdateTaskDomainServiceImpl implements SaveOrUpdateTaskDomain dto.setBusinessId(subProductLine.getBusinessId()); } // 经典模式:补全分类冗余字段 - if (ExamModeEnum.CLASSIC.getValue().equals(dto.getExamMode()) && dto.getClassicCategoryId() != null) { - ClassicCategoryEntity category = classicCategoryBaseService.getById(dto.getClassicCategoryId()); - if (category != null) { - dto.setClassicCategoryName(category.getName()); - // 如果是二级分类,补全父级信息 - if (category.getParentId() != null && category.getParentId() != 0) { - dto.setClassicCategoryParentId(category.getParentId()); - ClassicCategoryEntity parentCategory = classicCategoryBaseService.getById(category.getParentId()); - if (parentCategory != null) { - dto.setClassicCategoryParentName(parentCategory.getName()); + if (ExamModeEnum.CLASSIC.getValue().equals(dto.getExamMode())) { + // 如果前端没传 classicCategoryId,从套题组推导 + if (dto.getClassicCategoryId() == null && dto.getClassicPaperSetId() != null) { + ClassicPaperSetEntity paperSet = classicPaperSetBaseService.getById(dto.getClassicPaperSetId()); + if (paperSet != null) { + dto.setClassicCategoryId(paperSet.getClassicCategoryId()); + } + } + if (dto.getClassicCategoryId() != null) { + ClassicCategoryEntity category = classicCategoryBaseService.getById(dto.getClassicCategoryId()); + if (category != null) { + dto.setClassicCategoryName(category.getName()); + // 如果是二级分类,补全父级信息 + if (category.getParentId() != null && category.getParentId() != 0) { + dto.setClassicCategoryParentId(category.getParentId()); + ClassicCategoryEntity parentCategory = classicCategoryBaseService.getById(category.getParentId()); + if (parentCategory != null) { + dto.setClassicCategoryParentName(parentCategory.getName()); + } } } } diff --git a/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java b/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java index d1bc44f..0de026e 100644 --- a/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java +++ b/src/main/java/com/project/task/domain/service/impl/SearchTaskDomainServiceImpl.java @@ -83,6 +83,9 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService { queryWrapper.in(TaskEntity::getSubLineId, productLineEntityList); } } + if (Objects.nonNull(param.getClassicCategoryId())) { + queryWrapper.eq(TaskEntity::getClassicCategoryId, param.getClassicCategoryId()); + } // 考试状态过滤 Date endOfToday = DateUtil.endOfDay(new Date()); Date beginOfToday = DateUtil.beginOfDay(new Date()); @@ -99,11 +102,6 @@ public class SearchTaskDomainServiceImpl implements SearchTaskDomainService { queryWrapper.le(TaskEntity::getStartTime, endOfToday); queryWrapper.ge(TaskEntity::getEndTime, beginOfToday); } - if (BooleanUtil.isTrue(param.getExcludeEnd())) { - // 强制要求:结束时间必须 >= 今天 00:00:00 - // 这样,截止时间是今天的任务会被【保留】,只有昨天及以前截止的任务会被【排除】 - queryWrapper.ge(TaskEntity::getEndTime, beginOfToday); - } queryWrapper.orderByDesc(TaskEntity::getId); IPage taskEntityPage = taskMapper.selectPage( PageConverter.toMpPage(param),