瀏覽代碼

feat:教师如果网管课课酬设置为0,则免费网管课课酬也为0:网管课加课,申请,购买

Joburgess 4 年之前
父節點
當前提交
7b7b63f72b

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultPracticeGroupSalaryDao.java

@@ -31,6 +31,8 @@ public interface TeacherDefaultPracticeGroupSalaryDao extends BaseDAO<Long, Teac
      */
     TeacherDefaultPracticeGroupSalary findByTeacherAndCourseMinutes(@Param("userId")Integer userId,
 																	@Param("minutes") Integer minutes);
+	List<TeacherDefaultPracticeGroupSalary> findByTeachersAndCourseMinutes(@Param("teacherIds")List<Integer> teacherIds,
+																	@Param("minutes") Integer minutes);
 
 
 }

+ 9 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -663,8 +663,15 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 							if(practiceGroup == null){
 								throw new BizException("课程组不存在");
 							}else if (FREE.equals(practiceGroup.getType())){
-								SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
-								BigDecimal teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
+								BigDecimal salary = teacherPracticeSalaryMap.get(cgtm.getUserId());
+								if (salary == null) {
+									throw new BizException("请设置老师网管课课酬");
+								}
+								BigDecimal teacherSalary = BigDecimal.ZERO;
+								if(salary.compareTo(new BigDecimal(0))>0){
+									SysConfig practiceCourseSalaryConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_SALARY);
+									teacherSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
+								}
 								courseScheduleTeacherSalary.setExpectSalary(teacherSalary);
 							}else if (practiceGroup.getType() == TRIAL){
 								courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(0));

+ 41 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -811,6 +811,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             sysUser.setOrganId(SHENYANG_ORGAN_ID);
         }
 
+        Integer practiceCourseMinutes = 25;
+        SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
+        if (Objects.nonNull(practiceCourseMinutesConfig)) {
+            practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
+        }
+
         List<Integer> includeTeacherIds = new ArrayList<>();
         List<ExtendTeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject1(sysUser.getOrganId(), subjectId);
         if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
@@ -819,6 +825,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         List<Integer> allTeacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 
+        List<TeacherDefaultPracticeGroupSalary> haveDefaultSalaryTeachers = teacherDefaultPracticeGroupSalaryDao.findByTeachersAndCourseMinutes(allTeacherIds, practiceCourseMinutes);
+        if(CollectionUtils.isEmpty(haveDefaultSalaryTeachers)){
+            return Collections.emptyList();
+        }
+        Set<Integer> hasDefaultSalaryTeacherIds = haveDefaultSalaryTeachers.stream().map(TeacherDefaultPracticeGroupSalary::getUserId).collect(Collectors.toSet());
+        allTeacherIds = new ArrayList<>(hasDefaultSalaryTeacherIds);
+
         List<CourseSchedule> userCourses = courseScheduleDao.findUserCourses(userId, allTeacherIds);
 
         if (!CollectionUtils.isEmpty(userCourses)) {
@@ -850,7 +863,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
 
         for (ExtendTeacherBasicDto organAndSubjectTeacher : organAndSubjectTeachers) {
-            if (!includeTeacherIds.contains(organAndSubjectTeacher.getId())) {
+            if (!includeTeacherIds.contains(organAndSubjectTeacher.getId())&&hasDefaultSalaryTeacherIds.contains(organAndSubjectTeacher.getId())) {
                 includeTeacherIds.add(organAndSubjectTeacher.getId());
             }
         }
@@ -1965,6 +1978,18 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         List<CourseScheduleStudentPayment> courseScheduleStudentPayments = new ArrayList<>();
         List<TeacherAttendance> teacherAttendances = new ArrayList<>();
 
+        TeacherDefaultPracticeGroupSalary teacherDefaultPracticeGroupSalary = teacherDefaultPracticeGroupSalaryDao.findByTeacherAndCourseMinutes(practiceGroup.getUserId(), practiceCourseMinutes);
+        BigDecimal teacherDefaultSalary = null;
+        if (Objects.nonNull(teacherDefaultPracticeGroupSalary)) {
+            teacherDefaultSalary = teacherDefaultPracticeGroupSalary.getMainTeacherSalary();
+        }
+        if(teacherDefaultSalary == null){
+            throw new BizException("请设置教师课酬");
+        }
+        if(teacherDefaultSalary.compareTo(new BigDecimal(0))>0){
+            teacherDefaultSalary = new BigDecimal(practiceCourseSalaryConfig.getParanValue());
+        }
+
         for (Date courseDate : allCourseDates) {
             //课表
             CourseSchedule courseSchedule = new CourseSchedule();
@@ -1992,7 +2017,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             courseScheduleTeacherSalary.setMusicGroupId(practiceGroup.getId().toString());
             courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
             courseScheduleTeacherSalary.setUserId(practiceGroup.getUserId());
-            courseScheduleTeacherSalary.setExpectSalary(new BigDecimal(practiceCourseSalaryConfig.getParanValue()));
+            courseScheduleTeacherSalary.setExpectSalary(teacherDefaultSalary);
             courseScheduleTeacherSalary.setCreateTime(now);
             courseScheduleTeacherSalary.setUpdateTime(now);
             courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
@@ -2363,6 +2388,12 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 //            sysUser.setOrganId(SHENYANG_ORGAN_ID);
 //        }
 
+        Integer practiceCourseMinutes = 25;
+        SysConfig practiceCourseMinutesConfig = sysConfigService.findByParamName(SysConfigService.PRACTICE_COURSE_MINUTES);
+        if (Objects.nonNull(practiceCourseMinutesConfig)) {
+            practiceCourseMinutes = practiceCourseMinutesConfig.getParanValue(Integer.class);
+        }
+
         List<Integer> includeTeacherIds = new ArrayList<>();
         List<ExtendTeacherBasicDto> organAndSubjectTeachers = teacherDao.findTeaTeachersByOrganAndSubject2(sysUser.getOrganId(), subjectId);
         if (CollectionUtils.isEmpty(organAndSubjectTeachers)) {
@@ -2371,6 +2402,13 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
         List<Integer> allTeacherIds = organAndSubjectTeachers.stream().map(TeacherBasicDto::getId).collect(Collectors.toList());
 
+        List<TeacherDefaultPracticeGroupSalary> haveDefaultSalaryTeachers = teacherDefaultPracticeGroupSalaryDao.findByTeachersAndCourseMinutes(allTeacherIds, practiceCourseMinutes);
+        if(CollectionUtils.isEmpty(haveDefaultSalaryTeachers)){
+            return Collections.emptyList();
+        }
+        Set<Integer> hasDefaultSalaryTeacherIds = haveDefaultSalaryTeachers.stream().map(TeacherDefaultPracticeGroupSalary::getUserId).collect(Collectors.toSet());
+        allTeacherIds = new ArrayList<>(hasDefaultSalaryTeacherIds);
+
         List<CourseSchedule> userCourses = courseScheduleDao.findUserCourses2(userId, allTeacherIds);
 
         if (!CollectionUtils.isEmpty(userCourses)) {
@@ -2412,7 +2450,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         }
 
         for (ExtendTeacherBasicDto organAndSubjectTeacher : organAndSubjectTeachers) {
-            if (!includeTeacherIds.contains(organAndSubjectTeacher.getId())) {
+            if (!includeTeacherIds.contains(organAndSubjectTeacher.getId())&&hasDefaultSalaryTeacherIds.contains(organAndSubjectTeacher.getId())) {
                 includeTeacherIds.add(organAndSubjectTeacher.getId());
             }
         }

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/TeacherDefaultPracticeGroupSalaryMapper.xml

@@ -111,4 +111,12 @@
 	<select id="findByTeacherAndCourseMinutes" resultMap="TeacherDefaultPracticeGroupSalary">
 		SELECT * FROM teacher_default_practice_group_salary where user_id_ = #{userId} AND minutes_=#{minutes}
 	</select>
+	<select id="findByTeachersAndCourseMinutes" resultMap="TeacherDefaultPracticeGroupSalary">
+		SELECT * FROM teacher_default_practice_group_salary
+		where minutes_=#{minutes}
+		  AND user_id_ IN
+			<foreach collection="teacherIds" item="teacherId" open="(" close=")" separator=",">
+				#{teacherId}
+			</foreach>
+	</select>
 </mapper>