Преглед изворни кода

优化课程日历相关逻辑

hgw пре 3 година
родитељ
комит
7259a7748b

+ 23 - 18
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/CourseScheduleServiceImpl.java

@@ -131,7 +131,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
     }
 
     /**
-     * 校验该学生大于当前时间未开始的课程时间和传入时间段有没有交集
+     * 校验该学生大于当前时间未开始和进行中的课程时间和传入时间段有没有交集
      *
      * @param studentId 学生id
      * @param startTime 新增课程 开始时间
@@ -148,7 +148,7 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         param.put("studentId", studentId);
         param.put("greaterDate", new Date());
         param.put("classDate", ymd);
-        param.put("status", CourseScheduleEnum.NOT_START.getCode());
+        param.put("statusList", Lists.newArrayList(CourseScheduleEnum.NOT_START.getCode(), CourseScheduleEnum.ING.getCode()));
         List<CourseSchedule> list = baseMapper.queryStudentCourse(param);
         return checkCourseTime(list, CourseSchedule::getStartTime, CourseSchedule::getEndTime, startTime, endTime);
     }
@@ -166,10 +166,8 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
         WrapperUtil.checkObj(startTime, "开始时间不能为空!");
         //获取日期-目前上课没有跨天情况
         String ymd = DateUtil.format(startTime, DateUtil.DEFAULT_PATTERN);
-        //查询老师当天所有的课程时间数据
-        List<CourseSchedule> list = this.list(Wrappers.<CourseSchedule>lambdaQuery()
-                .eq(CourseSchedule::getTeacherId, teacherId)
-                .eq(CourseSchedule::getClassDate, ymd));
+        //查询老师当天未开始、进行中的课程
+        List<CourseSchedule> list = getTeacherCourseTime(teacherId, ymd, ymd);
         return checkCourseTime(list, CourseSchedule::getStartTime, CourseSchedule::getEndTime, startTime, endTime);
     }
 
@@ -296,19 +294,27 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                         holidayMap.put(calendarYear, list);
                         return list;
                     });
-            //是否是节假日  0:不是 1是
-            calendarEntity.setHoliday(holiday.contains(calendarEntity.getDate()) ? 1 : 0);
-            calendarEntity.setSkipHoliday(skipHoliday);//直播课日历只展示节假日 不跳过节假日
+            //是否是节假日 1是 0:不是
+            int holidayFlag = holiday.contains(calendarEntity.getDate()) ? 1 : 0;
+            calendarEntity.setHoliday(holidayFlag);
+
+            //是节假日又有需要跳过节假日
+            if (holidayFlag == 1 && skipHoliday == 1) {
+                calendarEntity.setSkipHoliday(1);//跳过节假日
+                calendarEntity.setCourseTime(null);//清空课程时间
+            } else {
+                calendarEntity.setSkipHoliday(0);//不跳过节假日
+            }
         });
     }
 
     /**
-     * 获取老师的课程时间数据
+     * 获取老师未开始、进行中的课程
      *
      * @param teacherId 老师id
      * @param startDate 开始时间
      * @param endDate   结束时间
-     * @return key:日期-年月日 value:课程时间-开始时间,结束时间
+     * @return 课程列表
      */
     private List<CourseSchedule> getTeacherCourseTime(Long teacherId, String startDate, String endDate) {
         //未开始、进行中的课程
@@ -533,9 +539,11 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
      *
      * @param teacherId 老师id
      * @param studentId 学员id
+     * @param startDate 开始日期
+     * @param endDate   结束日期
      */
     private Map<String, List<CourseTimeEntity>> getAllPracticeCourseTime(Long teacherId, Long studentId, String startDate, String endDate) {
-        //获取老师的课程时间数据
+        //获取老师未开始、进行中的课程
         List<CourseSchedule> courseList = getTeacherCourseTime(teacherId, startDate, endDate);
         if (CollectionUtils.isEmpty(courseList)) {
             courseList = new ArrayList<>();
@@ -1047,15 +1055,12 @@ public class CourseScheduleServiceImpl extends ServiceImpl<CourseScheduleDao, Co
                 Map<Long, String> teacherReceivers = new HashMap<>();
                 teacherReceivers.put(info.getTeacherId(), info.getPhone());
                 sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.NOT_EVALUATE_STUDENT_PRACTICE,
-                                                   teacherReceivers, null, 0, null, ClientEnum.TEACHER.getCode(),
-                                                   info.getRepliedNum(),info.getDecorateNum());
+                        teacherReceivers, null, 0, null, ClientEnum.TEACHER.getCode(),
+                        info.getRepliedNum(), info.getDecorateNum());
             } catch (Exception e) {
-                log.warn("老师当日陪练课未评价/布置作业消息发送失败,{}",e.getMessage());
+                log.warn("老师当日陪练课未评价/布置作业消息发送失败,{}", e.getMessage());
             }
-
         }
-
-
     }
 
     /**