Browse Source

1、陪练课名称生成逻辑调整
2、一个部门下只有一节课成导致的可预约日期异常

Joburgess 5 years ago
parent
commit
22b591a134

+ 58 - 40
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -242,23 +242,30 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 if(checkTeacherLeaveDate){
                     teacherLeaveData=organTeacherLeaveData.getJSONObject(teacherId.toString());
                 }
-                Date leaveStartTime=null;
-                Date leaveEndTime=null;
                 if(Objects.isNull(teacherLeaveData)){
                     checkTeacherLeaveDate=false;
-                }else{
-                    leaveStartTime=teacherLeaveData.getDate("leave_start_time");
-                    leaveEndTime=teacherLeaveData.getDate("leave_end_time");
                 }
 
                 if(checkTeacherLeaveDate){
-                    if(practiceGroup.getFirstCourseTime().before(leaveEndTime)
-                            && firstClassEndTime.after(leaveStartTime)){
-                        continue;
+                    String dateStr=DateUtil.dateToString(practiceGroup.getFirstCourseTime(),"yyyy-MM-dd");
+                    JSONObject leaveDateData=teacherLeaveData.getJSONObject(dateStr);
+                    if(Objects.nonNull(leaveDateData)){
+                        Date leaveStartTime=leaveDateData.getDate("leave_start_time");
+                        Date leaveEndTime=leaveDateData.getDate("leave_end_time");
+                        if(practiceGroup.getFirstCourseTime().before(leaveEndTime)
+                                && firstClassEndTime.after(leaveStartTime)){
+                            continue;
+                        }
                     }
-                    if(practiceGroup.getSecondCourseTime().before(leaveEndTime)
-                            && secondClassEndTime.after(leaveStartTime)){
-                        continue;
+                    String dateStr2=DateUtil.dateToString(practiceGroup.getSecondCourseTime(),"yyyy-MM-dd");
+                    JSONObject leaveDateData2=teacherLeaveData.getJSONObject(dateStr2);
+                    if(Objects.nonNull(leaveDateData2)){
+                        Date leaveStartTime=leaveDateData2.getDate("leave_start_time");
+                        Date leaveEndTime=leaveDateData2.getDate("leave_end_time");
+                        if(practiceGroup.getSecondCourseTime().before(leaveEndTime)
+                                && secondClassEndTime.after(leaveStartTime)){
+                            continue;
+                        }
                     }
                 }
 
@@ -469,23 +476,30 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 if(checkTeacherLeaveDate){
                     teacherLeaveData=organTeacherLeaveData.getJSONObject(teacherId.toString());
                 }
-                Date leaveStartTime=null;
-                Date leaveEndTime=null;
                 if(Objects.isNull(teacherLeaveData)){
                     checkTeacherLeaveDate=false;
-                }else{
-                    leaveStartTime=teacherLeaveData.getDate("leave_start_time");
-                    leaveEndTime=teacherLeaveData.getDate("leave_end_time");
                 }
 
                 if(checkTeacherLeaveDate){
-                    if(practiceGroup.getFirstCourseTime().before(leaveEndTime)
-                            && firstClassEndTime.after(leaveStartTime)){
-                        continue;
+                    String dateStr=DateUtil.dateToString(practiceGroup.getFirstCourseTime(),"yyyy-MM-dd");
+                    JSONObject leaveDateData=teacherLeaveData.getJSONObject(dateStr);
+                    if(Objects.nonNull(leaveDateData)){
+                        Date leaveStartTime=leaveDateData.getDate("leave_start_time");
+                        Date leaveEndTime=leaveDateData.getDate("leave_end_time");
+                        if(practiceGroup.getFirstCourseTime().before(leaveEndTime)
+                                && firstClassEndTime.after(leaveStartTime)){
+                            continue;
+                        }
                     }
-                    if(practiceGroup.getSecondCourseTime().before(leaveEndTime)
-                            && secondClassEndTime.after(leaveStartTime)){
-                        continue;
+                    String dateStr2=DateUtil.dateToString(practiceGroup.getSecondCourseTime(),"yyyy-MM-dd");
+                    JSONObject leaveDateData2=teacherLeaveData.getJSONObject(dateStr2);
+                    if(Objects.nonNull(leaveDateData2)){
+                        Date leaveStartTime=leaveDateData2.getDate("leave_start_time");
+                        Date leaveEndTime=leaveDateData2.getDate("leave_end_time");
+                        if(practiceGroup.getSecondCourseTime().before(leaveEndTime)
+                                && secondClassEndTime.after(leaveStartTime)){
+                            continue;
+                        }
                     }
                 }
 
@@ -731,13 +745,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 if(checkTeacherLeaveDate){
                     teacherLeaveData=organTeacherLeaveData.getJSONObject(teacherId.toString());
                 }
-                Date leaveStartTime=null;
-                Date leaveEndTime=null;
                 if(Objects.isNull(teacherLeaveData)){
                     checkTeacherLeaveDate=false;
-                }else{
-                    leaveStartTime=teacherLeaveData.getDate("leave_start_time");
-                    leaveEndTime=teacherLeaveData.getDate("leave_end_time");
                 }
                 List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
                 if (CollectionUtils.isEmpty(teacherCourses)) {
@@ -746,9 +755,17 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                             continue;
                         }
                         Date enableApplyDateCourseEndTime = DateUtil.addMinutes(enableApplyDate, practiceCourseMinutes);
-                        if (checkTeacherLeaveDate&&enableApplyDateCourseEndTime.after(leaveStartTime)
-                                &&enableApplyDate.before(leaveEndTime)) {
-                            continue;
+                        if (checkTeacherLeaveDate) {
+                            String dateStr=DateUtil.dateToString(enableApplyDate,"yyyy-MM-dd");
+                            JSONObject leaveDateData=teacherLeaveData.getJSONObject(dateStr);
+                            if(Objects.nonNull(leaveDateData)){
+                                Date leaveStartTime=leaveDateData.getDate("leave_start_time");
+                                Date leaveEndTime=leaveDateData.getDate("leave_end_time");
+                                if(enableApplyDateCourseEndTime.after(leaveStartTime)
+                                        &&enableApplyDate.before(leaveEndTime)){
+                                    continue;
+                                }
+                            }
                         }
                         allTeacherFreeDates.add(enableApplyDate);
                     }
@@ -803,9 +820,17 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 List<Date> tempEnableApplyDates = new ArrayList<>();
                 for (Date enableApplyDate : enableApplyDates) {
                     Date enableApplyDateCourseEndTime = DateUtil.addMinutes(enableApplyDate, practiceCourseMinutes);
-                    if (checkTeacherLeaveDate&&enableApplyDateCourseEndTime.after(leaveStartTime)
-                            &&enableApplyDate.before(leaveEndTime)) {
-                        continue;
+                    if (checkTeacherLeaveDate) {
+                        String dateStr=DateUtil.dateToString(enableApplyDate,"yyyy-MM-dd");
+                        JSONObject leaveDateData=teacherLeaveData.getJSONObject(dateStr);
+                        if(Objects.nonNull(leaveDateData)){
+                            Date leaveStartTime=leaveDateData.getDate("leave_start_time");
+                            Date leaveEndTime=leaveDateData.getDate("leave_end_time");
+                            if(enableApplyDateCourseEndTime.after(leaveStartTime)
+                                    &&enableApplyDate.before(leaveEndTime)){
+                                continue;
+                            }
+                        }
                     }
                     if (!enableApplyDate.before(enableApplyStartDate)&&!enableApplyEndDate.before(enableApplyDate)) {
                         tempEnableApplyDates.add(enableApplyDate);
@@ -861,13 +886,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 }
             }
             if (!CollectionUtils.isEmpty(allTeacherFreeDates)) {
-//                if(Objects.nonNull(firstClassTime)){
-//                    Set<String> days = allTeacherFreeDates.stream()
-//                            .map(date -> DateUtil.dateToString(date, "yyyy-MM-dd")).collect(Collectors.toSet());
-//                    if(days.size()<2){
-//                        continue;
-//                    }
-//                }
                 break;
             }
         }