浏览代码

Merge branch 'master' of http://git.dayaedu.com/yonge/mec

zouxuan 5 年之前
父节点
当前提交
1151355104

+ 3 - 2
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java

@@ -1,6 +1,5 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.dto.ClassGroupTeachersDto;
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.enums.GroupType;
 import com.ym.mec.biz.dal.enums.TeachTypeEnum;
@@ -56,6 +55,8 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      */
     List<ClassGroupTeacherMapper> findByMusicGroup(String musicGroupId);
 
+    List<ClassGroupTeacherMapper> findByClassGroup(Integer classGroupId);
+
     /**
      * 批量查询班级的老师关联关系
      *
@@ -79,4 +80,4 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      * @return
      */
     String queryTeachingNames(Long classGroupId);
-}
+}

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDefaultMusicGroupSalaryDao.java

@@ -39,4 +39,7 @@ public interface TeacherDefaultMusicGroupSalaryDao extends BaseDAO<Long, Teacher
      * @return java.util.List<com.ym.mec.biz.dal.entity.TeacherDefaultMusicGroupSalary>
      */
     List<TeacherDefaultMusicGroupSalary> findByTeacher(@Param("userIds") List<Integer> userIds);
+
+    TeacherDefaultMusicGroupSalary findByTeacherAndCourseType(@Param("userId") Integer userID,
+                                                              @Param("courseType") String courseType);
 }

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java

@@ -33,6 +33,8 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      */
     boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception;
 
+    void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules,String musicGroupId);
+
     /**
      * @describe 创建乐团课单节课对应教师课酬
      * @author Joburgess

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

@@ -195,6 +195,78 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
     }
 
     @Override
+    public void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules, String musicGroupId) {
+        Date date=new Date();
+        MusicGroup musicGroup = musicGroupService.get(musicGroupId);
+        //老师默认的课酬
+        Map<String, TeacherDefaultMusicGroupSalary> teacherDefaultSalary = new HashMap<>();
+        for (CourseSchedule classGroupNoStartCourseSchedule : courseSchedules) {
+            List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+            //课时长度
+            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getStartClassTime(), classGroupNoStartCourseSchedule.getEndClassTime());
+            List<ClassGroupTeacherMapper> byClassGroup = classGroupTeacherMapperDao.findByClassGroup(classGroupNoStartCourseSchedule.getClassGroupId());
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : byClassGroup) {
+                if (!classGroupTeacherMapper.getClassGroupId().equals(classGroupNoStartCourseSchedule.getClassGroupId())) {
+                    continue;
+                }
+                BigDecimal salary;
+
+                TeacherDefaultMusicGroupSalary teacherDefaultMusicGroupSalary=teacherDefaultMusicGroupSalaryDao.findByTeacherAndCourseType(classGroupTeacherMapper.getUserId(),
+                        classGroupNoStartCourseSchedule.getType().getCode());
+
+                if (teacherDefaultMusicGroupSalary == null) {
+                    throw new BizException("请先设置老师课酬");
+                }
+
+                //对应基准课酬
+                BigDecimal baseSalary = new BigDecimal(0), classTimeDuty = new BigDecimal(0);
+
+
+                //2.0课酬
+                if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.TEACHER_DEFAULT)) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(30), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                }
+                //3.0课酬
+                if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(90), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+                }
+                //课堂课课酬
+                if (musicGroup.isClassroomLessons()) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(40), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                }
+                //基础技能提高课
+                if (classGroupNoStartCourseSchedule.getType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
+                    //课程时长与结算单位时长占比
+                    classTimeDuty = new BigDecimal(duration).divide(new BigDecimal(45), 6, BigDecimal.ROUND_HALF_UP);
+                    baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+                }
+
+                salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
+
+                //课程与老师薪水表
+                CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
+                courseScheduleTeacherSalary.setCourseScheduleId(classGroupNoStartCourseSchedule.getId());
+                courseScheduleTeacherSalary.setGroupType(classGroupNoStartCourseSchedule.getGroupType());
+                courseScheduleTeacherSalary.setMusicGroupId(classGroupNoStartCourseSchedule.getMusicGroupId());
+                courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
+                courseScheduleTeacherSalary.setUserId(classGroupTeacherMapper.getUserId());
+                courseScheduleTeacherSalary.setExpectSalary(salary);
+                courseScheduleTeacherSalary.setCreateTime(date);
+                courseScheduleTeacherSalary.setUpdateTime(date);
+                courseScheduleTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
+                courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+            }
+            courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaryList);
+        }
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class)
     public void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, Map<Long, CourseSchedule> oldCourseSchedules) {
         List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();

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

@@ -208,6 +208,7 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         classGroupService.batchUpdateClassCourseTimes(classGroupIds);
         //创建学生单节课的缴费记录,乐团课的缴费为0
 		courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(courseSchedules);
+
 	}
 
 	@Override
@@ -381,9 +382,16 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	@Override
 	public void checkNewCourseSchedules(List<CourseSchedule> courseSchedules,boolean checkExistCourseSchedule){
 		//第一节课
-		CourseSchedule firstCourseSchedule = courseSchedules.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		CourseSchedule firstCourseSchedule;
 		//最后一节课
-		CourseSchedule latestCourseSchedule = courseSchedules.stream().max(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+		CourseSchedule latestCourseSchedule;
+		if(courseSchedules.size()==1){
+			firstCourseSchedule = courseSchedules.get(0);
+			latestCourseSchedule = courseSchedules.get(0);
+		}else{
+			firstCourseSchedule = courseSchedules.stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
+			latestCourseSchedule = courseSchedules.stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
+		}
 		//获取第一节课和最后一节课所包含的时间段内已存在的课程
 		List<CourseSchedule> existCourseSchedules = courseScheduleDao.findByDateZone(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
 

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentCourseHomeworkServiceImpl.java

@@ -102,7 +102,7 @@ public class StudentCourseHomeworkServiceImpl extends BaseServiceImpl<Long, Stud
 		}
 		CourseHomework byTeacherAndCourseHomewok = courseHomeworkDao.findByTeacherAndCourseHomewok(courseHomeworkId, teacherId);
 		if (Objects.nonNull(byTeacherAndCourseHomewok)) {
-			byStudentAndCourseHomewok.setIsView(YesOrNoEnum.YES);
+			byStudentAndCourseHomewok.setIsReplied(YesOrNoEnum.YES);
 			studentCourseHomeworkDao.update(byStudentAndCourseHomewok);
 		}
 		return true;

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherAttendanceServiceImpl.java

@@ -126,7 +126,7 @@ public class TeacherAttendanceServiceImpl extends BaseServiceImpl<Long, TeacherA
 			result.put("signInStatus",0);
 			if(yesOrNoEnum == YesOrNoEnum.YES){
 				//连堂课
-			}else if(DateUtil.minutesBetween(add60Minutes,date) > 0 && DateUtil.minutesBetween(date,add20Minutes) > 0){
+			}else if(DateUtil.minutesBetween(add60Minutes,date) >= 0 && DateUtil.minutesBetween(date,add20Minutes) >= 0){
 				//正常签到范围(开始前20分钟  ~  开始之前)
 			}else if(DateUtil.minutesBetween(add20Minutes,date) > 0){
 				if(StringUtils.isEmpty(teacherAttendance.getRemark())){

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

@@ -737,7 +737,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                         }else{
                             teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
                         }
-                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
+//                        teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
                         results.put("onlineTeacherSalary",teacherOnlineSalary);
                         break;
                     case RATIO_DISCOUNT:
@@ -767,7 +767,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
                         }else{
                             teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
                         }
-                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
+//                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
                         results.put("offlineTeacherSalary",teacherOfflineSalary);
                         break;
                     case RATIO_DISCOUNT:

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

@@ -151,6 +151,9 @@
         LEFT JOIN sys_user su ON cgtm.user_id_ = su.id_
         WHERE cgtm.teacher_role_ = 'TEACHING' AND cgtm.class_group_id_ = #{classGroupId}
     </select>
+    <select id="findByClassGroup" resultMap="ClassGroupTeacherMapper">
+        SELECT * FROM class_group_teacher_mapper WHERE class_group_id_=#{classGroupId}
+    </select>
 
     <!-- 删除对应班级老师关联关系 -->
     <delete id="delClassGroupTeacherMapper">

+ 4 - 0
mec-biz/src/main/resources/config/mybatis/TeacherDefaultMusicGroupSalaryMapper.xml

@@ -120,4 +120,8 @@
 			#{userId}
 		</foreach>
 	</select>
+    <select id="findByTeacherAndCourseType" resultMap="TeacherDefaultMusicGroupSalary">
+		SELECT * FROM teacher_default_music_group_salary
+		WHERE user_id_=#{userId} AND course_schedule_type_ = #{courseType}
+	</select>
 </mapper>

+ 4 - 5
mec-teacher/src/main/java/com/ym/mec/teacher/controller/CourseHomeworkController.java

@@ -3,7 +3,6 @@ package com.ym.mec.teacher.controller;
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.CourseHomeworkStudentDetailDto;
-import com.ym.mec.biz.dal.entity.CourseHomework;
 import com.ym.mec.biz.dal.entity.StudentCourseHomework;
 import com.ym.mec.biz.dal.enums.YesOrNoEnum;
 import com.ym.mec.biz.dal.page.CourseHomeworkQueryInfo;
@@ -56,14 +55,14 @@ public class CourseHomeworkController extends BaseController {
     @ApiOperation(value = "获取学生作业界面详细信息")
     @GetMapping(value = "/findCourseHomeworkStudentDetail")
     public Object findCourseHomeworkStudentDetail(Long courseScheduleID,Long userId){
-        CourseHomework courseHomework = courseScheduleService.get(courseScheduleID);
-        if(Objects.isNull(courseHomework)){
+        StudentCourseHomework studentCourseHomework1 = studentCourseHomeworkService.get(courseScheduleID);
+        if(Objects.isNull(studentCourseHomework1)){
             return failed("作业不存在");
         }
-        CourseHomeworkStudentDetailDto courseHomeworkStudentDetail = studentCourseHomeworkService.findCourseHomeworkStudentDetail(courseHomework.getCourseScheduleId(), userId);
+        CourseHomeworkStudentDetailDto courseHomeworkStudentDetail = studentCourseHomeworkService.findCourseHomeworkStudentDetail(studentCourseHomework1.getCourseScheduleId(), userId);
         if(Objects.nonNull(courseHomeworkStudentDetail)){
             StudentCourseHomework studentCourseHomework=new StudentCourseHomework();
-            studentCourseHomework.setId(courseHomeworkStudentDetail.getCourseHomeworkId());
+            studentCourseHomework.setId(studentCourseHomework1.getId());
             studentCourseHomework.setIsView(YesOrNoEnum.YES);
             studentCourseHomeworkService.update(studentCourseHomework);
         }

+ 8 - 5
mec-web/src/main/java/com/ym/mec/web/controller/CourseScheduleController.java

@@ -10,12 +10,10 @@ import com.ym.mec.biz.dal.entity.CourseScheduleComplaints;
 import com.ym.mec.biz.dal.entity.MusicGroup;
 import com.ym.mec.biz.dal.enums.AuditStatusEnum;
 import com.ym.mec.biz.dal.enums.GroupType;
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
 import com.ym.mec.biz.dal.page.StudentAttendanceQueryInfo;
 import com.ym.mec.biz.dal.page.VipGroupQueryInfo;
-import com.ym.mec.biz.service.CourseScheduleComplaintsService;
-import com.ym.mec.biz.service.CourseScheduleService;
-import com.ym.mec.biz.service.MusicGroupService;
-import com.ym.mec.biz.service.StudentAttendanceService;
+import com.ym.mec.biz.service.*;
 import com.ym.mec.common.controller.BaseController;
 import com.ym.mec.common.exception.BizException;
 import io.swagger.annotations.Api;
@@ -52,7 +50,8 @@ public class CourseScheduleController extends BaseController {
     
     @Autowired
     private CourseScheduleComplaintsService courseScheduleComplaintsService;
-
+    @Autowired
+    private ClassGroupTeacherMapperService classGroupTeacherMapperService;
     @Autowired
     private SysUserFeignService sysUserFeignService;
     
@@ -88,6 +87,10 @@ public class CourseScheduleController extends BaseController {
         });
 
         scheduleService.createCourseSchedules(createCourseScheduleDto.getCourseSchedules());
+
+        if(musicGroup.getStatus().equals(MusicGroupStatusEnum.PROGRESS)){
+            classGroupTeacherMapperService.createMusicGroupTeacherMapper(createCourseScheduleDto.getCourseSchedules(),musicGroup.getId());
+        }
         return succeed();
     }