Преглед на файлове

1、陪练课调整
2、付费陪练课

Joburgess преди 5 години
родител
ревизия
06e095d6b5

+ 67 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

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

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1111,7 +1111,7 @@
     <update id="updateGroupCourseLock">
         UPDATE course_schedule SET is_lock_ = #{isLock},update_time_ = NOW()
         WHERE music_group_id_ = #{groupId}
-        AND group_type_ = #{groupType,type} AND NOW() &lt; CONCAT(class_date_," ",start_class_time_);
+        AND group_type_ = #{groupType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler} AND NOW() &lt; CONCAT(class_date_," ",start_class_time_);
     </update>
 
     <select id="queryNoSignInListByBeforeMinutes" resultMap="CourseSchedule">