Selaa lähdekoodia

Merge remote-tracking branch 'origin/online1' into online1

zouxuan 4 vuotta sitten
vanhempi
commit
1b65fcd0d0

+ 26 - 20
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1317,29 +1317,35 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         //4、调整未上课课酬
         if (allNotStartCourses.size() > 0) {
             Date nowDate = new Date();
-            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+//            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
             List<Long> courseScheduleIds = allNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+            List<CourseScheduleTeacherSalary> oldCourseSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-            for (CourseSchedule courseSchedule : allNotStartCourses) {
-                if(!ctm.containsKey(courseSchedule.getClassGroupId())){
-                    continue;
-                }
-                List<ClassGroupTeacherMapper> classGroupTeachers = ctm.get(courseSchedule.getClassGroupId());
-                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
-                    courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
-                    courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
-                    courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
-                    courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
-                    courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
-                    courseScheduleTeacherSalary.setClassGroupId(courseSchedule.getClassGroupId());
-                    courseScheduleTeacherSalary.setCreateTime(nowDate);
-                    courseScheduleTeacherSalary.setUpdateTime(nowDate);
-                    courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(null, courseSchedule, courseScheduleTeacherSalary);
-                    courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
-                }
+            Map<Long, CourseSchedule> idCourseMap = allNotStartCourses.stream().collect(Collectors.toMap(CourseSchedule::getId, c -> c, (c1, c2) -> c1));
+            for (CourseScheduleTeacherSalary oldCourseSalary : oldCourseSalaries) {
+                oldCourseSalary.setId(null);
+                courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(null, idCourseMap.get(oldCourseSalary.getCourseScheduleId()), oldCourseSalary);
             }
-            courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+//            for (CourseSchedule courseSchedule : allNotStartCourses) {
+//                if(!ctm.containsKey(courseSchedule.getClassGroupId())){
+//                    continue;
+//                }
+//                List<ClassGroupTeacherMapper> classGroupTeachers = ctm.get(courseSchedule.getClassGroupId());
+//                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
+//                    CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+//                    courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+//                    courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
+//                    courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
+//                    courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
+//                    courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
+//                    courseScheduleTeacherSalary.setClassGroupId(courseSchedule.getClassGroupId());
+//                    courseScheduleTeacherSalary.setCreateTime(nowDate);
+//                    courseScheduleTeacherSalary.setUpdateTime(nowDate);
+//                    courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(null, courseSchedule, courseScheduleTeacherSalary);
+//                    courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+//                }
+//            }
+            courseScheduleTeacherSalaryService.batchInsert(oldCourseSalaries);
         }
 
         return true;

+ 26 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -591,25 +591,35 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         if(!CollectionUtils.isEmpty(classGroupNotStartCourse)){
             List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId.intValue());
             Date nowDate = new Date();
-            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+//            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
             List<Long> courseScheduleIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+
+            List<CourseScheduleTeacherSalary> oldCourseSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedules(courseScheduleIds);
+
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-            for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
-                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
-                    courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
-                    courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
-                    courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
-                    courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
-                    courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
-                    courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
-                    courseScheduleTeacherSalary.setCreateTime(nowDate);
-                    courseScheduleTeacherSalary.setUpdateTime(nowDate);
-                    courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(musicGroup, courseSchedule, courseScheduleTeacherSalary);
-                    courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
-                }
+
+            Map<Long, CourseSchedule> idCourseMap = classGroupNotStartCourse.stream().collect(Collectors.toMap(CourseSchedule::getId, c -> c, (c1, c2) -> c1));
+            for (CourseScheduleTeacherSalary oldCourseSalary : oldCourseSalaries) {
+                oldCourseSalary.setId(null);
+                courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(null, idCourseMap.get(oldCourseSalary.getCourseScheduleId()), oldCourseSalary);
             }
-            courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+
+//            for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
+//                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
+//                    CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+//                    courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
+//                    courseScheduleTeacherSalary.setGroupType(courseSchedule.getGroupType());
+//                    courseScheduleTeacherSalary.setMusicGroupId(courseSchedule.getMusicGroupId());
+//                    courseScheduleTeacherSalary.setTeacherRole(classGroupTeacher.getTeacherRole());
+//                    courseScheduleTeacherSalary.setUserId(classGroupTeacher.getUserId());
+//                    courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
+//                    courseScheduleTeacherSalary.setCreateTime(nowDate);
+//                    courseScheduleTeacherSalary.setUpdateTime(nowDate);
+//                    courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(musicGroup, courseSchedule, courseScheduleTeacherSalary);
+//                    courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+//                }
+//            }
+            courseScheduleTeacherSalaryService.batchInsert(oldCourseSalaries);
         }
 
         if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){

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

@@ -651,7 +651,7 @@
         </if>
         GROUP BY cg.id_
         HAVING
-        COUNT(CASE WHEN cgsm.status_ = 'NORMAL' THEN 1 ELSE NULL END) &lt; 3
+        COUNT(DISTINCT CASE WHEN cgsm.status_ = 'NORMAL' THEN cgsm.user_id_ ELSE NULL END) &lt; 3
     </select>
 
     <select id="getStudentClassGroupWithTeacher" resultMap="com.ym.mec.biz.dal.dao.ClassGroupDao.ClassGroup">

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

@@ -641,7 +641,7 @@
 		</if>
 		GROUP BY cg.id_
 		HAVING
-		COUNT(CASE WHEN cgsm.status_ = 'NORMAL' THEN 1 ELSE NULL END) &lt; 3
+		COUNT(DISTINCT CASE WHEN cgsm.status_ = 'NORMAL' THEN cgsm.user_id_ ELSE NULL END) &lt; 3
 		) t
 	</select>