瀏覽代碼

Merge remote-tracking branch 'origin/master'

Joburgess 5 年之前
父節點
當前提交
f07970b0e7

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TeacherDao.java

@@ -72,7 +72,7 @@ public interface TeacherDao extends BaseDAO<Integer, Teacher> {
      * @param userIds
      * @return
      */
-    List<Teacher> findTeachers(@Param("userIds") List<Integer> userIds);
+    List<TeacherBasicDto> findTeachers(@Param("userIds") List<Integer> userIds);
 
     /**
      * count上课结算列表

+ 34 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TeacherBasicDto.java

@@ -0,0 +1,34 @@
+package com.ym.mec.biz.dal.dto;
+
+public class TeacherBasicDto {
+
+    private Integer id;
+
+    private String realName;
+
+    private String username;
+
+    public Integer getId() {
+        return id;
+    }
+
+    public void setId(Integer id) {
+        this.id = id;
+    }
+
+    public String getRealName() {
+        return realName;
+    }
+
+    public void setRealName(String realName) {
+        this.realName = realName;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+}

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

@@ -74,7 +74,7 @@ public interface TeacherService extends BaseService<Integer, Teacher> {
      * @param organId
      * @return
      */
-    List<Teacher> findTeachers(@Param("organId") String organId);
+    List<TeacherBasicDto> findTeachers(@Param("organId") String organId);
 
     /**
      * @describe 根据科目获取部门下的教师

+ 35 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -1157,6 +1157,22 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
                     }
+
+                    //课堂课课酬
+                    if (musicGroup.isClassroomLessons()) {
+                        //课程时长与结算单位时长占比
+                        classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+                        baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                    }
+                    //基础技能提高课
+                    if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
+                        //课程时长与结算单位时长占比
+                        classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+                        baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                            baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+                        }
+                    }
                     salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
 
                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
@@ -1444,6 +1460,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 
             int dayOfWeek = now.getDayOfWeek().getValue();
             for (CourseTimeDto courseTimeDto : classGroup4MixDto.getCourseTimeDtoList()) {
+                if(courseTimeDto.getDayOfWeek() < 1 || courseTimeDto.getDayOfWeek() > 7){
+                    throw new BizException("排课循环周期错误,请核查");
+                }
                 if (!courseTimeDto.getDayOfWeek().equals(dayOfWeek)) continue;
 
                 //课时长度
@@ -1501,6 +1520,22 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                         classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(90), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
                         baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
                     }
+                    //课堂课课酬
+                    if (musicGroup.isClassroomLessons()) {
+                        //课程时长与结算单位时长占比
+                        classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(40), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+                        baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                    }
+                    //基础技能提高课
+                    if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.HIGH)) {
+                        //课程时长与结算单位时长占比
+                        classTimeDuty = new BigDecimal(classCourseDuration).divide(new BigDecimal(45), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+                        baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher30MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher30MinSalary();
+                        if (musicGroup.getSettlementType().equals(SalarySettlementTypeEnum.GRADIENT_SALARY)) {
+                            baseSalary = classGroupTeacherMapper.getTeacherRole().equals(TeachTypeEnum.BISHOP) ? teacherDefaultMusicGroupSalary.getMainTeacher90MinSalary() : teacherDefaultMusicGroupSalary.getAssistantTeacher90MinSalary();
+                        }
+                    }
+
                     salary = baseSalary.multiply(classTimeDuty).setScale(2, BigDecimal.ROUND_HALF_UP);
 
                     CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();

+ 21 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupServiceImpl.java

@@ -1132,14 +1132,32 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		//更新学员在班级的状态
 		classGroupStudentMapperDao.deleteStudentByMusicGroupId(musicGroupId, userId);
 		
-		//更新班级人数
 		List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
 		if (classGroupIdList != null && classGroupIdList.size() > 0) {
+			//更新班级人数
 			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+
+			//删除融云群
+			List<ImGroupModel> imGroupModels = new ArrayList<ImGroupModel>();
+			for (Integer classGroupId : classGroupIdList) {
+				imGroupModels.add(new ImGroupModel(classGroupId + ""));
+			}
+			imFeignService.groupBatchDismiss(imGroupModels);
+		}
+		
+		List<CourseSchedule> musicGroupCourseSchedules = courseScheduleDao.findMusicGroupCourseSchedulesWithStudent(musicGroupId,GroupType.MUSIC.getCode(), CourseStatusEnum.NOT_START.getCode(),userId);
+		if(!CollectionUtils.isEmpty(musicGroupCourseSchedules)){
+			List<Long> courseScheduleIds = musicGroupCourseSchedules.stream().map(courseSchedule -> courseSchedule.getId()).collect(Collectors.toList());
+
+			// 删除未上课
+            courseScheduleDao.deleteMusicGroupCourseSchedulesWithStudent(courseScheduleIds,userId);
+			
+			//删除学生缴费表
+            courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
 		}
 		
-		// 删除未上课
-		courseScheduleService.batchDeleteMusicGroupCourseWithStudent(musicGroupId, userId, GroupType.MUSIC);
+		//删除续费周期
+		musicGroupStudentFeeDao.deleteByUserIdAndMusicGroupId(userId, musicGroupId);
 		
 		// 退团
 		studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.QUIT);

+ 3 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -283,6 +283,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             ImResult register = imFeignService.register(new ImUserModel(userId.toString(), sysUser.getUsername(), sysUser.getAvatar()));
             sysUser.setImToken(register.getToken());
         }
+        if(!sysUser.getUserType().equals(SysUserType.STUDENT)){
+            throw new BizException("您系统存在非学生的账户,不能注册学生");
+        }
         sysUser.setUserType(SysUserType.STUDENT);
         sysUser.setOrganId(studentRegistration.getOrganId());
         sysUser.setRealName(studentRegistration.getParentsName());

+ 13 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TeacherServiceImpl.java

@@ -196,7 +196,7 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 	}
 
     @Override
-    public List<Teacher> findTeachers(String organId) {
+    public List<TeacherBasicDto> findTeachers(String organId) {
 		List<Teacher> teacherList = teacherDao.findByFlowOrganRange(null);
 		if(StringUtils.isNotEmpty(organId)){
 			Set<String> list = new HashSet<>(Arrays.asList(organId.split(",")));
@@ -326,18 +326,22 @@ public class TeacherServiceImpl extends BaseServiceImpl<Integer, Teacher>  imple
 
 	@Override
 	public PageInfo<Teacher> queryPageDetail(TeacherQueryInfo queryInfo) {
+		Map<String, Object> params = new HashMap<>();
+		MapUtil.populateMap(params, queryInfo);
+		List<Teacher> teacherList = teacherDao.findByFlowOrganRange(params);
+		if(teacherList == null || teacherList.size() < 1){
+			return new PageInfo<>();
+		}
 		if(StringUtils.isNotEmpty(queryInfo.getOrganId())){
 			Set<String> list = new HashSet<>(Arrays.asList(queryInfo.getOrganId().split(",")));
-			Map<String, Object> params = new HashMap<>();
-			MapUtil.populateMap(params, queryInfo);
-			List<Teacher> teacherList = teacherDao.findByFlowOrganRange(params);
-			List<Teacher> teachers = teacherList.stream().
+			teacherList = teacherList.stream().
 					filter(teacher -> !Collections.disjoint(new ArrayList<>(Arrays.asList(teacher.getFlowOrganRange().split(","))),list)).collect(Collectors.toList());
-			List<Integer> collect = teachers.stream().map(e -> e.getId()).collect(Collectors.toList());
-			if(collect != null && collect.size() > 0){
-				queryInfo.setTeacherId(collect);
-			}
 		}
+		List<Integer> collect = teacherList.stream().map(e -> e.getId()).collect(Collectors.toList());
+		if(collect == null || collect.size() < 1){
+			return new PageInfo<>();
+		}
+		queryInfo.setTeacherId(collect);
 
 		PageInfo<Teacher> pageInfo = queryPage(queryInfo);
 		List<Teacher> rows = pageInfo.getRows();

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/MusicGroupStudentFeeMapper.xml

@@ -93,7 +93,7 @@
 	</delete>
 	
     <delete id="deleteByUserIdAndMusicGroupId" parameterType="map">
-		DELETE FROM music_group_student_fee_ WHERE userId = #{userId} and music_group_id_ = #{musicGroupId}
+		DELETE FROM music_group_student_fee_ WHERE user_id_ = #{userId} and music_group_id_ = #{musicGroupId}
 	</delete>
 
     <!-- 分页查询 -->

+ 6 - 1
mec-biz/src/main/resources/config/mybatis/TeacherMapper.xml

@@ -267,7 +267,12 @@
         select id_ `key`,phone_ `value` FROM sys_user s WHERE FIND_IN_SET(id_,#{userIds}) AND s.phone_ IS NOT NULL
     </select>
 
-    <select id="findTeachers" resultMap="Teacher">
+    <resultMap id="TeacherBasicDto" type="com.ym.mec.biz.dal.dto.TeacherBasicDto">
+        <result property="id" column="id_"/>
+        <result property="username" column="username_"/>
+        <result property="realName" column="real_name_"/>
+    </resultMap>
+    <select id="findTeachers" resultMap="TeacherBasicDto">
         SELECT su.id_,su.username_,su.real_name_ FROM sys_user su
         <where>
             <if test="userIds != null">