Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

Joburgess 5 лет назад
Родитель
Сommit
130b9616c7

+ 12 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/ClassGroup4MixDto.java

@@ -2,6 +2,7 @@ package com.ym.mec.biz.dal.dto;
 
 import com.ym.mec.biz.dal.entity.ClassGroupTeacherMapper;
 import com.ym.mec.biz.dal.entity.CourseSchedule;
+import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 
 import java.util.List;
@@ -41,6 +42,9 @@ public class ClassGroup4MixDto {
     @ApiModelProperty(value = "排课方式", required = true)
     private List<CourseTimeDto> courseTimeDtoList;
 
+    @ApiModelProperty(value = "班级类型", required = true)
+    private ClassGroupTypeEnum type;
+
     public String getMusicGroupId() {
         return musicGroupId;
     }
@@ -128,4 +132,12 @@ public class ClassGroup4MixDto {
     public void setCourseType(CourseSchedule.CourseScheduleType courseType) {
         this.courseType = courseType;
     }
+
+    public ClassGroupTypeEnum getType() {
+        return type;
+    }
+
+    public void setType(ClassGroupTypeEnum type) {
+        this.type = type;
+    }
 }

+ 26 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -698,11 +698,19 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public void delSingle(Integer classGroupId) {
+        ClassGroup classGroup = classGroupDao.get(classGroupId);
+
         //删除学员班级关联关系
         classGroupStudentMapperDao.deleteByClassId(classGroupId);
         studentRegistrationDao.deleteClassGroup(classGroupId);
+
         //删除班级跟合奏班关系
-        classGroupRelationDao.deleteBySubClassId(classGroupId);
+        if (classGroup.getType().equals(ClassGroupTypeEnum.MIX)) { //合奏班
+            classGroupRelationDao.deleteByClassId(classGroupId);
+        } else {
+            classGroupRelationDao.deleteBySubClassId(classGroupId);
+        }
+
         //删除班级未开始课程
         List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
         if (courseScheduleList.size() > 0) {
@@ -726,6 +734,15 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroupStudentMapperDao.deleteByClassId(classGroupId);
         //删除班级关系
         classGroupRelationDao.deleteByClassId(classGroupId);
+        //删除班级未开始课程
+        List<CourseSchedule> courseScheduleList = courseScheduleService.findNoStartCoursesByClassGroupId(classGroupId);
+        if (courseScheduleList.size() > 0) {
+            List<Long> courseScheduleIds = courseScheduleList.stream().map(courseSchedule -> courseSchedule.getId()).collect(Collectors.toList());
+            courseScheduleDao.batchDeleteCourseSchedules(courseScheduleIds);
+            courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseScheduleIds);
+            teacherAttendanceDao.batchDeleteByCourseSchedules(courseScheduleIds);
+            courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseScheduleIds);
+        }
         //删除合奏班
         classGroupDao.delete(classGroupId);
         //删除im群组
@@ -981,6 +998,9 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         String subjectIds = subjectList.stream().map(subject -> subject.getId().toString()).collect(Collectors.joining(","));
         String subjectNames = subjectList.stream().map(subject -> subject.getName()).collect(Collectors.joining("/"));
 
+        if (classGroup4MixDto.getType() == null) {
+            classGroup4MixDto.setType(ClassGroupTypeEnum.NORMAL);
+        }
         //1、新建班级
         ClassGroup classGroup = new ClassGroup();
         classGroup.setMusicGroupId(classGroup4MixDto.getMusicGroupId());
@@ -988,7 +1008,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         classGroup.setName(classGroup4MixDto.getClassGroupName());
         classGroup.setExpectStudentNum(studentList.size());
         classGroup.setStudentNum(studentList.size());
-        classGroup.setType(ClassGroupTypeEnum.NORMAL);
+        classGroup.setType(classGroup4MixDto.getType());
         classGroup.setDelFlag(0);
         classGroup.setGroupType(GroupType.MUSIC);
         classGroup.setCurrentClassTimes(0);
@@ -1002,8 +1022,10 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
         List<Integer> userIds = new ArrayList<>(); //用户ids
         for (StudentRegistration studentRegistration : studentList) {
-            studentRegistration.setClassGroupId(classGroup.getId());
-            studentRegistrationService.update(studentRegistration);
+            if (classGroup4MixDto.getType().equals(ClassGroupTypeEnum.NORMAL)) {
+                studentRegistration.setClassGroupId(classGroup.getId());
+                studentRegistrationService.update(studentRegistration);
+            }
 
             ClassGroupStudentMapper classGroupStudentMapper = new ClassGroupStudentMapper();
             classGroupStudentMapper.setMusicGroupId(musicGroupId);

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

@@ -154,7 +154,7 @@ public class ClassGroupStudentMapperServiceImpl extends BaseServiceImpl<Long, Cl
         while (iterator.hasNext()) {
         	Integer userId = Integer.parseInt(iterator.next());
             List<ClassGroupStudentMapper> highClassGroupHasUser = classGroupStudentMapperDao.findHighClassGroupHasUser(classGroup.getMusicGroupId(), userId, classGroup.getType());
-            if (highClassGroupHasUser != null && highClassGroupHasUser.size() > 0) {
+            if (!classGroup.getType().equals(ClassGroupTypeEnum.SNAP) && highClassGroupHasUser != null && highClassGroupHasUser.size() > 0) {
             	iterator.remove();
                 continue;
             }

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

@@ -928,7 +928,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 			
 			//更新班级人数
 			List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
-			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+			if (classGroupIdList != null && classGroupIdList.size() > 0) {
+				classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+			}
 			
 			// 删除未上课
 			courseScheduleService.batchDeleteMusicGroupCourseWithStudent(musicGroupId, userId, GroupType.MUSIC);
@@ -1016,7 +1018,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 		
 		//更新班级人数
 		List<Integer> classGroupIdList = classGroupStudentMapperDao.queryClassGroupIdList(musicGroupId, userId, GroupType.MUSIC);
-		classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+		if (classGroupIdList != null && classGroupIdList.size() > 0) {
+			classGroupDao.batchUpdateStudentNumMinusOne(classGroupIdList);
+		}
 		
 		// 删除未上课
 		courseScheduleService.batchDeleteMusicGroupCourseWithStudent(musicGroupId, userId, GroupType.MUSIC);

+ 16 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -902,14 +902,26 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Override
     public List<StudentRegistration> findMusicGroupStuNoClassType(String musicGroupId, ClassGroupTypeEnum type, Integer subjectId) {
         List<StudentRegistration> students = studentRegistrationDao.findMusicGroupStudent(musicGroupId, subjectId);
+        List<Subject> subjectList = subjectService.findAll(new HashMap<>());
+
         List<ClassGroupStudentMapper> classGroupStudentMappers = classGroupStudentMapperDao.findMusicGroupClassGroupByType(musicGroupId, type);
-        for (StudentRegistration student : students) {
+        Iterator<StudentRegistration> iterator = students.iterator();
+        while (iterator.hasNext()) {
+            StudentRegistration student = iterator.next();
+            for (Subject subject : subjectList) {
+                if (student.getActualSubjectId().equals(subject.getId())) {
+                    student.setSubjectName(subject.getName());
+                    break;
+                }
+            }
+            if (type.equals(ClassGroupTypeEnum.SNAP)) continue;
             for (ClassGroupStudentMapper classGroupStudentMapper : classGroupStudentMappers) {
-                if (classGroupStudentMapper.getUserId().equals(student.getUserId())) {
-                    students.remove(student);
+                if (student.getUserId().equals(classGroupStudentMapper.getUserId())) {
+                    iterator.remove();
+                    break;
                 }
             }
         }
-        return null;
+        return students;
     }
 }

+ 3 - 6
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -534,7 +534,7 @@
 
     <sql id="queryMusicGroupCourseScheduleSql">
         <where>
-            cg.del_flag_ = 0 AND cgtm.teacher_role_ = 'BISHOP' AND cg.group_type_ = 'MUSIC'
+            cg.del_flag_ = 0  AND ta.teacher_id_ = cs.actual_teacher_id_ AND cg.group_type_ = 'MUSIC'
             <if test="classScheduleType != null">
                 AND cs.type_ = #{classScheduleType}
             </if>
@@ -574,8 +574,7 @@
         IF(ISNULL(ta.sign_out_status_),3,ta.sign_out_status_) sign_out_status_
         FROM course_schedule cs
         LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
-        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_ AND ta.teacher_id_ = cs.actual_teacher_id_
-        LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cs.class_group_id_
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
         <include refid="queryMusicGroupCourseScheduleSql"/>
         ORDER BY cs.class_date_,cs.start_class_time_
         <include refid="global.limit"/>
@@ -585,8 +584,7 @@
         SELECT COUNT(cs.id_)
         FROM course_schedule cs
         LEFT JOIN class_group cg ON cg.id_ = cs.class_group_id_
-        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_ AND ta.teacher_id_ = cs.actual_teacher_id_
-        LEFT JOIN class_group_teacher_mapper cgtm ON cgtm.class_group_id_ = cs.class_group_id_
+        LEFT JOIN teacher_attendance ta ON ta.course_schedule_id_ = cs.id_
         <include refid="queryMusicGroupCourseScheduleSql"/>
     </select>
 
@@ -784,7 +782,6 @@
         <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
             #{classGroupId}
         </foreach>
-        AND group_type_ = 'MUSIC'
     </delete>
 
     <select id="findClassGroupByType" resultMap="ClassGroupTeachers">

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

@@ -160,6 +160,5 @@
         <foreach collection="classGroupIds" item="classGroupId" index="index" open="(" close=")" separator=",">
             #{classGroupId}
         </foreach>
-        AND group_type_='MUSIC'
     </delete>
 </mapper>

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

@@ -233,7 +233,6 @@
 			#{courseScheduleId}
 		</foreach>
 		AND csts.teacher_role_=#{teacherRole}
-		AND csts.expect_salary_!=0
 	</select>
 	<select id="findMusicGroupSettlementTypeByCourse" resultType="map">
 		SELECT

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/ClassGroupStudentController.java

@@ -57,7 +57,7 @@ public class ClassGroupStudentController extends BaseController {
     }
 
 
-    @ApiOperation(value = "添加学生(小班课,单技班通用)")
+    @ApiOperation(value = "添加学生(通用)")
     @PostMapping("/addStudents")
     @PreAuthorize("@pcs.hasPermissions('classGroupStudent/addStudents')")
     @ApiImplicitParams({