Переглянути джерело

feat:线下课考勤调整

Joburgess 4 роки тому
батько
коміт
f1e6a8eedb

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

@@ -89,6 +89,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
     private TeacherCourseRewardDao teacherCourseRewardDao;
     @Autowired
     private MusicGroupDao musicGroupDao;
+    @Autowired
+    private TeacherDefaultPracticeGroupSalaryDao teacherDefaultPracticeGroupSalaryDao;
 
     private static final Logger LOGGER = LoggerFactory
             .getLogger(CourseScheduleTeacherSalaryServiceImpl.class);
@@ -1125,13 +1127,16 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         }
         switch (courseSchedule.getGroupType()){
             case MUSIC:
-                createMusicGroupCourseTeacerSalary(courseSchedule, courseScheduleTeacherSalaries);
+                //生成乐团课课酬
+                createMusicGroupCourseTeacherSalary(courseSchedule, courseScheduleTeacherSalaries);
                 break;
             case VIP:
                 //生成vip课课酬
+                createVipGroupCourseTeacherSalary(courseSchedule, courseScheduleTeacherSalaries);
                 break;
             case PRACTICE:
                 //生成网管课课酬
+                createPracticeGroupCourseTeacherSalary(courseSchedule, courseScheduleTeacherSalaries);
                 break;
         }
         return courseScheduleTeacherSalaries;
@@ -1145,7 +1150,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
      * @param courseScheduleTeacherSalaries: 教师课酬记录基本信息
      * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
      */
-    private List<CourseScheduleTeacherSalary> createMusicGroupCourseTeacerSalary(CourseSchedule courseSchedule, List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries) {
+    private void createMusicGroupCourseTeacherSalary(CourseSchedule courseSchedule, List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries) {
         MusicGroup musicGroup = musicGroupDao.get(courseSchedule.getMusicGroupId());
 
         List<Integer> teacherIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toList());
@@ -1234,6 +1239,44 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             courseScheduleTeacherSalary.setCreateTime(now);
             courseScheduleTeacherSalary.setUpdateTime(now);
         }
-        return courseScheduleTeacherSalaries;
+    }
+
+    /**
+     * @describe 创建课程指定教师的课酬记录-VIP课
+     * @author Joburgess
+     * @date 2020.10.22
+     * @param courseSchedule: 课程计划
+     * @param courseScheduleTeacherSalaries: 教师课酬记录基本信息
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
+     */
+    private void createVipGroupCourseTeacherSalary(CourseSchedule courseSchedule, List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries){
+        VipGroup vipGroup = vipGroupService.get(Long.valueOf(courseSchedule.getMusicGroupId()));
+        for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
+            Map<String, BigDecimal> salaryMap = vipGroupService.countVipGroupPredictFee(vipGroup, courseSchedule.getActualTeacherId(), null, null);
+            courseScheduleTeacherSalary.setExpectSalary(courseSchedule.getTeachMode() == TeachModeEnum.OFFLINE?salaryMap.get("offlineTeacherSalary"):salaryMap.get("onlineTeacherSalary"));
+        }
+    }
+
+    /**
+     * @describe 创建课程指定教师的课酬记录-网管课
+     * @author Joburgess
+     * @date 2020.10.22
+     * @param courseSchedule: 课程计划
+     * @param courseScheduleTeacherSalaries: 教师课酬记录基本信息
+     * @return java.util.List<com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary>
+     */
+    private void createPracticeGroupCourseTeacherSalary(CourseSchedule courseSchedule, List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaries){
+        List<Integer> teacherIds = courseScheduleTeacherSalaries.stream().map(CourseScheduleTeacherSalary::getUserId).collect(Collectors.toList());
+
+        List<TeacherDefaultPracticeGroupSalary> allTeacherDefaultPracticeGroupSalaryList = teacherDefaultPracticeGroupSalaryDao.queryByUserIdList(teacherIds);
+        Map<Integer, List<TeacherDefaultPracticeGroupSalary>> teacherSalaryMap = allTeacherDefaultPracticeGroupSalaryList.stream().collect(Collectors.groupingBy(TeacherDefaultPracticeGroupSalary::getUserId));
+        for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
+            final List<TeacherDefaultPracticeGroupSalary> teacherDefaultPracticeGroupSalaryList = teacherSalaryMap.get(courseScheduleTeacherSalary.getUserId());
+            if (teacherDefaultPracticeGroupSalaryList != null && teacherDefaultPracticeGroupSalaryList.size() > 0) {
+                courseScheduleTeacherSalary.setExpectSalary(teacherDefaultPracticeGroupSalaryList.get(0).getMainTeacherSalary());
+            } else {
+                throw new BizException("请设置老师 的网管课课酬");
+            }
+        }
     }
 }