|
@@ -888,6 +888,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}else{
|
|
|
disableApplyWeekDay.add(Calendar.SUNDAY);
|
|
|
}
|
|
|
+ }else{
|
|
|
+ result.put("teacherFreeDays", new ArrayList<>());
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
Date now = new Date();
|
|
@@ -1683,6 +1686,11 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
if (Objects.nonNull(teacherFreeTime.getTotalTimes())) {
|
|
|
maxTeacherCourses = teacherFreeTime.getTotalTimes();
|
|
|
}
|
|
|
+ }else{
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ result.put("status", "TEACHER_PRACTICE_REPEAT");
|
|
|
+ result.put("info", "抱歉啦,当前所选时段组合,「" + teacher.getRealName() + "」老师已被预约,请重新选择时段或更换老师后重试。");
|
|
|
+ return result;
|
|
|
}
|
|
|
|
|
|
Date monday1 = DateUtil.getWeekDayWithDate(allCourseDates.get(0), Calendar.MONDAY);
|
|
@@ -2193,9 +2201,20 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
@Override
|
|
|
public Map<Integer, List<String>> getEnableApplyDatesWithWeek() {
|
|
|
Map<Integer, List<String>> result = new HashMap<>();
|
|
|
+ SysConfig practiceApplyStartTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_START_TIME);
|
|
|
+ SysConfig practiceApplyEndTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_END_TIME);
|
|
|
+ SysConfig practiceApplyIntervalTimeConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_APPLY_INTERVAL_TIME);
|
|
|
+ Integer practiceApplyIntervalMinutes = practiceApplyIntervalTimeConfig.getParanValue(Integer.class);
|
|
|
+ LocalTime dayStartTime=LocalTime.parse(practiceApplyStartTimeConfig.getParanValue(),DateUtil.timeFormatter);
|
|
|
+ LocalTime dayEndTime=LocalTime.parse(practiceApplyEndTimeConfig.getParanValue(),DateUtil.timeFormatter);
|
|
|
+ List<String> dayApplyTimes=new ArrayList<>();
|
|
|
+ while (dayEndTime.isAfter(dayStartTime)){
|
|
|
+ dayApplyTimes.add(dayStartTime.format(DateUtil.timeFormatter));
|
|
|
+ dayStartTime=dayStartTime.plusMinutes(practiceApplyIntervalMinutes);
|
|
|
+ }
|
|
|
for (int i = 1; i <= 7; i++) {
|
|
|
List<String> tempTimes = new ArrayList<>();
|
|
|
- for (String applyDayTime : applyDayTimes) {
|
|
|
+ for (String applyDayTime : dayApplyTimes) {
|
|
|
tempTimes.add(applyDayTime);
|
|
|
}
|
|
|
result.put(i, tempTimes);
|
|
@@ -2220,6 +2239,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
throw new BizException("教师不存在");
|
|
|
}
|
|
|
Map result = new HashMap();
|
|
|
+ Set<Integer> disableApplyWeekDay = new HashSet<>();
|
|
|
|
|
|
SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
|
|
|
Integer practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
|
|
@@ -2242,29 +2262,40 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
if (Objects.nonNull(teacherFreeTime.getHoliday())) {
|
|
|
holiday = teacherFreeTime.getHoliday();
|
|
|
}
|
|
|
- if (Objects.nonNull(teacherFreeTime.getHoliday())) {
|
|
|
- holiday = DateUtil.normalWeekNumCalendarWeekNumMap.get(teacherFreeTime.getHoliday());
|
|
|
- }
|
|
|
- if(Objects.nonNull(teacherFreeTime.getMonday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.MONDAY), JSON.parseArray(teacherFreeTime.getMonday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getMonday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.MONDAY.getValue()), JSON.parseArray(teacherFreeTime.getMonday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.MONDAY.getValue());
|
|
|
}
|
|
|
- if(Objects.nonNull(teacherFreeTime.getTuesday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.TUESDAY), JSON.parseArray(teacherFreeTime.getTuesday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getTuesday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.TUESDAY.getValue()), JSON.parseArray(teacherFreeTime.getTuesday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.TUESDAY.getValue());
|
|
|
}
|
|
|
- if(Objects.nonNull(teacherFreeTime.getWednesday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.WEDNESDAY), JSON.parseArray(teacherFreeTime.getWednesday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getWednesday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.WEDNESDAY.getValue()), JSON.parseArray(teacherFreeTime.getWednesday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.WEDNESDAY.getValue());
|
|
|
}
|
|
|
- if(Objects.nonNull(teacherFreeTime.getThursday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.THURSDAY), JSON.parseArray(teacherFreeTime.getThursday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getThursday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.THURSDAY.getValue()), JSON.parseArray(teacherFreeTime.getThursday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.THURSDAY.getValue());
|
|
|
}
|
|
|
- if(Objects.nonNull(teacherFreeTime.getFriday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.FRIDAY), JSON.parseArray(teacherFreeTime.getFriday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getFriday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.FRIDAY.getValue()), JSON.parseArray(teacherFreeTime.getFriday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.FRIDAY.getValue());
|
|
|
}
|
|
|
- if(Objects.nonNull(teacherFreeTime.getSaturday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.SATURDAY), JSON.parseArray(teacherFreeTime.getSaturday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getSaturday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.SATURDAY.getValue()), JSON.parseArray(teacherFreeTime.getSaturday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.SATURDAY.getValue());
|
|
|
}
|
|
|
- if(Objects.nonNull(teacherFreeTime.getSunday())){
|
|
|
- teacherFreeTimes.put(String.valueOf(Calendar.SUNDAY), JSON.parseArray(teacherFreeTime.getSunday()));
|
|
|
+ if(StringUtils.isNotBlank(teacherFreeTime.getSunday())){
|
|
|
+ teacherFreeTimes.put(String.valueOf(DayOfWeek.SUNDAY.getValue()), JSON.parseArray(teacherFreeTime.getSunday()));
|
|
|
+ }else{
|
|
|
+ disableApplyWeekDay.add(DayOfWeek.SUNDAY.getValue());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2346,7 +2377,9 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- for (Integer weekNum : weekNumApplyTimesMap.keySet()) {
|
|
|
+ Iterator<Integer> weekNumApplyTimeIterator = weekNumApplyTimesMap.keySet().iterator();
|
|
|
+ while (weekNumApplyTimeIterator.hasNext()) {
|
|
|
+ Integer weekNum=weekNumApplyTimeIterator.next();
|
|
|
JSONArray teacherWeekDayFreeTimes = teacherFreeTimes.getJSONArray(String.valueOf(weekNum));
|
|
|
if(Objects.nonNull(teacherWeekDayFreeTimes)){
|
|
|
List<String> applyTimeStrs = weekNumApplyTimesMap.get(weekNum);
|
|
@@ -2359,8 +2392,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
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)){
|
|
|
+ if(enableApplyEndTime.compareTo(teacherFreeEndTime)<=0
|
|
|
+ &&enableApplyStartTime.compareTo(teacherFreeStartTime)>=0){
|
|
|
isInclude=true;
|
|
|
break;
|
|
|
}
|
|
@@ -2371,7 +2404,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
}
|
|
|
weekNumApplyTimesMap.put(weekNum,applyTimeStrs);
|
|
|
}else{
|
|
|
- weekNumApplyTimesMap.remove(weekNum);
|
|
|
+ weekNumApplyTimeIterator.remove();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -2531,19 +2564,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
|
|
|
List<CourseSchedule> practiceCourses = createPracticeCourses(practiceGroupBuyParams, practiceCourseMinutes);
|
|
|
|
|
|
- try {
|
|
|
- courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
|
|
|
- } catch (Exception e) {
|
|
|
- return BaseController.failed(HttpStatus.FOUND, "课程冲突");
|
|
|
- }
|
|
|
-
|
|
|
JSONObject drillTimesObject=new JSONObject();
|
|
|
for (PracticeDrillTimeDto drillTime : practiceGroupBuyParams.getDrillTimes()) {
|
|
|
drillTimesObject.put(String.valueOf(drillTime.getWeekNum()),drillTime.getTimeStr());
|
|
|
}
|
|
|
|
|
|
PracticeGroupSellPrice practiceGroupSellPrice = practiceGroupSellPriceDao.get(sysUser.getOrganId());
|
|
|
- BigDecimal oneMonthPrice=new BigDecimal(0);
|
|
|
+ BigDecimal oneMonthPrice;
|
|
|
if(practiceBuyActivityExpireDate.after(now)){
|
|
|
oneMonthPrice=practiceGroupBuyParams.getDrillTimesOnWeek()==1?practiceGroupSellPrice.getOnceActivityPrice():practiceGroupSellPrice.getTwiceActivityPrice();
|
|
|
}else{
|
|
@@ -2661,6 +2688,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
|
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
|
|
|
+ try {
|
|
|
+ courseScheduleService.checkNewCourseSchedules(practiceCourses,false);
|
|
|
+ } catch (Exception e) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return BaseController.failed(HttpStatus.FOUND, "课程冲突");
|
|
|
+ }
|
|
|
+
|
|
|
StudentPaymentOrder studentPaymentOrder=new StudentPaymentOrder();
|
|
|
studentPaymentOrder.setUserId(practiceGroupBuyParams.getStudentId());
|
|
|
studentPaymentOrder.setGroupType(GroupType.PRACTICE);
|