zouxuan 2 years ago
parent
commit
c550d74583

+ 6 - 84
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -929,92 +929,14 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         //乐团课
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportMusicTeacherSalary(params));
         //vip课
+        params.put("groupType","VIP");
         List<ExportTeacherSalaryDto> exportVipTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
-        //获取有奖励的vip课
-        /*List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(month);
-        Map<Integer,Double> rewardMap = new HashMap<>(1000);
-        Map<Integer,String> rewardNameMap = new HashMap<>(1000);
-        if(rewardsRulesDtos != null && rewardsRulesDtos.size() > 0){
-            List<Integer> activeIds = rewardsRulesDtos.stream().map(e -> e.getActiveId()).collect(Collectors.toList());
-            List<CourseScheduleRewardsRules> rewardsRules = courseScheduleRewardsRulesService.findByIds(activeIds);
-            Map<Integer, List<CourseScheduleRewardsRules>> integerListMap = rewardsRules.stream().collect(Collectors.groupingBy(CourseScheduleRewardsRules::getId));
-            rewardsRulesDtos.forEach(e->{
-                CourseScheduleRewardsRules rewardsRule = integerListMap.get(e.getActiveId()).get(0);
-                List<RewardsRulesJsonDto> rulesJsonDtos = JSONObject.parseArray(rewardsRule.getRewardsRulesJson(), RewardsRulesJsonDto.class);
-                BigDecimal money = BigDecimal.ZERO;
-                //STAIR 阶梯, PER 累计, TOTAL
-                RewardsRulesJsonDto dto;
-                int times = e.getTimes();
-                switch (rewardsRule.getRewardMode()) {
-                    case STAIR:
-                        for (int i = 0;i< rulesJsonDtos.size();i++){
-                            dto = rulesJsonDtos.get(i);
-                            if (e.getTimes() >= dto.getMin()) {
-                                //最后一个梯度
-                                if(rulesJsonDtos.size()-1 == i){
-                                    money = money.add(dto.getMoney().multiply(new BigDecimal(times)));
-                                }else if(e.getTimes() >= dto.getMax()){
-                                    times = Math.abs(dto.getMax() - times);
-                                    money = money.add(dto.getMoney().multiply(new BigDecimal(dto.getMax()-dto.getMin()+1)));
-                                }else {
-                                    money = money.add(dto.getMoney().multiply(new BigDecimal(times)));
-                                }
-                            }
-                        }
-                        break;
-                    case PER:
-                        for (int i = 0;i< rulesJsonDtos.size();i++){
-                            dto = rulesJsonDtos.get(i);
-                            if (e.getTimes() >= dto.getMin()) {
-                                money = dto.getMoney().multiply(new BigDecimal(times));
-                            }
-                        }
-                        break;
-                    case TOTAL:
-                        break;
-                }
-                if (money.doubleValue() > 0) {
-                    String[] split = e.getCourseScheduleIds().split(",");
-                    switch (rewardsRule.getRewardMode()) {
-                        case STAIR:
-                            List<String> list = new ArrayList(Arrays.asList(split));
-                            Collections.sort(list);
-                            int fromIndex = 0;
-                            List<String> subList;
-                            int max = 0;
-                            for (RewardsRulesJsonDto rulesJsonDto:rulesJsonDtos) {
-                                if(list.size() < fromIndex){
-                                    break;
-                                }
-                                max = rulesJsonDto.getMax();
-                                if(list.size() < rulesJsonDto.getMax()){
-                                    max = list.size();
-                                }
-                                subList = list.subList(fromIndex,max);
-                                fromIndex = rulesJsonDto.getMax();
-                                if(subList != null && subList.size() > 0){
-                                    subList.forEach(courseId->{
-                                        rewardMap.put(Integer.parseInt(courseId),rulesJsonDto.getMoney().doubleValue());
-                                        rewardNameMap.put(Integer.parseInt(courseId),e.getActiveName());
-                                    });
-                                }
-                            }
-                            break;
-                        case PER:
-                            for (int i = 0; i < split.length; i++) {
-                                rewardMap.put(Integer.parseInt(split[i]),money.doubleValue()/split.length);
-                                rewardNameMap.put(Integer.parseInt(split[i]),e.getActiveName());
-                            }
-                            break;
-                    }
-                }
-            });
-        }
-        exportVipTeacherSalaryDtos.forEach(e->{
-            e.setRewards(rewardMap.get(e.getCourseScheduleId()));
-            e.setActiveName(rewardNameMap.get(e.getCourseScheduleId()));
-        });*/
+        params.put("groupType","LIVE");
+        List<ExportTeacherSalaryDto> exportLiveTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
         exportTeacherSalaryDtos.addAll(exportVipTeacherSalaryDtos);
+        if(!CollectionUtils.isEmpty(exportLiveTeacherSalaryDtos)){
+            exportTeacherSalaryDtos.addAll(exportLiveTeacherSalaryDtos);
+        }
         //vip课(梯度课酬)
         //陪练课
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportPracticeTeacherSalary(params));

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

@@ -759,7 +759,7 @@
 		u.real_name_ teacherName,o.name_ teacherOrganName,cs.music_group_id_ group_id_,
 		CASE WHEN cs.teach_mode_ = 'OFFLINE' THEN '线下' WHEN cs.teach_mode_ = 'ONLINE' THEN '线上' END teach_mode_,
 		CASE WHEN t.job_nature_ = 'PART_TIME' THEN '兼职' WHEN t.job_nature_ = 'FULL_TIME' THEN '全职' ELSE '零时工' END jobType,
-		'vip课' courseScheduleType,
+		CASE WHEN #{groupType} = 'LIVE' THEN '直播课' ELSE 'VIP课' END courseScheduleType,
 		cs.class_date_ classDate,cs.start_class_time_ courseScheduleStartTime,cs.end_class_time_ courseScheduleEndTime,
 		ROUND((UNIX_TIMESTAMP(cs.end_class_time_)-UNIX_TIMESTAMP(cs.start_class_time_))/60) signCourseScheduleTime,
 		ts.actual_salary_ price,vga.name_ vip_active_name_,vgc.name_ vip_category_name_,
@@ -781,12 +781,12 @@
 		LEFT JOIN organization o ON o.id_ = t.organ_id_
 		LEFT JOIN school s ON s.id_ = cs.schoole_id_
 		LEFT JOIN `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_`
-		LEFT JOIN vip_group vg ON (vg.id_ = ts.music_group_id_ AND ts.group_type_ = 'VIP')
+		LEFT JOIN vip_group vg ON (vg.id_ = ts.music_group_id_ AND ts.group_type_ = #{groupType})
 		LEFT JOIN vip_group_activity vga ON vg.vip_group_activity_id_ = vga.id_
 		LEFT JOIN organization vgo ON vgo.id_ = cs.organ_id_
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
 		WHERE vg.organ_id_ != 41 AND DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cs.`del_flag_` = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0
-		AND cs.group_type_ = 'VIP' AND ts.settlement_time_ IS NOT NULL
+		AND cs.group_type_ = #{groupType} AND ts.settlement_time_ IS NOT NULL
 		AND t.is_settlement_salary_ = 1 and ts.tenant_id_ = #{tenantId}
 		<if test="courseTypeList != null">
 			and cs.type_ in (#{courseTypeList})