|  | @@ -396,22 +396,18 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  		List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = new ArrayList<CourseScheduleTeacherSalary>();
 | 
	
		
			
				|  |  |  		List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<CourseScheduleStudentPayment>();
 | 
	
		
			
				|  |  |  		List<TeacherAttendance> teacherAttendances = new ArrayList<TeacherAttendance>();
 | 
	
		
			
				|  |  | -		Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | +		Set<String> holidayDays = new HashSet<>();
 | 
	
		
			
				|  |  |  		if (isJumpHoliday) {
 | 
	
		
			
				|  |  | -			try {
 | 
	
		
			
				|  |  | -		        Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | -				holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -				holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -			} catch (Exception e) {
 | 
	
		
			
				|  |  | -				throw new BizException("获取节假日失败",e);
 | 
	
		
			
				|  |  | +			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
 | 
	
		
			
				|  |  | +			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
 | 
	
		
			
				|  |  | +				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  		calendar.setTime(startDate);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		int currentCourseTimes = 0;
 | 
	
		
			
				|  |  |  		while (coursesTimes != currentCourseTimes) {
 | 
	
		
			
				|  |  | -            if (holidayDays.containsKey(DateUtil.format(calendar.getTime(), "MMdd"))) {
 | 
	
		
			
				|  |  | +            if (holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
 | 
	
		
			
				|  |  |                  calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  |                  continue;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -1971,25 +1967,17 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |          calendar.setTime(courseCreateStartTime);
 | 
	
		
			
				|  |  |          List<Date> courseStartDates = new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | -        Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | +		Set<String> holidayDays = new HashSet<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        try {
 | 
	
		
			
				|  |  | -            if (vipGroupCourseAdjustInfo.isHoliday()) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        } catch (DecodeException e) {
 | 
	
		
			
				|  |  | -            LOGGER.error("节假日解析错误");
 | 
	
		
			
				|  |  | -            vipGroupCourseAdjustInfo.setHoliday(false);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +		if (vipGroupCourseAdjustInfo.isHoliday()) {
 | 
	
		
			
				|  |  | +			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
 | 
	
		
			
				|  |  | +			if(StringUtils.isNotBlank(holidaySetting.getParanValue())){
 | 
	
		
			
				|  |  | +				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          while (true) {
 | 
	
		
			
				|  |  | -            if (vipGroupCourseAdjustInfo.isHoliday() && !holiday.containsKey(calendar.get(Calendar.YEAR))) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.containsKey(DateUtil.format(calendar.getTime(), "MMdd"))) {
 | 
	
		
			
				|  |  | +            if (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
 | 
	
		
			
				|  |  |                  calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  |                  continue;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -2133,8 +2121,14 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |          calendar.setTime(coursePostPoneInfo.getRecoveryDate());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | -        Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | +		Set<String> holidayDays = new HashSet<>();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		if (coursePostPoneInfo.isSkipHoliday()) {
 | 
	
		
			
				|  |  | +			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
 | 
	
		
			
				|  |  | +			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
 | 
	
		
			
				|  |  | +				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          classGroupCourseSchedulesWithDate.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -2151,17 +2145,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              calendar.setTime(courseSchedule.getClassDate());
 | 
	
		
			
				|  |  |              calendar.add(Calendar.DATE, betweenDays);
 | 
	
		
			
				|  |  | -            try {
 | 
	
		
			
				|  |  | -                if (coursePostPoneInfo.isSkipHoliday() && !holiday.containsKey(calendar.get(Calendar.YEAR))) {
 | 
	
		
			
				|  |  | -                    holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                    holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                }
 | 
	
		
			
				|  |  | -            } catch (Exception e) {
 | 
	
		
			
				|  |  | -                LOGGER.error("节假日解析错误");
 | 
	
		
			
				|  |  | -                coursePostPoneInfo.setSkipHoliday(false);
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -            if (coursePostPoneInfo.isSkipHoliday() && holidayDays.containsKey(DateUtil.format(calendar.getTime(), "MMdd"))) {
 | 
	
		
			
				|  |  | +            if (coursePostPoneInfo.isSkipHoliday() && holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
 | 
	
		
			
				|  |  |                  betweenDays=betweenDays+7;
 | 
	
		
			
				|  |  |                  calendar.add(Calendar.DATE, betweenDays);
 | 
	
		
			
				|  |  |                  i=i-1;
 | 
	
	
		
			
				|  | @@ -2219,27 +2204,19 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |          calendar.setTime(courseCreateStartTime);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | -        Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | +		Set<String> holidayDays = new HashSet<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        try {
 | 
	
		
			
				|  |  | -            if (vipGroupCourseAdjustInfo.isHoliday()) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        } catch (DecodeException e) {
 | 
	
		
			
				|  |  | -            LOGGER.error("节假日解析错误");
 | 
	
		
			
				|  |  | -            vipGroupCourseAdjustInfo.setHoliday(false);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +		if (vipGroupCourseAdjustInfo.isHoliday()) {
 | 
	
		
			
				|  |  | +			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
 | 
	
		
			
				|  |  | +			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
 | 
	
		
			
				|  |  | +				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<CourseSchedule> courseSchedules = new ArrayList<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          while (true) {
 | 
	
		
			
				|  |  | -            if (vipGroupCourseAdjustInfo.isHoliday() && !holiday.containsKey(calendar.get(Calendar.YEAR))) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.containsKey(DateUtil.format(calendar.getTime(), "MMdd"))) {
 | 
	
		
			
				|  |  | +            if (vipGroupCourseAdjustInfo.isHoliday() && holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
 | 
	
		
			
				|  |  |                  calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  |                  continue;
 | 
	
		
			
				|  |  |              }
 | 
	
	
		
			
				|  | @@ -3604,31 +3581,23 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 | 
	
		
			
				|  |  |          Calendar calendar = Calendar.getInstance();
 | 
	
		
			
				|  |  |          calendar.setTime(courseGenerateInfo.getCourseCreateStartTime());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        Map<String, Integer> holidayDays = new HashMap<>();
 | 
	
		
			
				|  |  | -        Map<Integer, Map<String, Integer>> holiday = new HashMap<>();
 | 
	
		
			
				|  |  | +        Set<String> holidayDays = new HashSet<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        try {
 | 
	
		
			
				|  |  | -            if (courseGenerateInfo.isSkipHoliday()) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -        } catch (DecodeException e) {
 | 
	
		
			
				|  |  | -            LOGGER.error("节假日解析错误");
 | 
	
		
			
				|  |  | -            courseGenerateInfo.setSkipHoliday(false);
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | +		if (courseGenerateInfo.isSkipHoliday()) {
 | 
	
		
			
				|  |  | +			SysConfig holidaySetting = sysConfigService.findByParamName(SysConfigService.HOLIDAY_SETTING);
 | 
	
		
			
				|  |  | +			if(Objects.nonNull(holidaySetting)&&StringUtils.isNotBlank(holidaySetting.getParanValue())){
 | 
	
		
			
				|  |  | +				holidayDays = new HashSet<>(JSON.parseArray(holidaySetting.getParanValue(), String.class));
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          List<CourseSchedule> courseSchedules = new ArrayList<>();
 | 
	
		
			
				|  |  |          Date now=new Date();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          while (true) {
 | 
	
		
			
				|  |  | -            if (courseGenerateInfo.isSkipHoliday() && !holiday.containsKey(calendar.get(Calendar.YEAR))) {
 | 
	
		
			
				|  |  | -                holiday = jiaRiFeignService.query(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -                holidayDays = holiday.get(calendar.get(Calendar.YEAR));
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | -            if (courseGenerateInfo.isSkipHoliday() && holidayDays.containsKey(DateUtil.format(calendar.getTime(), "MMdd"))) {
 | 
	
		
			
				|  |  | -                calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  | -                continue;
 | 
	
		
			
				|  |  | -            }
 | 
	
		
			
				|  |  | +			if (courseGenerateInfo.isSkipHoliday() && holidayDays.contains(DateUtil.format(calendar.getTime(), "yyyy-MM-dd"))) {
 | 
	
		
			
				|  |  | +				calendar.add(Calendar.DATE, 1);
 | 
	
		
			
				|  |  | +				continue;
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |              int i = calendar.get(Calendar.DAY_OF_WEEK);
 | 
	
		
			
				|  |  |              if (i == 1) {
 | 
	
		
			
				|  |  |                  i = 7;
 |