浏览代码

fix:
1、乐团课多班级混合加课导致的教师冲突检测失效
2、乐团加入二要素验证

Joburgess 4 年之前
父节点
当前提交
5395be6c09

+ 2 - 2
mec-auth/mec-auth-server/src/main/java/com/ym/mec/auth/web/controller/UserController.java

@@ -232,9 +232,9 @@ public class UserController extends BaseController {
 			}
 
 			String accountId = eSealPlugin.createUserAccount(
-					user.getUsername().split(":")[1],
+					sysUser.getRealName(),
 					sysUser.getIdCardNo(),
-					sysUser.getPhone());
+					user.getUsername().split(":")[1]);
 			if (StringUtils.isBlank(accountId)) {
 				throw new BizException("用户信息错误");
 			}

+ 10 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/ClassGroupTeacherMapperService.java

@@ -34,7 +34,7 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
      * @param classGroupTeacherMapperList
      * @return
      */
-    boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception;
+    boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
 
     void createMusicGroupTeacherMapper(List<CourseSchedule> courseSchedules,String musicGroupId);
 
@@ -48,6 +48,15 @@ public interface ClassGroupTeacherMapperService extends BaseService<Long, ClassG
     void createCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, Map<Long, CourseSchedule> oldCourseSchedules);
 
     /**
+     * @describe 初始化课程课酬,课酬为0
+     * @author Joburgess
+     * @date 2020.09.21
+     * @param courseSchedules:
+     * @return void
+     */
+    void initCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
+
+    /**
      * 获取班级老师
      * @param classGroupId
      * @return

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

@@ -155,7 +155,7 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         return classGroupTeacherMapperDao.findClassGroupTeachers(StringUtils.join(collect, ","));
     }
 
-    public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) throws Exception {
+    public boolean classGroupTeacherMapperUpdate(List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
         Date date = new Date();
         Date entryDate = DateUtil.stringToDate(sysConfigDao.findByParamName(SysConfigService.TEACHER_ENTRY_DATE).getParanValue(), "yyyy-MM-dd");
         List<Integer> classGroupIds = classGroupTeacherMapperList.stream().map(classGroupTeacherMapper -> classGroupTeacherMapper.getClassGroupId()).collect(Collectors.toList());
@@ -514,6 +514,33 @@ public class ClassGroupTeacherMapperServiceImpl extends BaseServiceImpl<Long, Cl
         }
     }
 
+    @Override
+    public void initCourseScheduleTeacherSalary(List<CourseSchedule> courseSchedules, List<ClassGroupTeacherMapper> classGroupTeacherMapperList) {
+        List<Long> courseScheduleIds = courseSchedules.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+        courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalaryList = new ArrayList<>();
+        Date date=new Date();
+        for (CourseSchedule classGroupNoStartCourseSchedule : courseSchedules) {
+            //课时长度
+            int duration = DateUtil.minutesBetween(classGroupNoStartCourseSchedule.getStartClassTime(), classGroupNoStartCourseSchedule.getEndClassTime());
+            for (ClassGroupTeacherMapper classGroupTeacherMapper : classGroupTeacherMapperList) {
+                //课程与老师薪水表
+                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(BigDecimal.ZERO);
+                courseScheduleTeacherSalary.setCreateTime(date);
+                courseScheduleTeacherSalary.setUpdateTime(date);
+                courseScheduleTeacherSalary.setClassGroupId(classGroupTeacherMapper.getClassGroupId());
+                courseScheduleTeacherSalaryList.add(courseScheduleTeacherSalary);
+            }
+        }
+        courseScheduleTeacherSalaryService.batchInsert(courseScheduleTeacherSalaryList);
+    }
+
     /**
      * @param courseSchedule:                              课程信息
      * @param teachType:                                   教师类型

+ 11 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CourseScheduleServiceImpl.java

@@ -132,6 +132,8 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
 	private PracticeGroupService practiceGroupService;
     @Autowired
 	private CoursesGroupModifyLogDao coursesGroupModifyLogDao;
+    @Autowired
+	private ClassGroupTeacherMapperDao classGroupTeacherMapperDao;
 
     private final Logger LOGGER = LoggerFactory
             .getLogger(this.getClass());
@@ -645,16 +647,21 @@ public class CourseScheduleServiceImpl extends BaseServiceImpl<Long, CourseSched
         List<CourseSchedule> courseSchedules = createCourseScheduleDto.getCourseSchedules();
 
         if(!CollectionUtils.isEmpty(courseSchedules)){
+			List<ClassGroupTeacherMapper> byMusicGroup = classGroupTeacherMapperDao.findByMusicGroup(createCourseScheduleDto.getMusicGroupID());
+			Map<Integer, List<ClassGroupTeacherMapper>> teacherByClassGroup = byMusicGroup.stream().collect(Collectors.groupingBy(ClassGroupTeacherMapper::getClassGroupId));
+
 			Map<Integer, List<CourseSchedule>> classGroupCourseSchedules = courseSchedules.stream().collect(Collectors.groupingBy(CourseSchedule::getClassGroupId));
-			for (List<CourseSchedule> value : classGroupCourseSchedules.values()) {
+			for (Map.Entry<Integer, List<CourseSchedule>> classGroupCoursesEntry : classGroupCourseSchedules.entrySet()) {
+				List<ClassGroupTeacherMapper> classGroupTeacherMappers = teacherByClassGroup.get(classGroupCoursesEntry.getKey());
 				//添加课程计划
-				batchAddCourseSchedule(value);
+				batchAddCourseSchedule(classGroupCoursesEntry.getValue());
+				//创建学生单节课的缴费记录,乐团课的缴费为0
+				courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(classGroupCoursesEntry.getValue());
+				classGroupTeacherMapperService.initCourseScheduleTeacherSalary(classGroupCoursesEntry.getValue(),classGroupTeacherMappers);
 			}
             //更新课次
             List<Integer> classGroupIds = courseSchedules.stream().map(CourseSchedule::getClassGroupId).collect(Collectors.toList());
             classGroupService.batchUpdateClassCourseTimes(classGroupIds);
-            //创建学生单节课的缴费记录,乐团课的缴费为0
-            courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentByCourseSchedules(courseSchedules);
         }
 
         MusicGroup musicGroup = musicGroupService.get(createCourseScheduleDto.getMusicGroupID());