فهرست منبع

修改营期开营/结束时间时,同步更新营期状态

zyy 6 روز پیش
والد
کامیت
83d369b367
1فایلهای تغییر یافته به همراه16 افزوده شده و 0 حذف شده
  1. 16 0
      fs-service/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodServiceImpl.java

+ 16 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCoursePeriodServiceImpl.java

@@ -137,6 +137,7 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
         List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysMapper.selectFsUserCoursePeriodDaysList(fsUserCoursePeriodDays);
 
         // 对每个课程日期进行时间增加
+        LocalDateTime now = LocalDateTime.now();
         for (FsUserCoursePeriodDays coursePeriodDays : list) {
             // 将课程的日期按照差值天数进行调整
             LocalDate adjustedDate = coursePeriodDays.getDayDate().plusDays(daysDifference);
@@ -147,6 +148,21 @@ public class FsUserCoursePeriodServiceImpl implements IFsUserCoursePeriodService
             coursePeriodDays.setStartDateTime(startDateTime);
             coursePeriodDays.setEndDateTime(endDateTime);
             coursePeriodDays.setLastJoinTime(lastJsonTime);
+
+            // 根据调整后的时间重新计算课程状态(仅对非自由模式营期)
+            if (fsUserCoursePeriod.getFreeMode() == null || fsUserCoursePeriod.getFreeMode() != 1) {
+                if (now.isBefore(startDateTime)) {
+                    // 未开始
+                    coursePeriodDays.setStatus(0);
+                } else if (now.isAfter(endDateTime)) {
+                    // 已结束
+                    coursePeriodDays.setStatus(2);
+                } else {
+                    // 进行中
+                    coursePeriodDays.setStatus(1);
+                }
+            }
+
             fsUserCoursePeriodDaysMapper.updateFsUserCoursePeriodDays(coursePeriodDays); // 更新数据库中的课程日期
         }