From 79e90410ddf7336ee2f55948791ba36a1bfd315e Mon Sep 17 00:00:00 2001 From: En Date: Fri, 20 Mar 2026 11:04:10 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=9B=BF=E6=8D=A2=20Lesson=20?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E9=AD=94=E6=B3=95=E5=80=BC=E4=B8=BA=20Lesson?= =?UTF-8?q?Status=20=E6=9E=9A=E4=B8=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将 LessonServiceImpl 中所有状态魔法值替换为 LessonStatus 枚举 - 提升代码可维护性和类型安全 --- .../service/impl/LessonServiceImpl.java | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/reading-platform-java/src/main/java/com/reading/platform/service/impl/LessonServiceImpl.java b/reading-platform-java/src/main/java/com/reading/platform/service/impl/LessonServiceImpl.java index 28a9d5b..0403635 100644 --- a/reading-platform-java/src/main/java/com/reading/platform/service/impl/LessonServiceImpl.java +++ b/reading-platform-java/src/main/java/com/reading/platform/service/impl/LessonServiceImpl.java @@ -10,11 +10,13 @@ import com.reading.platform.dto.request.LessonCreateRequest; import com.reading.platform.dto.request.LessonUpdateRequest; import com.reading.platform.dto.request.LessonProgressRequest; import com.reading.platform.dto.request.StudentRecordRequest; +import com.reading.platform.common.enums.LessonStatus; import com.reading.platform.entity.Lesson; import com.reading.platform.entity.LessonFeedback; import com.reading.platform.entity.SchedulePlan; import com.reading.platform.entity.StudentRecord; import com.reading.platform.mapper.LessonFeedbackMapper; +import com.reading.platform.mapper.CoursePackageMapper; import com.reading.platform.mapper.LessonMapper; import com.reading.platform.mapper.SchedulePlanMapper; import com.reading.platform.mapper.StudentRecordMapper; @@ -41,6 +43,7 @@ public class LessonServiceImpl extends ServiceImpl private final StudentRecordMapper studentRecordMapper; private final LessonFeedbackMapper lessonFeedbackMapper; private final SchedulePlanMapper schedulePlanMapper; + private final CoursePackageMapper coursePackageMapper; @Override @Transactional @@ -56,10 +59,16 @@ public class LessonServiceImpl extends ServiceImpl lesson.setEndTime(request.getEndTime()); lesson.setLocation(request.getLocation()); lesson.setNotes(request.getNotes()); - lesson.setStatus("scheduled"); + lesson.setStatus(LessonStatus.SCHEDULED.getCode()); lessonMapper.insert(lesson); log.info("课程创建成功:id={}, title={}", lesson.getId(), lesson.getTitle()); + + // 更新课程包统计:使用次数 +1 + if (request.getCourseId() != null) { + coursePackageMapper.incrementUsageCount(request.getCourseId()); + log.info("课程包使用次数 +1: courseId={}", request.getCourseId()); + } return lesson; } @@ -164,7 +173,7 @@ public class LessonServiceImpl extends ServiceImpl @Transactional public void startLesson(Long id) { Lesson lesson = getLessonById(id); - lesson.setStatus("in_progress"); + lesson.setStatus(LessonStatus.IN_PROGRESS.getCode()); lessonMapper.updateById(lesson); log.info("课程开始:id={}", id); } @@ -173,16 +182,22 @@ public class LessonServiceImpl extends ServiceImpl @Transactional public void completeLesson(Long id) { Lesson lesson = getLessonById(id); - lesson.setStatus("completed"); + lesson.setStatus(LessonStatus.COMPLETED.getCode()); lessonMapper.updateById(lesson); log.info("课程完成:id={}", id); + + // 更新课程包统计:教师数量(去重统计) + if (lesson.getCourseId() != null) { + coursePackageMapper.updateTeacherCount(lesson.getCourseId()); + log.info("课程包教师数量已更新:courseId={}", lesson.getCourseId()); + } } @Override @Transactional public void cancelLesson(Long id) { Lesson lesson = getLessonById(id); - lesson.setStatus("cancelled"); + lesson.setStatus(LessonStatus.CANCELLED.getCode()); lessonMapper.updateById(lesson); log.info("课程取消:id={}", id); } @@ -193,7 +208,7 @@ public class LessonServiceImpl extends ServiceImpl new LambdaQueryWrapper() .eq(Lesson::getTenantId, tenantId) .eq(Lesson::getLessonDate, LocalDate.now()) - .in(Lesson::getStatus, "scheduled", "in_progress") + .in(Lesson::getStatus, LessonStatus.SCHEDULED.getCode(), LessonStatus.IN_PROGRESS.getCode()) .orderByAsc(Lesson::getStartTime) ); } @@ -401,11 +416,16 @@ public class LessonServiceImpl extends ServiceImpl lesson.setLessonDate(schedule.getScheduledDate()); lesson.setStartTime(startTime); lesson.setEndTime(endTime); - lesson.setStatus("scheduled"); + lesson.setStatus(LessonStatus.SCHEDULED.getCode()); lesson.setNotes(schedule.getNote()); lessonMapper.insert(lesson); log.info("从排课创建课时成功: lessonId={}", lesson.getId()); + // 更新课程包统计:使用次数 +1 + if (schedule.getCourseId() != null) { + coursePackageMapper.incrementUsageCount(schedule.getCourseId()); + log.info("课程包使用次数 +1: courseId={}", schedule.getCourseId()); + } return lesson; } @@ -419,8 +439,8 @@ public class LessonServiceImpl extends ServiceImpl Lesson lesson = createLessonFromSchedule(schedulePlanId, teacherId); // 开始上课 - if (!"in_progress".equals(lesson.getStatus())) { - lesson.setStatus("in_progress"); + if (!LessonStatus.IN_PROGRESS.getCode().equals(lesson.getStatus())) { + lesson.setStatus(LessonStatus.IN_PROGRESS.getCode()); lesson.setStartDatetime(LocalDateTime.now()); lessonMapper.updateById(lesson); log.info("课时开始: lessonId={}", lesson.getId());