ソースを参照

课酬导出逻辑调整

zouxuan 2 年 前
コミット
9b18617dcc

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

@@ -930,8 +930,8 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         exportTeacherSalaryDtos.addAll(courseScheduleTeacherSalaryDao.exportMusicTeacherSalary(params));
         //vip课
         List<ExportTeacherSalaryDto> exportVipTeacherSalaryDtos = courseScheduleTeacherSalaryDao.exportVipTeacherSalary(params);
-        //获取有奖励的vip课  .collect(Collectors.toMap(Group::getId, group -> group));
-        List<TaskRewardsRulesDto> rewardsRulesDtos = courseScheduleRewardsRulesService.queryVipGroupTeacherClassTimesByMonth(month);
+        //获取有奖励的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){
@@ -1013,7 +1013,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         exportVipTeacherSalaryDtos.forEach(e->{
             e.setRewards(rewardMap.get(e.getCourseScheduleId()));
             e.setActiveName(rewardNameMap.get(e.getCourseScheduleId()));
-        });
+        });*/
         exportTeacherSalaryDtos.addAll(exportVipTeacherSalaryDtos);
         //vip课(梯度课酬)
         //陪练课
@@ -1021,10 +1021,12 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
 
         Set<Long> allCourseIds = exportTeacherSalaryDtos.stream().map(ExportTeacherSalaryDto::getCourseScheduleId).collect(Collectors.toSet());
         Map<Long, BigDecimal> courseIncomeMap = new HashMap<>();
+        Map<Long, Integer> courseStudentNumMap = new HashMap<>();
         if(!CollectionUtils.isEmpty(allCourseIds)){
             List<CourseScheduleStudentPayment> courseScheduleStudentPayments = courseScheduleStudentPaymentDao.findByCourseScheduleIds(new ArrayList<>(allCourseIds));
             if(!CollectionUtils.isEmpty(courseScheduleStudentPayments)){
                 courseIncomeMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId, Collectors.mapping(CourseScheduleStudentPayment::getActualPrice, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))));
+                courseStudentNumMap = courseScheduleStudentPayments.stream().collect(Collectors.groupingBy(CourseScheduleStudentPayment::getCourseScheduleId,Collectors.collectingAndThen(Collectors.toList(),v->v.size())));
             }
         }
 //        Map<Long,BigDecimal> courseCast = MapUtil.convertIntegerMap(cloudTeacherFreeCourseDao.queryMapByClassDate(month));
@@ -1037,6 +1039,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
             }else{
                 exportTeacherSalaryDto.setCourseIncome(courseIncomeMap.get(exportTeacherSalaryDto.getCourseScheduleId()));
             }
+            exportTeacherSalaryDto.setStudentNum(courseStudentNumMap.get(exportTeacherSalaryDto.getCourseScheduleId()));
         }
 
         exportTeacherSalaryDtos.sort(Comparator.comparing(ExportTeacherSalaryDto::getTeacherId));

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

@@ -735,7 +735,7 @@
 		CASE WHEN ta.complaints_status_=0 THEN '拒绝' WHEN ta.complaints_status_ = 1 THEN '通过'
 		WHEN ta.complaints_status_=2 THEN '待处理' WHEN ta.complaints_status_ = 3 THEN '已撤销' END complaints_status_,ta.dispose_content_,
 		ROUND((UNIX_TIMESTAMP(ta.sign_out_time_)-UNIX_TIMESTAMP(ta.sign_in_time_))/60) currentTime,
-		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(DISTINCT sp.id_) studentNum,ts.deduction_reason_
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,ts.deduction_reason_
 		FROM course_schedule_teacher_salary ts
 		LEFT JOIN course_schedule cs ON ts.course_schedule_id_ = cs.id_
 		LEFT JOIN `teacher_attendance` ta ON ta.`teacher_id_` = ts.`user_id_` AND ta.`course_schedule_id_` = ts.`course_schedule_id_`
@@ -744,7 +744,6 @@
 		LEFT JOIN teacher t ON t.id_ = ts.user_id_
 		LEFT JOIN organization o ON o.id_ = t.organ_id_
 		LEFT JOIN school s ON s.id_ = cs.schoole_id_
-		LEFT JOIN course_schedule_student_payment sp ON sp.course_schedule_id_ = ts.course_schedule_id_
 		LEFT JOIN music_group mg ON mg.id_ = ts.music_group_id_ AND ts.group_type_ = 'MUSIC'
 		LEFT JOIN organization mgo ON mgo.id_ = cs.organ_id_
 		WHERE DATE_FORMAT(cs.class_date_,'%Y-%m') = #{month} AND cs.`del_flag_` = 0 AND cs.is_lock_ = 0 and cs.pre_course_flag_ = 0
@@ -771,7 +770,7 @@
 		CASE WHEN ta.complaints_status_=0 THEN '拒绝' WHEN ta.complaints_status_ = 1 THEN '通过'
 		WHEN ta.complaints_status_=2 THEN '待处理' WHEN ta.complaints_status_ = 3 THEN '已撤销' END complaints_status_,ta.dispose_content_,
 		ROUND((UNIX_TIMESTAMP(ta.sign_out_time_)-UNIX_TIMESTAMP(ta.sign_in_time_))/60) currentTime,
-		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(DISTINCT sp.id_) studentNum,
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,
 		vg.online_classes_unit_price_,vg.offline_classes_unit_price_,
 		GROUP_CONCAT(sa.sign_in_time_) studentSignInTime,GROUP_CONCAT(sa.sign_out_time_) studentSignOutTime,ts.deduction_reason_
 		FROM course_schedule_teacher_salary ts
@@ -781,7 +780,6 @@
 		LEFT JOIN teacher t ON t.id_ = ts.user_id_
 		LEFT JOIN organization o ON o.id_ = t.organ_id_
 		LEFT JOIN school s ON s.id_ = cs.schoole_id_
-		LEFT JOIN course_schedule_student_payment sp ON sp.course_schedule_id_ = ts.course_schedule_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_activity vga ON vg.vip_group_activity_id_ = vga.id_
@@ -814,7 +812,7 @@
 		CASE WHEN ta.complaints_status_=0 THEN '拒绝' WHEN ta.complaints_status_ = 1 THEN '通过'
 		WHEN ta.complaints_status_=2 THEN '待处理' WHEN ta.complaints_status_ = 3 THEN '已撤销' END complaints_status_,ta.dispose_content_,
 		ROUND((UNIX_TIMESTAMP(ta.sign_out_time_)-UNIX_TIMESTAMP(ta.sign_in_time_))/60) currentTime,
-		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,COUNT(DISTINCT sp.id_) studentNum,
+		ta.sign_in_time_ signInTime,ta.sign_out_time_ signOutTime,
 		GROUP_CONCAT(sa.sign_in_time_) studentSignInTime,GROUP_CONCAT(sa.sign_out_time_) studentSignOutTime,ts.deduction_reason_
 		FROM course_schedule_teacher_salary ts
 		LEFT JOIN course_schedule cs ON ts.course_schedule_id_ = cs.id_
@@ -823,7 +821,6 @@
 		LEFT JOIN teacher t ON t.id_ = ts.user_id_
 		LEFT JOIN organization o ON o.id_ = t.organ_id_
 		LEFT JOIN school s ON s.id_ = cs.schoole_id_
-		LEFT JOIN course_schedule_student_payment sp ON sp.course_schedule_id_ = ts.course_schedule_id_
 		LEFT JOIN `student_attendance` sa ON sa.`course_schedule_id_` = ts.`course_schedule_id_`
 		LEFT JOIN practice_group pg ON pg.id_ = ts.music_group_id_ AND ts.group_type_ = 'PRACTICE'
 		LEFT JOIN organization pgo ON pgo.id_ = cs.organ_id_