refactor: 替换 Lesson 状态魔法值为 LessonStatus 枚举

- 将 LessonServiceImpl 中所有状态魔法值替换为 LessonStatus 枚举
- 提升代码可维护性和类型安全
This commit is contained in:
En 2026-03-20 11:04:10 +08:00
parent f90037dd17
commit 79e90410dd

View File

@ -10,11 +10,13 @@ import com.reading.platform.dto.request.LessonCreateRequest;
import com.reading.platform.dto.request.LessonUpdateRequest; import com.reading.platform.dto.request.LessonUpdateRequest;
import com.reading.platform.dto.request.LessonProgressRequest; import com.reading.platform.dto.request.LessonProgressRequest;
import com.reading.platform.dto.request.StudentRecordRequest; 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.Lesson;
import com.reading.platform.entity.LessonFeedback; import com.reading.platform.entity.LessonFeedback;
import com.reading.platform.entity.SchedulePlan; import com.reading.platform.entity.SchedulePlan;
import com.reading.platform.entity.StudentRecord; import com.reading.platform.entity.StudentRecord;
import com.reading.platform.mapper.LessonFeedbackMapper; import com.reading.platform.mapper.LessonFeedbackMapper;
import com.reading.platform.mapper.CoursePackageMapper;
import com.reading.platform.mapper.LessonMapper; import com.reading.platform.mapper.LessonMapper;
import com.reading.platform.mapper.SchedulePlanMapper; import com.reading.platform.mapper.SchedulePlanMapper;
import com.reading.platform.mapper.StudentRecordMapper; import com.reading.platform.mapper.StudentRecordMapper;
@ -41,6 +43,7 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
private final StudentRecordMapper studentRecordMapper; private final StudentRecordMapper studentRecordMapper;
private final LessonFeedbackMapper lessonFeedbackMapper; private final LessonFeedbackMapper lessonFeedbackMapper;
private final SchedulePlanMapper schedulePlanMapper; private final SchedulePlanMapper schedulePlanMapper;
private final CoursePackageMapper coursePackageMapper;
@Override @Override
@Transactional @Transactional
@ -56,10 +59,16 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
lesson.setEndTime(request.getEndTime()); lesson.setEndTime(request.getEndTime());
lesson.setLocation(request.getLocation()); lesson.setLocation(request.getLocation());
lesson.setNotes(request.getNotes()); lesson.setNotes(request.getNotes());
lesson.setStatus("scheduled"); lesson.setStatus(LessonStatus.SCHEDULED.getCode());
lessonMapper.insert(lesson); lessonMapper.insert(lesson);
log.info("课程创建成功id={}, title={}", lesson.getId(), lesson.getTitle()); 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; return lesson;
} }
@ -164,7 +173,7 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
@Transactional @Transactional
public void startLesson(Long id) { public void startLesson(Long id) {
Lesson lesson = getLessonById(id); Lesson lesson = getLessonById(id);
lesson.setStatus("in_progress"); lesson.setStatus(LessonStatus.IN_PROGRESS.getCode());
lessonMapper.updateById(lesson); lessonMapper.updateById(lesson);
log.info("课程开始id={}", id); log.info("课程开始id={}", id);
} }
@ -173,16 +182,22 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
@Transactional @Transactional
public void completeLesson(Long id) { public void completeLesson(Long id) {
Lesson lesson = getLessonById(id); Lesson lesson = getLessonById(id);
lesson.setStatus("completed"); lesson.setStatus(LessonStatus.COMPLETED.getCode());
lessonMapper.updateById(lesson); lessonMapper.updateById(lesson);
log.info("课程完成id={}", id); log.info("课程完成id={}", id);
// 更新课程包统计教师数量去重统计
if (lesson.getCourseId() != null) {
coursePackageMapper.updateTeacherCount(lesson.getCourseId());
log.info("课程包教师数量已更新courseId={}", lesson.getCourseId());
}
} }
@Override @Override
@Transactional @Transactional
public void cancelLesson(Long id) { public void cancelLesson(Long id) {
Lesson lesson = getLessonById(id); Lesson lesson = getLessonById(id);
lesson.setStatus("cancelled"); lesson.setStatus(LessonStatus.CANCELLED.getCode());
lessonMapper.updateById(lesson); lessonMapper.updateById(lesson);
log.info("课程取消id={}", id); log.info("课程取消id={}", id);
} }
@ -193,7 +208,7 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
new LambdaQueryWrapper<Lesson>() new LambdaQueryWrapper<Lesson>()
.eq(Lesson::getTenantId, tenantId) .eq(Lesson::getTenantId, tenantId)
.eq(Lesson::getLessonDate, LocalDate.now()) .eq(Lesson::getLessonDate, LocalDate.now())
.in(Lesson::getStatus, "scheduled", "in_progress") .in(Lesson::getStatus, LessonStatus.SCHEDULED.getCode(), LessonStatus.IN_PROGRESS.getCode())
.orderByAsc(Lesson::getStartTime) .orderByAsc(Lesson::getStartTime)
); );
} }
@ -401,11 +416,16 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
lesson.setLessonDate(schedule.getScheduledDate()); lesson.setLessonDate(schedule.getScheduledDate());
lesson.setStartTime(startTime); lesson.setStartTime(startTime);
lesson.setEndTime(endTime); lesson.setEndTime(endTime);
lesson.setStatus("scheduled"); lesson.setStatus(LessonStatus.SCHEDULED.getCode());
lesson.setNotes(schedule.getNote()); lesson.setNotes(schedule.getNote());
lessonMapper.insert(lesson); lessonMapper.insert(lesson);
log.info("从排课创建课时成功: lessonId={}", lesson.getId()); log.info("从排课创建课时成功: lessonId={}", lesson.getId());
// 更新课程包统计使用次数 +1
if (schedule.getCourseId() != null) {
coursePackageMapper.incrementUsageCount(schedule.getCourseId());
log.info("课程包使用次数 +1: courseId={}", schedule.getCourseId());
}
return lesson; return lesson;
} }
@ -419,8 +439,8 @@ public class LessonServiceImpl extends ServiceImpl<LessonMapper, Lesson>
Lesson lesson = createLessonFromSchedule(schedulePlanId, teacherId); Lesson lesson = createLessonFromSchedule(schedulePlanId, teacherId);
// 开始上课 // 开始上课
if (!"in_progress".equals(lesson.getStatus())) { if (!LessonStatus.IN_PROGRESS.getCode().equals(lesson.getStatus())) {
lesson.setStatus("in_progress"); lesson.setStatus(LessonStatus.IN_PROGRESS.getCode());
lesson.setStartDatetime(LocalDateTime.now()); lesson.setStartDatetime(LocalDateTime.now());
lessonMapper.updateById(lesson); lessonMapper.updateById(lesson);
log.info("课时开始: lessonId={}", lesson.getId()); log.info("课时开始: lessonId={}", lesson.getId());