|  | @@ -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;
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |  
 |