浏览代码

fix:vip课酬计算

Joburgess 4 年之前
父节点
当前提交
01a5559981

+ 4 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleTeacherSalaryServiceImpl.java

@@ -334,18 +334,7 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
         Map<Integer, Teacher> idTeacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, t -> t, (t1, t2) -> t1));
         Map<Integer, Teacher> idTeacherMap = teachers.stream().collect(Collectors.toMap(Teacher::getId, t -> t, (t1, t2) -> t1));
 
 
         for (TeacherVipSalaryDto ts : teacherSalaryList) {
         for (TeacherVipSalaryDto ts : teacherSalaryList) {
-            // 修复兼职老师不管1v?和全职老师1vn的课酬为系统默认课酬(不管线上还是线下课)
-            if (ts.getTeacherJobNature() != JobNatureEnum.FULL_TIME || !org.apache.commons.lang3.StringUtils.equalsIgnoreCase("1v1", ts.getVipGroupCategoryName())) {
-                // 查询默认课酬
-                TeacherDefaultVipGroupSalary tdvs = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(ts.getUserId(), ts.getVipGroupCategoryId());
-                if (tdvs != null) {
-                    if (ts.getTeachMode() == TeachModeEnum.ONLINE) {
-                        ts.setExpectSalary(tdvs.getOfflineClassesSalary());
-                    } else {
-                        ts.setExpectSalary(tdvs.getOfflineClassesSalary());
-                    }
-                }
-            }else{
+            try {
                 //按照活动重新计算课酬
                 //按照活动重新计算课酬
                 VipGroup vipGroup = vipGroupService.get(Long.valueOf(ts.getMusicGroupId()));
                 VipGroup vipGroup = vipGroupService.get(Long.valueOf(ts.getMusicGroupId()));
                 Map<String, BigDecimal> teachModeSalaryMap = vipGroupService.countVipGroupCoursePredictFee(vipGroup, ts.getUserId(), ts.getCourseScheduleId());
                 Map<String, BigDecimal> teachModeSalaryMap = vipGroupService.countVipGroupCoursePredictFee(vipGroup, ts.getUserId(), ts.getCourseScheduleId());
@@ -354,6 +343,9 @@ public class CourseScheduleTeacherSalaryServiceImpl extends BaseServiceImpl<Long
                 }else if(TeachModeEnum.OFFLINE.equals(ts.getTeachMode())&&teachModeSalaryMap.containsKey("offlineTeacherSalary")){
                 }else if(TeachModeEnum.OFFLINE.equals(ts.getTeachMode())&&teachModeSalaryMap.containsKey("offlineTeacherSalary")){
                     ts.setExpectSalary(teachModeSalaryMap.get("offlineTeacherSalary"));
                     ts.setExpectSalary(teachModeSalaryMap.get("offlineTeacherSalary"));
                 }
                 }
+            } catch (NumberFormatException e) {
+                LOGGER.error("课酬计算错误:",ts.getCourseScheduleId(), e.getCause());
+                ts.setExpectSalary(BigDecimal.ZERO);
             }
             }
             courseScheduleTeacherSalaryDao.update(ts);
             courseScheduleTeacherSalaryDao.update(ts);
         }
         }

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

@@ -764,11 +764,14 @@
 	</select>
 	</select>
 	
 	
 	<select id="queryOnlineCourseByGroupType" resultMap="teacherVipSalaryDto" parameterType="map">
 	<select id="queryOnlineCourseByGroupType" resultMap="teacherVipSalaryDto" parameterType="map">
-		SELECT csts.*,cs.teach_mode_,vgc.name_ vip_group_category_name_,vg.vip_group_category_id_, t.job_nature_  FROM `course_schedule_teacher_salary` csts LEFT JOIN `course_schedule` cs on csts.`course_schedule_id_` = cs.`id_` 
+		SELECT csts.*,cs.teach_mode_,vgc.name_ vip_group_category_name_,vg.vip_group_category_id_, t.job_nature_
+		FROM `course_schedule_teacher_salary` csts LEFT JOIN `course_schedule` cs on csts.`course_schedule_id_` = cs.`id_`
 		left join vip_group vg on vg.id_ = csts.music_group_id_ and csts.group_type_ = 'VIP'
 		left join vip_group vg on vg.id_ = csts.music_group_id_ and csts.group_type_ = 'VIP'
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
 		left join vip_group_category vgc on vgc.id_ = vg.vip_group_category_id_
 		left join teacher t on t.id_ = csts.user_id_ 
 		left join teacher t on t.id_ = csts.user_id_ 
-		WHERE cs.`group_type_` = 'VIP' and cs.class_date_ between #{startDate} and #{endDate}
+		WHERE cs.`group_type_` = 'VIP'
+		  AND csts.settlement_time_ IS NULL
+		  and cs.class_date_ between #{startDate} and #{endDate}
 	</select>
 	</select>
 
 
     <select id="isTeacher" resultType="java.lang.Boolean">
     <select id="isTeacher" resultType="java.lang.Boolean">