Joburgess 5 years ago
parent
commit
12fd3be001

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherSalaryDao.java

@@ -26,4 +26,15 @@ public interface ClassGroupTeacherSalaryDao extends BaseDAO<Long, ClassGroupTeac
      */
     ClassGroupTeacherSalary findByVipGoupAndTeacher(@Param("vipGroupId") Integer vipGroupId,
                                                     @Param("teacherId") Integer teacherId);
+
+    /**
+     * @describe 根据班级获取老师课酬
+     * @author Joburgess
+     * @date 2019/11/22
+     * @param classGroupId: 班级编号
+     * @param teacherId: 教师编号
+     * @return com.ym.mec.biz.dal.entity.ClassGroupTeacherSalary
+     */
+    ClassGroupTeacherSalary findByClassGroupAndTeacher(@Param("classGroupId") Integer classGroupId,
+                                                       @Param("teacherId") Integer teacherId);
 }

+ 9 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupTeacherMapperServiceImpl.java

@@ -202,6 +202,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         Map<String, TeacherDefaultMusicGroupSalary> teacherDefaultSalary = new HashMap<>();
         for (CourseSchedule classGroupNoStartCourseSchedule : courseSchedules) {
             List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+            List<TeacherAttendance> teacherAttendances=new ArrayList<>();
             //课时长度
             int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getStartClassTime(), classGroupNoStartCourseSchedule.getEndClassTime());
             List<ClassGroupTeacherMapper> byClassGroup = classGroupTeacherMapperDao.findByClassGroup(classGroupNoStartCourseSchedule.getClassGroupId());
@@ -261,8 +262,16 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
                 courseScheduleTeacherSalary.setUpdateTime(date);
                 courseScheduleTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
                 courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+
+                TeacherAttendance teacherAttendance=new TeacherAttendance();
+                teacherAttendance.setMusicGroupId(courseScheduleTeacherSalary.getMusicGroupId());
+                teacherAttendance.setGroupType(courseScheduleTeacherSalary.getGroupType());
+                teacherAttendance.setCourseScheduleId(courseScheduleTeacherSalary.getCourseScheduleId());
+                teacherAttendance.setCreateTime(date);
+                teacherAttendances.add(teacherAttendance);
             }
             courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
+            teacherAttendanceDao.batchInsert(teacherAttendances);
         }
     }
 

+ 25 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -29,6 +29,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
+import java.math.BigDecimal;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -75,6 +76,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private MusicGroupDao musicGroupDao;
 	@Autowired
 	private SubjectDao subjectDao;
+	@Autowired
+	private ClassGroupTeacherSalaryDao classGroupTeacherSalaryDao;
 
 	@Override
 	public BaseDAO<Long, CourseSchedule> getDAO() {
@@ -633,6 +636,10 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 			if(oldCourseSchedule.getType()== CourseSchedule.CourseScheduleType.VIP){
 				boolean oldTeacherIsNull=Objects.isNull(oldCourseSchedule.getActualTeacherId());
 				boolean newTeacherIsNull=Objects.isNull(newCourseSchedule.getActualTeacherId());
+				if(newTeacherIsNull&&!oldTeacherIsNull){
+					newCourseSchedule.setActualTeacherId(oldCourseSchedule.getActualTeacherId());
+					newCourseSchedule.setTeachMode(oldCourseSchedule.getTeachMode());
+				}
 				boolean oldSchoolIsNull=Objects.isNull(oldCourseSchedule.getSchoolId());
 				boolean newSchoolIsNull=Objects.isNull(newCourseSchedule.getSchoolId());
 				boolean teacherIsChange=oldTeacherIsNull||(!newTeacherIsNull&&!oldCourseSchedule.getActualTeacherId().equals(newCourseSchedule.getActualTeacherId()));
@@ -640,13 +647,28 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 
 				if(teacherIsChange||schoolIsChange){
 					VipGroup byCourseSchedule = vipGroupDao.findByCourseSchedule(newCourseSchedule.getId().intValue());
-					TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
+
+					BigDecimal onlineTeacherSalary=new BigDecimal(0),offlineTeacherSalary=new BigDecimal(0);
+
+					if(teacherIsChange){
+						TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(newCourseSchedule.getActualTeacherId(), byCourseSchedule.getVipGroupCategoryId());
+						if(Objects.nonNull(byTeacherAndCategory)){
+							onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
+							offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
+						}
+					}else{
+						ClassGroupTeacherSalary byClassGroupAndTeacher = classGroupTeacherSalaryDao.findByClassGroupAndTeacher(oldCourseSchedule.getClassGroupId(), newCourseSchedule.getActualTeacherId());
+						if(Objects.nonNull(byClassGroupAndTeacher)){
+							onlineTeacherSalary=byClassGroupAndTeacher.getOnlineClassesSalary();
+							offlineTeacherSalary=byClassGroupAndTeacher.getSalary();
+						}
+					}
+
 					List<CourseSchedule> courseSchedules=new ArrayList<>();
 					courseSchedules.add(newCourseSchedule);
 					courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(byCourseSchedule,
 							courseSchedules,
-							byTeacherAndCategory.getOnlineClassesSalary(),
-							byTeacherAndCategory.getOfflineClassesSalary());
+							onlineTeacherSalary,offlineTeacherSalary);
 					if(Objects.nonNull(oldCourseSchedule.getActualTeacherId())){
 						beReplaceTeacherIds.add(oldCourseSchedule.getActualTeacherId().intValue());
 					}

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

@@ -129,10 +129,13 @@
 
   <!-- 获取乐团老师课酬配置表 -->
   <select id="findByMusicGroupId" resultMap="ClassGroupTeacherSalary">
-    SELECT * FROM class_group_teacher_salary WHERE music_group_id_ = #{musicGroupId}
+    SELECT * FROM class_group_teacher_salary WHERE music_group_id_ = #{musicGroupId} AND group_type_='MUSIC'
   </select>
   <select id="findByVipGoupAndTeacher" resultMap="ClassGroupTeacherSalary">
-    SELECT * FROM class_group_teacher_salary WHERE music_group_id_ = #{vipGroupId} AND user_id_=#{teacherId}
+    SELECT * FROM class_group_teacher_salary WHERE music_group_id_ = #{vipGroupId} AND user_id_=#{teacherId} AND group_type_='VIP'
   </select>
+    <select id="findByClassGroupAndTeacher" resultMap="ClassGroupTeacherSalary">
+      SELECT * FROM class_group_teacher_salary WHERE class_group_id_ = #{classGroupId} AND user_id_=#{teacherId}
+    </select>
 
 </mapper>