Browse Source

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

zouxuan 4 years ago
parent
commit
b036cdf859

+ 13 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/TeacherServeQueryInfo.java

@@ -1,6 +1,8 @@
 package com.ym.mec.biz.dal.page;
 
+import com.ym.mec.biz.dal.enums.JobNatureEnum;
 import com.ym.mec.common.page.QueryInfo;
+import io.swagger.annotations.ApiModelProperty;
 
 import java.util.Date;
 import java.util.List;
@@ -27,6 +29,17 @@ public class TeacherServeQueryInfo extends QueryInfo {
 
     private String sunday;
 
+    @ApiModelProperty(value = "工作性质(兼职 PART_JOB、全职FULL_JOB)", required = false)
+    private JobNatureEnum jobNature;
+
+    public JobNatureEnum getJobNature() {
+        return jobNature;
+    }
+
+    public void setJobNature(JobNatureEnum jobNature) {
+        this.jobNature = jobNature;
+    }
+
     public String getOrganId() {
         return organId;
     }

+ 37 - 56
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1212,6 +1212,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         Map<CourseScheduleType, BigDecimal> totalPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
         Map<CourseScheduleType, BigDecimal> totalOrignPriceMap = new HashMap<CourseSchedule.CourseScheduleType, BigDecimal>();
 
+        List<CourseSchedule> allNotStartCourses = new ArrayList<>();
+        Map<Integer, List<ClassGroupTeacherMapper>> ctm = new HashMap<>();
+
         BigDecimal unitPrice = new BigDecimal(0);
         BigDecimal originUnitPrice = new BigDecimal(0);
         CourseScheduleType courseType = null;
@@ -1276,63 +1279,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 courseScheduleStudentPayments.add(courseScheduleStudentPayment);
             }
 
-            //4、调整未上课课酬
-            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
-            if ((classGroup.getType().equals(HIGH_ONLINE) || classGroup.getType().equals(HIGH)) && courseScheduleList.size() > 0) {
-                Date nowDate = new Date();
-                List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
-                List<Long> courseScheduleIds = courseScheduleList.stream().map(CourseSchedule::getId).collect(Collectors.toList());
-                courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
-                for (CourseSchedule courseSchedule : courseScheduleList) {
-                    for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                        List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
-                        if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
-                            throw new BizException("请设置老师线上网管课课酬");
-                        }
-                        Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
-                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
-
-                        int studentNum = classGroup.getStudentNum() + 1;
-                        if (classGroup.getType().equals(HIGH_ONLINE) && studentNum > 5) {
-                            studentNum = 5;
-                        }
-
-                        BigDecimal salary = null;
-                        if (classGroup.getType().equals(HIGH_ONLINE)) {
-                            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
-                        } else if (classGroup.getType().equals(HIGH)) {
-                            MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
-                            TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
-                            if (Objects.isNull(teacherDefaultMusicGroupSalaryHigh)) {
-                                throw new BizException("请设置老师课酬");
-                            }
-                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
-                            if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
-                                salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
-                            }
-                            if (Objects.isNull(salary)) {
-                                throw new BizException("请设置老师课酬");
-                            }
-                            salary = salary.multiply(new BigDecimal(studentNum));
-                        }
-                        if (Objects.isNull(salary)) {
-                            throw new BizException("请设置老师课酬");
-                        }
+            if(!CollectionUtils.isEmpty(courseScheduleList)){
+                allNotStartCourses.addAll(courseScheduleList);
+            }
 
-                        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);
-                    }
-                }
-                courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroup.getId());
+            if(!CollectionUtils.isEmpty(classGroupTeachers)){
+                ctm.put(classGroup.getId(), classGroupTeachers);
             }
 
             // 5、加入班级群组
@@ -1361,6 +1314,34 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
             studentDao.updateStudentServiceTag(studentId, null, YesOrNoEnum.YES.getCode());
         }
 
+        //4、调整未上课课酬
+        if (allNotStartCourses.size() > 0) {
+            Date nowDate = new Date();
+            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+            List<Long> courseScheduleIds = allNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+            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);
+                }
+            }
+            courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+        }
+
         return true;
     }
 

+ 24 - 60
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupStudentMapperServiceImpl.java

@@ -566,88 +566,52 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
 
         List<Long> courseIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
 
+        if (!CollectionUtils.isEmpty(removeStudentIds)) {
+            courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
+            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
+                //5、学生退出班级群组
+                imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
+            }
+        }
+
+        if (!CollectionUtils.isEmpty(addStudentIds)) {
+            courseScheduleStudentPaymentService.createForMusicGroup(classGroup.getMusicGroupId(), classGroupNotStartCourse, new ArrayList<>(addStudentIds));
+            studentDao.updateStudentServiceTag(null, new ArrayList<>(addStudentIds), YesOrNoEnum.YES.getCode());
+            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
+                Map<Integer,String> userRoleMap = new HashMap<>();
+                for (Integer addStudentId : addStudentIds) {
+                    userRoleMap.put(addStudentId, "");
+                }
+                //5、添加进IM群组
+                imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
+            }
+        }
+
         //4、调整未上课课酬
-        List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId.intValue());
-        if ((classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) || classGroup.getType().equals(ClassGroupTypeEnum.HIGH)) && classGroupNotStartCourse.size() > 0) {
+        if(!CollectionUtils.isEmpty(classGroupNotStartCourse)){
+            List<ClassGroupTeacherMapper> classGroupTeachers = classGroupTeacherMapperService.getClassGroupTeachers(classGroupId.intValue());
             Date nowDate = new Date();
             List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
             List<Long> courseScheduleIds = classGroupNotStartCourse.stream().map(CourseSchedule::getId).collect(Collectors.toList());
             courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
             for (CourseSchedule courseSchedule : classGroupNotStartCourse) {
                 for (ClassGroupTeacherMapper classGroupTeacher : classGroupTeachers) {
-                    List<TeacherDefaultMusicGroupSalary> teacherSalaryList = teacherDefaultMusicGroupSalaryService.getTeacherSalaryByUserIdAndType(classGroupTeacher.getUserId(), null, null);
-                    if (teacherSalaryList == null || teacherSalaryList.size() == 0) {
-                        throw new BizException("请设置老师线上网管课课酬");
-                    }
-                    Map<CourseSchedule.CourseScheduleType, TeacherDefaultMusicGroupSalary> collect = teacherSalaryList.stream().collect(Collectors.toMap(TeacherDefaultMusicGroupSalary::getCourseScheduleType, teacherDefaultMusicGroupSalary -> teacherDefaultMusicGroupSalary));
-                    TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary = collect.get(CourseSchedule.CourseScheduleType.HIGH_ONLINE);
-
-                    int studentNum = studentIds.size();
-                    if (classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE) && studentNum > 5) {
-                        studentNum = 5;
-                    }
-
-                    BigDecimal salary = null;
-                    if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH_ONLINE)){
-                        if(studentNum>0){
-                            salary = JSON.parseObject(teacherDefaultMusicGroupSalary.getSalaryRuleJson()).getBigDecimal(studentNum + "");
-                        }else{
-                            salary = new BigDecimal("0");
-                        }
-                    }else if(classGroup.getType().equals(ClassGroupTypeEnum.HIGH)){
-                        TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalaryHigh = collect.get(CourseSchedule.CourseScheduleType.HIGH);
-                        if(Objects.isNull(teacherDefaultMusicGroupSalaryHigh)){
-                            throw new BizException("请设置老师课酬");
-                        }
-                        salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher30MinSalary();
-                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
-                            salary = TeachTypeEnum.BISHOP.equals(classGroupTeacher.getTeacherRole()) ? teacherDefaultMusicGroupSalaryHigh.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalaryHigh.getAssistantTeacher90MinSalary();
-                        }
-                        if(Objects.isNull(salary)){
-                            throw new BizException("请设置老师课酬");
-                        }
-                        salary = salary.multiply(new BigDecimal(studentNum));
-                    }
-                    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);
+                    courseScheduleTeacherSalaryService.createMusicGroupCourseTeacherSalary(musicGroup, courseSchedule, courseScheduleTeacherSalary);
                     courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
                 }
             }
             courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
         }
 
-        if (!CollectionUtils.isEmpty(removeStudentIds)) {
-            courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudents(courseIds, new ArrayList<>(removeStudentIds));
-            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
-                //5、学生退出班级群组
-                imGroupMemberService.quit(classGroup.getId().longValue(), new ArrayList<Integer>(addStudentIds));
-            }
-        }
-
-        if (!CollectionUtils.isEmpty(addStudentIds)) {
-            courseScheduleStudentPaymentService.createForMusicGroup(classGroup.getMusicGroupId(), classGroupNotStartCourse, new ArrayList<>(addStudentIds));
-            studentDao.updateStudentServiceTag(null, new ArrayList<>(addStudentIds), YesOrNoEnum.YES.getCode());
-            if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
-                Map<Integer,String> userRoleMap = new HashMap<>();
-                for (Integer addStudentId : addStudentIds) {
-                    userRoleMap.put(addStudentId, "");
-                }
-                //5、添加进IM群组
-                imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
-            }
-        }
         if(musicGroup.getStatus() == MusicGroupStatusEnum.PROGRESS){
             imUserFriendService.refreshClassImUserFriend(classGroup.getId());
         }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -204,11 +204,11 @@ public class ExportServiceImpl implements ExportService {
                         row.setSchoolName(studentRegistration.getSchoolName());
                         row.setCooperationOrganName(studentRegistration.getRemark());
                     }
-                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
                     row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {
-                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()));
                     row.setTransferFee(BigDecimal.ZERO);
                 }
             }
@@ -419,7 +419,7 @@ public class ExportServiceImpl implements ExportService {
                         row.setSchoolName(studentRegistration.getSchoolName());
                         row.setCooperationOrganName(studentRegistration.getRemark());
                     }
-                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
+                    row.setMusicGroupCourseFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(row.getTeachingFee()).subtract(row.getMaintenanceFee()).subtract(row.getMaintenanceProductFee()).subtract(feeByType.getOtherFee()).subtract(row.getLeaseFee()));
                 } else if (row.getType().equals(OrderTypeEnum.REPAIR)) {
                     row.setRepairFee(feeByType.getActualAmount().subtract(feeByType.getMusicalFee()).subtract(feeByType.getTeachingFee()).subtract(feeByType.getOtherFee()));
                 } else if (row.getType().equals(OrderTypeEnum.OUTORDER)) {

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/StudentExtracurricularExercisesSituationMapper.xml

@@ -520,6 +520,9 @@
 			<if test="operatorId!=null">
 				AND EXISTS (SELECT id_ FROM teacher_remind WHERE operator_id_=#{operatorId} AND teacher_id_=sees.teacher_id_ AND monday_ = sees.monday_ AND type_='SERVICE')
 			</if>
+			<if test="jobNature!=null">
+				AND tea.job_nature_=#{jobNature}
+			</if>
 		</where>
 	</sql>