|
@@ -1,5 +1,7 @@
|
|
|
package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
@@ -838,6 +840,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
Set<Integer> disableApplyWeekNum = new HashSet<>();
|
|
|
|
|
|
TeacherFreeTime teacherFreeTime = teacherFreeTimeDao.findTeacherFreeTime(teacherId);
|
|
|
+ JSONObject teacherFreeTimes=new JSONObject();
|
|
|
Integer maxTeacherCourses = null;
|
|
|
int holiday = 0;
|
|
|
if (Objects.nonNull(teacherFreeTime)) {
|
|
@@ -847,6 +850,27 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
if (Objects.nonNull(teacherFreeTime.getHoliday())) {
|
|
|
holiday = DateUtil.normalWeekNumCalendarWeekNumMap.get(teacherFreeTime.getHoliday());
|
|
|
}
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.MONDAY), JSON.parseObject(teacherFreeTime.getMonday()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.TUESDAY), JSON.parseObject(teacherFreeTime.getTuesday()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.WEDNESDAY), JSON.parseObject(teacherFreeTime.getWednesday()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.THURSDAY), JSON.parseObject(teacherFreeTime.getThursday()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.FRIDAY), JSON.parseObject(teacherFreeTime.getFriday()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.SATURDAY), JSON.parseObject(teacherFreeTime.getSaturday()));
|
|
|
+ }
|
|
|
+ if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(Calendar.SUNDAY), JSON.parseObject(teacherFreeTime.getSunday()));
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
Date now = new Date();
|
|
@@ -965,7 +989,27 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}
|
|
|
}
|
|
|
calendar.setTime(enableApplyDate);
|
|
|
- if (calendar.get(Calendar.DAY_OF_WEEK) != holiday) {
|
|
|
+ int dayOfWeek=calendar.get(Calendar.DAY_OF_WEEK);
|
|
|
+ JSONArray teacherWeekDayFreeTimes = teacherFreeTimes.getJSONArray(String.valueOf(dayOfWeek));
|
|
|
+ if(Objects.nonNull(teacherWeekDayFreeTimes)){
|
|
|
+ LocalTime enableApplyStartTime=LocalDateTime.ofInstant(enableApplyDate.toInstant(),DateUtil.zoneId).toLocalTime();
|
|
|
+ LocalTime enableApplyEndTime=LocalDateTime.ofInstant(enableApplyDateCourseEndTime.toInstant(),DateUtil.zoneId).toLocalTime();
|
|
|
+ boolean isInclude=false;
|
|
|
+ for (Object teacherWeekDayFreeTimeObject : teacherWeekDayFreeTimes) {
|
|
|
+ JSONObject teacherWeekDayFreeTime=JSONObject.parseObject(teacherWeekDayFreeTimeObject.toString());
|
|
|
+ LocalTime teacherFreeStartTime=LocalTime.parse(teacherWeekDayFreeTime.getString("startTime"),DateUtil.timeFormatter);
|
|
|
+ LocalTime teacherFreeEndTime=LocalTime.parse(teacherWeekDayFreeTime.getString("endTime"),DateUtil.timeFormatter);
|
|
|
+ if(enableApplyStartTime.isBefore(teacherFreeEndTime)
|
|
|
+ &&enableApplyEndTime.isAfter(teacherFreeStartTime)){
|
|
|
+ isInclude=true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!isInclude){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (dayOfWeek != holiday) {
|
|
|
allTeacherFreeDates.add(enableApplyDate);
|
|
|
}
|
|
|
}
|
|
@@ -1061,7 +1105,28 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}
|
|
|
calendar.setTime(enableApplyDate);
|
|
|
|
|
|
- if (calendar.get(Calendar.DAY_OF_WEEK) == holiday) {
|
|
|
+ int dayOfWeek=calendar.get(Calendar.DAY_OF_WEEK);
|
|
|
+ JSONArray teacherWeekDayFreeTimes = teacherFreeTimes.getJSONArray(String.valueOf(dayOfWeek));
|
|
|
+ if(Objects.nonNull(teacherWeekDayFreeTimes)){
|
|
|
+ LocalTime enableApplyStartTime=LocalDateTime.ofInstant(enableApplyDate.toInstant(),DateUtil.zoneId).toLocalTime();
|
|
|
+ LocalTime enableApplyEndTime=LocalDateTime.ofInstant(enableApplyDateCourseEndTime.toInstant(),DateUtil.zoneId).toLocalTime();
|
|
|
+ boolean isInclude=false;
|
|
|
+ for (Object teacherWeekDayFreeTimeObject : teacherWeekDayFreeTimes) {
|
|
|
+ JSONObject teacherWeekDayFreeTime=JSONObject.parseObject(teacherWeekDayFreeTimeObject.toString());
|
|
|
+ LocalTime teacherFreeStartTime=LocalTime.parse(teacherWeekDayFreeTime.getString("startTime"),DateUtil.timeFormatter);
|
|
|
+ LocalTime teacherFreeEndTime=LocalTime.parse(teacherWeekDayFreeTime.getString("endTime"),DateUtil.timeFormatter);
|
|
|
+ if(enableApplyStartTime.isBefore(teacherFreeEndTime)
|
|
|
+ &&enableApplyEndTime.isAfter(teacherFreeStartTime)){
|
|
|
+ isInclude=true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!isInclude){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (dayOfWeek == holiday) {
|
|
|
continue;
|
|
|
}
|
|
|
|