From a7662227334213e78b7588c2ecf58f19a548b5a2 Mon Sep 17 00:00:00 2001 From: En Date: Mon, 16 Mar 2026 16:04:26 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=B6=88=E9=99=A4=E8=AF=BE?= =?UTF-8?q?=E7=A8=8B=E5=92=8C=E5=A5=97=E9=A4=90=E7=8A=B6=E6=80=81=E9=AD=94?= =?UTF-8?q?=E6=B3=95=E5=80=BC=EF=BC=8C=E7=BB=9F=E4=B8=80=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=20CourseStatus=20=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 完善 CourseStatus 枚举值:DRAFT, PENDING, REJECTED, PUBLISHED, ARCHIVED, APPROVED - 替换 CoursePackageService 中的魔法值为 CourseStatus 枚举 - 替换 CourseServiceImpl 中的魔法值为 CourseStatus 枚举 - 替换 TeacherStatsServiceImpl 中的魔法值为 CourseStatus 枚举 - 适配前端状态值,使用大写枚举值 Co-Authored-By: Claude Opus 4.6 --- .../platform/common/enums/CourseStatus.java | 11 ++++++---- .../service/CoursePackageService.java | 15 +++++++------ .../service/impl/CourseServiceImpl.java | 22 +++++++++++-------- .../service/impl/TeacherStatsServiceImpl.java | 5 +++-- 4 files changed, 31 insertions(+), 22 deletions(-) diff --git a/reading-platform-java/src/main/java/com/reading/platform/common/enums/CourseStatus.java b/reading-platform-java/src/main/java/com/reading/platform/common/enums/CourseStatus.java index 5160951..b76dad0 100644 --- a/reading-platform-java/src/main/java/com/reading/platform/common/enums/CourseStatus.java +++ b/reading-platform-java/src/main/java/com/reading/platform/common/enums/CourseStatus.java @@ -3,14 +3,17 @@ package com.reading.platform.common.enums; import lombok.Getter; /** - * Course Status Enum + * 课程状态枚举 */ @Getter public enum CourseStatus { - DRAFT("draft", "Draft"), - PUBLISHED("published", "PUBLISHED"), - ARCHIVED("archived", "Archived"); + DRAFT("DRAFT", "草稿"), + PENDING("PENDING", "待审核"), + REJECTED("REJECTED", "已驳回"), + PUBLISHED("PUBLISHED", "已发布"), + ARCHIVED("ARCHIVED", "已下架"), + APPROVED("APPROVED", "审核通过"); private final String code; private final String description; diff --git a/reading-platform-java/src/main/java/com/reading/platform/service/CoursePackageService.java b/reading-platform-java/src/main/java/com/reading/platform/service/CoursePackageService.java index a343a7d..108f72d 100644 --- a/reading-platform-java/src/main/java/com/reading/platform/service/CoursePackageService.java +++ b/reading-platform-java/src/main/java/com/reading/platform/service/CoursePackageService.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson2.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.reading.platform.common.enums.CourseStatus; import com.reading.platform.common.exception.BusinessException; import com.reading.platform.common.response.PageResult; import com.reading.platform.dto.response.CoursePackageResponse; @@ -170,7 +171,7 @@ public class CoursePackageService extends ServiceImpl course.setDifficultyLevel(request.getDifficultyLevel()); course.setDurationMinutes(request.getDurationMinutes()); course.setObjectives(request.getObjectives()); - course.setStatus("draft"); + course.setStatus(CourseStatus.DRAFT.getCode()); course.setIsSystem(0); // Course Package Fields @@ -110,7 +111,7 @@ public class CourseServiceImpl extends ServiceImpl course.setDifficultyLevel(request.getDifficultyLevel()); course.setDurationMinutes(request.getDurationMinutes()); course.setObjectives(request.getObjectives()); - course.setStatus("draft"); + course.setStatus(CourseStatus.DRAFT.getCode()); course.setIsSystem(1); // Course Package Fields @@ -357,9 +358,12 @@ public class CourseServiceImpl extends ServiceImpl // 只过滤系统课程 wrapper.eq(Course::getIsSystem, 1); - // 审核管理页:仅返回待审核和已驳回,排除已通过/已发布 + // 审核管理页:仅过滤待审核和已驳回,排除已通过/已发布 if (reviewOnly) { - wrapper.in(Course::getStatus, List.of("PENDING", "pending", "REJECTED", "rejected")); + wrapper.in(Course::getStatus, List.of( + CourseStatus.PENDING.getCode(), + CourseStatus.REJECTED.getCode() + )); } if (StringUtils.hasText(keyword)) { @@ -394,7 +398,7 @@ public class CourseServiceImpl extends ServiceImpl @Transactional public void publishCourse(Long id) { Course course = getCourseById(id); - course.setStatus("PUBLISHED"); + course.setStatus(CourseStatus.PUBLISHED.getCode()); course.setPublishedAt(LocalDateTime.now()); courseMapper.updateById(course); log.info("课程发布成功:id={}", id); @@ -404,7 +408,7 @@ public class CourseServiceImpl extends ServiceImpl @Transactional public void archiveCourse(Long id) { Course course = getCourseById(id); - course.setStatus("archived"); + course.setStatus(CourseStatus.ARCHIVED.getCode()); courseMapper.updateById(course); log.info("课程归档成功:id={}", id); } @@ -413,10 +417,10 @@ public class CourseServiceImpl extends ServiceImpl @Transactional public void rejectCourse(Long id, String comment) { Course course = getCourseById(id); - if (!"PENDING".equalsIgnoreCase(course.getStatus()) && !"pending".equals(course.getStatus())) { + if (!CourseStatus.PENDING.getCode().equalsIgnoreCase(course.getStatus())) { log.warn("课程状态非待审核,无法驳回:id={}, status={}", id, course.getStatus()); } - course.setStatus("REJECTED"); + course.setStatus(CourseStatus.REJECTED.getCode()); course.setReviewComment(comment); course.setReviewedAt(LocalDateTime.now()); course.setReviewedBy(1L); // TODO: 从 SecurityUtils 获取当前用户 @@ -433,7 +437,7 @@ public class CourseServiceImpl extends ServiceImpl .or() .eq(Course::getIsSystem, 1) ) - .eq(Course::getStatus, "PUBLISHED") + .eq(Course::getStatus, CourseStatus.PUBLISHED.getCode()) .orderByAsc(Course::getName) ); } diff --git a/reading-platform-java/src/main/java/com/reading/platform/service/impl/TeacherStatsServiceImpl.java b/reading-platform-java/src/main/java/com/reading/platform/service/impl/TeacherStatsServiceImpl.java index 17a5e5d..43f6346 100644 --- a/reading-platform-java/src/main/java/com/reading/platform/service/impl/TeacherStatsServiceImpl.java +++ b/reading-platform-java/src/main/java/com/reading/platform/service/impl/TeacherStatsServiceImpl.java @@ -1,6 +1,7 @@ package com.reading.platform.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.reading.platform.common.enums.CourseStatus; import com.reading.platform.entity.Clazz; import com.reading.platform.entity.Course; import com.reading.platform.entity.Lesson; @@ -78,7 +79,7 @@ public class TeacherStatsServiceImpl implements TeacherStatsService { List recommendedCourses = courseMapper.selectList( new LambdaQueryWrapper() .eq(Course::getTenantId, tenantId) - .eq(Course::getStatus, "PUBLISHED") + .eq(Course::getStatus, CourseStatus.PUBLISHED.getCode()) .orderByDesc(Course::getUsageCount) .last("LIMIT 5") ); @@ -132,7 +133,7 @@ public class TeacherStatsServiceImpl implements TeacherStatsService { return courseMapper.selectList( new LambdaQueryWrapper() .eq(Course::getTenantId, tenantId) - .eq(Course::getStatus, "PUBLISHED") + .eq(Course::getStatus, CourseStatus.PUBLISHED.getCode()) .orderByDesc(Course::getUsageCount) .last("LIMIT 10") );