From 7c4ba29188844eb0986ca7ee81e2b8dd27b6bc17 Mon Sep 17 00:00:00 2001 From: luoweijian <1329394916@qq.com> Date: Mon, 6 Jul 2026 10:06:16 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=A5=E8=AF=86=E7=82=B9=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=EF=BC=8C=E8=B5=84=E6=96=99=E5=90=8D=E7=A7=B0=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project/task/domain/param/TaskParam.java | 2 ++ .../SaveOrUpdateTaskDomainServiceImpl.java | 29 ++++++++++++------- .../impl/SearchTaskDomainServiceImpl.java | 8 ++--- 3 files changed, 24 insertions(+), 15 deletions(-) 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),