Browse Source

Merge remote-tracking branch 'origin/master'

周箭河 4 years ago
parent
commit
c4f2cb18e1

+ 37 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -210,6 +210,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
         Set<Long> courseScheduleIds = someDayAgoTeacherCourseSalaryNoSettlement.stream().map(CourseScheduleTeacherSalary::getCourseScheduleId).collect(Collectors.toSet());
 
+        Set<Integer> teacherIds = someDayAgoTeacherCourseSalaryNoSettlement.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toSet());
+        List<Teacher> teachers = teacherDao.findByTeacherIds(new ArrayList<>(teacherIds));
+        Map<Integer, Teacher> idTeacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, t -> t, (t1, t2) -> t1));
+
         //教师签到记录
         List<TeacherAttendance> allTeacherAttendances = teacherAttendanceDao.findByCourseSchedules(new ArrayList<>(courseScheduleIds));
         Map<String, List<TeacherAttendance>> teacherCourseAttendanceMap = allTeacherAttendances.stream().collect(Collectors.groupingBy(ta -> org.apache.commons.lang3.StringUtils.joinWith(":", ta.getCourseScheduleId(), ta.getTeacherId())));
@@ -220,6 +224,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
 
+            Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
+            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+                courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
+            }
+
             //扣除费用
             BigDecimal deductCost = new BigDecimal(0);
             List<String> deductReasons = new ArrayList<>();
@@ -289,6 +298,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         // 查询需要修改的课酬记录
         List<TeacherVipSalaryDto> teacherSalaryList = courseScheduleTeacherSalaryDao.queryOnlineCourseByGroupType(startDate, endDate);
 
+        Set<Integer> teacherIds = teacherSalaryList.stream().map(TeacherVipSalaryDto::getUserId).collect(Collectors.toSet());
+        List<Teacher> teachers = teacherDao.findByTeacherIds(new ArrayList<>(teacherIds));
+        Map<Integer, Teacher> idTeacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, t -> t, (t1, t2) -> t1));
+
         for (TeacherVipSalaryDto ts : teacherSalaryList) {
             // 修复兼职老师不管1v?和全职老师1vn的课酬为系统默认课酬(不管线上还是线下课)
             if (ts.getTeacherJobNature() != JobNatureEnum.FULL_TIME || !org.apache.commons.lang3.StringUtils.equalsIgnoreCase("1v1", ts.getVipGroupCategoryName())) {
@@ -330,6 +343,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //处理课酬信息
         someDayAgoTeacherCourseSalaryNoSettlement.forEach(courseScheduleTeacherSalary -> {
 
+            Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
+            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseScheduleTeacherSalary.getCourseSchedule().getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+                courseScheduleTeacherSalary.setExpectSalary(courseScheduleTeacherSalary.getExpectSalary().multiply(new BigDecimal("0.8")));
+            }
+
             //扣除费用
             BigDecimal deductCost = new BigDecimal(0);
             List<String> deductReasons = new ArrayList<>();
@@ -483,6 +501,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalaries = teacherDefaultMusicGroupSalaryDao.findByTeacher(allTeacherIds);
         Map<CourseSchedule.CourseScheduleType, List<TeacherDefaultMusicGroupSalary>> teacherDefaultMusicGroupSalariesGroupByCourseType = teacherDefaultMusicGroupSalaries.stream().collect(Collectors.groupingBy(TeacherDefaultMusicGroupSalary::getCourseScheduleType));
 
+        Set<Integer> teacherIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toSet());
+        List<Teacher> teachers = teacherDao.findByTeacherIds(new ArrayList<>(teacherIds));
+        Map<Integer, Teacher> idTeacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, t -> t, (t1, t2) -> t1));
+
         //计算课酬
         for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
             //当前课酬对应的课程信息
@@ -491,6 +513,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             //教师课酬
             BigDecimal teacherSalary = new BigDecimal(0);
 
+            Teacher teacher = idTeacherMap.get(courseScheduleTeacherSalary.getUserId());
+
             if(CourseSchedule.CourseScheduleType.MUSIC_NETWORK.equals(courseSchedule.getType())||CourseSchedule.CourseScheduleType.HIGH_ONLINE.equals(courseSchedule.getType())){
                 //根据课程类型获取对应的默认课酬设置列表
                 List<TeacherDefaultMusicGroupSalary> teacherDefaultMusicGroupSalariesWithCourseType = teacherDefaultMusicGroupSalariesGroupByCourseType.get(courseSchedule.getType());
@@ -518,6 +542,11 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     teacherSalary = BigDecimal.ZERO;
                 }
 
+                //如果上课日期在转正日期之前的按80%结算
+                if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+                    teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+                }
+
                 //扣除费用
                 BigDecimal deductCost = new BigDecimal(0);
                 List<String> deductReasons = new ArrayList<>();
@@ -616,6 +645,10 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 teacherSalary=courseScheduleTeacherSalary.getExpectSalary();
             }
 
+            if(Objects.isNull(teacher)||Objects.isNull(teacher.getFormalStaffDate())||courseSchedule.getClassDate().compareTo(teacher.getFormalStaffDate())<0){
+                teacherSalary = teacherSalary.multiply(new BigDecimal("0.8"));
+            }
+
             BigDecimal subsidy = courseSubsidyMap.get(courseSchedule.getSchoolId());
             if (Objects.isNull(subsidy)) {
                 subsidy = new BigDecimal(0);
@@ -684,6 +717,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     deductCost = deductCost.add(new BigDecimal(50));
                     deductReasons.add("签到经纬度异常扣除50");
                 }
+            }else{
+                signInInRange = true;
             }
 
             if(Objects.isNull(teacherAttendance)||Objects.isNull(teacherAttendance.getSignOutStatus())){
@@ -706,6 +741,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                     deductCost = deductCost.add(new BigDecimal(50));
                     deductReasons.add("签退经纬度异常,扣除50元");
                 }
+            }else{
+                signOutInRange = true;
             }
 
             if(!signInInRange&&!signOutInRange){

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

@@ -1927,7 +1927,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
         }
         pauseInfos.put("teaChModeSequence", teachModeSequence);
         pauseInfos.put("coursePriceInfo",coursePrices);
-        pauseInfos.put("days", days);
+//        pauseInfos.put("days", days);
 
         StudentPauseInfo  studentPauseInfo=new StudentPauseInfo();
 		studentPauseInfo.setUserId(studentId);