Преглед изворни кода

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan пре 5 година
родитељ
комит
c35d78c98a

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/PracticeGroupDao.java

@@ -22,12 +22,12 @@ public interface PracticeGroupDao extends com.ym.mec.common.dal.BaseDAO<Long, Pr
                                                             @Param("endDate") Date endDate);
 
     /**
-     * @describe 获取用户的申请记录
+     * @describe 统计用户的申请记录
      * @author Joburgess
      * @date 2020/2/3
      * @param userId:
      * @return java.util.List<com.ym.mec.biz.dal.entity.PracticeGroup>
      */
-    List<PracticeGroup> getUserPracticeApplyRecord(@Param("userId") Integer userId);
+    int countUserPracticeApplyRecord(@Param("userId") Integer userId);
 	
 }

+ 43 - 50
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -107,45 +107,32 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         Date secondClassEndTime = DateUtil.addMinutes(practiceGroup.getSecondCourseTime(), practiceCourseMinutes);
 
         Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
-        for (Map.Entry<Integer, List<CourseSchedule>> integerListEntry : teacherCoursesMap.entrySet()) {
-            List<CourseSchedule> teacherCourses = integerListEntry.getValue();
+        for (Integer teacherId : teacherIds) {
+            List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
+            if(CollectionUtils.isEmpty(teacherCourses)){
+                includeTeacherIds.add(teacherId);
+                continue;
+            }
             teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
-            boolean enableCreateFirstCourse=false;
-            boolean enableCreateSecondCourse=false;
+            boolean enableCreateFirstCourse=true;
+            boolean enableCreateSecondCourse=true;
             for (int i=0;i<teacherCourses.size()-1;i++) {
                 CourseSchedule preCourseSchedule = teacherCourses.get(i);
                 CourseSchedule backCourseSchedule = teacherCourses.get(i+1);
-                if(i==0){
-                    if (!firstClassEndTime.after(preCourseSchedule.getStartClassTime())){
-                        enableCreateFirstCourse=true;
-                    }
-                    if (!secondClassEndTime.after(preCourseSchedule.getStartClassTime())){
-                        enableCreateSecondCourse=true;
-                    }
-                }
-                if (i==teacherCourses.size()-1){
-                    if(!practiceGroup.getFirstCourseTime().before(backCourseSchedule.getEndClassTime())){
-                        enableCreateFirstCourse=true;
-                    }
-                    if(!practiceGroup.getSecondCourseTime().before(backCourseSchedule.getEndClassTime())){
-                        enableCreateSecondCourse=true;
-                    }
-                }
 
-                if(!practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
-                        &&!firstClassEndTime.after(backCourseSchedule.getStartClassTime())){
-                    enableCreateFirstCourse=true;
+                if(practiceGroup.getFirstCourseTime().before(preCourseSchedule.getEndClassTime())
+                        &&firstClassEndTime.after(backCourseSchedule.getStartClassTime())){
+                    enableCreateFirstCourse=false;
                 }
 
-                if(!practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
-                        &&!secondClassEndTime.after(backCourseSchedule.getStartClassTime())){
-                    enableCreateFirstCourse=true;
-                }
-                if (enableCreateFirstCourse&&enableCreateSecondCourse){
-                    includeTeacherIds.add(integerListEntry.getKey());
-                    break;
+                if(practiceGroup.getSecondCourseTime().before(preCourseSchedule.getEndClassTime())
+                        &&secondClassEndTime.after(backCourseSchedule.getStartClassTime())){
+                    enableCreateSecondCourse=false;
                 }
             }
+            if (enableCreateFirstCourse&&enableCreateSecondCourse){
+                includeTeacherIds.add(teacherId);
+            }
         }
         if(CollectionUtils.isEmpty(includeTeacherIds)){
             throw new BizException("未找到符合条件的教师");
@@ -166,12 +153,17 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             }
         }
 
-        List<Map<Integer, Integer>> teacherCourseNumMaps = courseScheduleTeacherSalaryDao.countTeacherCourses(teacherIds, GroupType.PRACTICE);
-        Map<Integer,Integer> teacherCourseNumMap=MapUtil.convertIntegerMap(teacherCourseNumMaps);
-        Map<Integer,Integer> temp=new HashMap<>();
+        List<Map<Integer, Integer>> teacherCourseNumMaps = courseScheduleTeacherSalaryDao.countTeacherCourses(includeTeacherIds, GroupType.PRACTICE);
+        HashMap<Integer,Integer> teacherCourseNumMap= (HashMap<Integer, Integer>) MapUtil.convertIntegerMap(teacherCourseNumMaps);
+        for (Integer includeTeacherId : includeTeacherIds) {
+            if(!teacherCourseNumMap.containsKey(includeTeacherId)){
+                teacherCourseNumMap.put(includeTeacherId,0);
+            }
+        }
+        List<Integer> temp=new ArrayList<>();
         teacherCourseNumMap.entrySet().stream()
-                .sorted()
-                .forEach(result->temp.put(result.getKey(),result.getValue()));
+                .sorted((r1,r2)->r1.getValue().compareTo(r2.getValue()))
+                .forEach(result->temp.add(result.getKey()));
         return temp.get(0);
     }
 
@@ -243,11 +235,15 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
         Map<Integer, List<CourseSchedule>> teacherCoursesMap = allTeacherCourses.stream().collect(Collectors.groupingBy(CourseSchedule::getActualTeacherId));
         Set<Date> allTeacherFreeDates=new HashSet<>();
-        for (Map.Entry<Integer, List<CourseSchedule>> integerListEntry : teacherCoursesMap.entrySet()) {
-            if(excludeTeacherIds.contains(integerListEntry.getKey())){
+        for (Integer teacherId : teacherIds) {
+            if(excludeTeacherIds.contains(teacherId)){
                 continue;
             }
-            List<CourseSchedule> teacherCourses = integerListEntry.getValue();
+            List<CourseSchedule> teacherCourses = teacherCoursesMap.get(teacherId);
+            if(CollectionUtils.isEmpty(teacherCourses)){
+                allTeacherFreeDates=new HashSet<>(enableApplyDates);
+                break;
+            }
             teacherCourses.sort(Comparator.comparing(CourseSchedule::getStartClassTime));
             for (int i=0;i<teacherCourses.size()-1;i++) {
                 CourseSchedule preCourseSchedule = teacherCourses.get(i);
@@ -270,12 +266,15 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
                 for (Date enableApplyDate : enableApplyDates) {
                     Date enableApplyDateCourseEndTime = DateUtil.addMinutes(enableApplyDate, practiceCourseMinutes);
                     if(!enableApplyDate.before(preCourseSchedule.getEndClassTime())
-                        &&!enableApplyDateCourseEndTime.after(backCourseSchedule.getStartClassTime())){
+                            &&!enableApplyDateCourseEndTime.after(backCourseSchedule.getStartClassTime())){
                         allTeacherFreeDates.add(enableApplyDate);
                     }
                 }
             }
         }
+        for (Map.Entry<Integer, List<CourseSchedule>> integerListEntry : teacherCoursesMap.entrySet()) {
+
+        }
         result.put("teacherFreeDates",allTeacherFreeDates);
         return result;
     }
@@ -353,14 +352,11 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         allCourseDates.sort(Comparator.comparing(Date::getTime));
 
         Integer applyTimes = 0;
-        List<PracticeGroup> userPracticeCoursesWithDateRange = practiceGroupDao.getUserPracticeApplyRecord(practiceGroup.getStudentId());
-        if (!CollectionUtils.isEmpty(userPracticeCoursesWithDateRange)) {
-            applyTimes = userPracticeCoursesWithDateRange.size();
-        }
+        applyTimes = practiceGroupDao.countUserPracticeApplyRecord(practiceGroup.getStudentId());
 
-//        if (applyTimes >= 1) {
-//            throw new BizException("您的预约次数已经达到限制");
-//        }
+        if (applyTimes >= 1) {
+            throw new BizException("您的预约次数已经达到限制");
+        }
         applyTimes += 1;
 
         practiceGroup.setCoursesStartDate(allCourseDates.get(0));
@@ -434,7 +430,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         classGroupStudentMapper.setGroupType(GroupType.PRACTICE);
         classGroupStudentMapperDao.insert(classGroupStudentMapper);
 
-        List<CourseSchedule> courseSchedules=new ArrayList<>();
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries=new ArrayList<>();
         List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
         List<TeacherAttendance> teacherAttendances=new ArrayList<>();
@@ -456,7 +451,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             courseSchedule.setType(CourseSchedule.CourseScheduleType.PRACTICE);
             courseSchedule.setGroupType(GroupType.PRACTICE);
             courseSchedule.setName(practiceGroup.getName());
-            courseSchedules.add(courseSchedule);
+            courseScheduleDao.insert(courseSchedule);
 
             //课程与老师薪水表
             CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
@@ -493,8 +488,6 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             teacherAttendance.setCreateTime(now);
             teacherAttendances.add(teacherAttendance);
         }
-
-        courseScheduleDao.batchAddCourseSchedules(courseSchedules);
         courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
         courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
         teacherAttendanceDao.batchInsert(teacherAttendances);

+ 1 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -1239,6 +1239,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 
 		int successOrderNum = studentPaymentOrderDao.countUserBuyVipGroupSuccessOrder(userId, vipGroupId.intValue());
 		if(successOrderNum>0){
+			studentPaymentOrderDao.update(order);
 			return;
 		}
 

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

@@ -458,7 +458,7 @@
             course_schedule cs
             LEFT JOIN class_group cg ON cs.class_group_id_ = cg.id_
             LEFT JOIN sys_user su ON cs.actual_teacher_id_=su.id_
-            LEFT JOIN teacher_attendance ta ON cs.id_=ta.class_group_id_ AND ta.teacher_id_=cs.actual_teacher_id_
+            LEFT JOIN teacher_attendance ta ON cs.id_=ta.course_schedule_id_ AND ta.teacher_id_=cs.actual_teacher_id_
             LEFT JOIN school s ON cs.schoole_id_=s.id_
         WHERE
         (cs.del_flag_ != 1 OR cs.del_flag_ IS NULL)

+ 2 - 2
mec-biz/src/main/resources/config/mybatis/PracticeGroupMapper.xml

@@ -54,7 +54,7 @@
     <select id="getUserPracticeCoursesWithDateRange" resultMap="PracticeGroup">
 		SELECT * FROM practice_group WHERE user_id_=#{userId} AND (courses_start_date_ BETWEEN DATE_FORMAT(#{startDate},'%Y-%m-%d') AND DATE_FORMAT(#{endDate},'%Y-%m-%d'))
 	</select>
-    <select id="getUserPracticeApplyRecord" resultMap="PracticeGroup">
-		SELECT * FROM practice_group WHERE user_id_=#{userId}
+    <select id="countUserPracticeApplyRecord" resultType="int">
+		SELECT COUNT(*) FROM class_group_student_mapper WHERE group_type_='PRACTICE' AND user_id_=#{userId}
     </select>
 </mapper>