Browse Source

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

zouxuan 4 năm trước cách đây
mục cha
commit
4e1b78d0b4

+ 34 - 40
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1320,29 +1320,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;
@@ -3923,15 +3929,12 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 if (aLong != null && aLong > 0) {
                     List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroup.getId());
                     if (courseScheduleList.size() > 0) {
-                        //调整未上课课酬
-                        List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
-                        Date nowDate = new Date();
                         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
                         for (CourseSchedule courseSchedule : courseScheduleList) {
                             if (courseSchedule.getType() == CourseScheduleType.HIGH_ONLINE || courseSchedule.getType() == CourseScheduleType.HIGH) {
-                                courseScheduleTeacherSalaryDao.batchDeleteByCourseAndTeacher(courseSchedule.getId(), null);
-                                for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
+                                List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries = courseScheduleTeacherSalaryDao.findByCourseSchedule(courseSchedule.getId());
+                                for (CourseScheduleTeacherSalary teacherSalary : courseScheduleTeacherSalaries) {
+                                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(teacherSalary.getUserId(), null, null);
                                     if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
                                         throw new BizException("请设置老师线上网管课课酬");
                                     }
@@ -3950,9 +3953,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                         if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
                                             throw new BizException("请设置老师课酬");
                                         }
-                                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
+                                        salary = TeachTypeEnum.BISHOP.equals(teacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
                                         if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
-                                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
+                                            salary = TeachTypeEnum.BISHOP.equals(teacherSalary.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
                                         }
                                         if (Objects.isNull(salary)) {
                                             throw new BizException("请设置老师课酬");
@@ -3962,22 +3965,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                                     if (Objects.isNull(salary)) {
                                         throw new BizException("请设置老师课酬");
                                     }
-                                    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.setExpectSalary(salary);
-                                    courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
-                                    courseScheduleTeacherSalary.setCreateTime(nowDate);
-                                    courseScheduleTeacherSalary.setUpdateTime(nowDate);
-                                    courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+                                    teacherSalary.setExpectSalary(salary);
+                                    courseScheduleTeacherSalaryList.add(teacherSalary);
                                 }
                             }
                         }
                         if (courseScheduleTeacherSalaryList.size() > 0) {
-                            courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+                            courseScheduleTeacherSalaryDao.batchUpdate(courseScheduleTeacherSalaryList);
                         }
                     }
                 }

+ 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

@@ -644,7 +644,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>