周箭河 5 rokov pred
rodič
commit
b6fd5ce02d

+ 10 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupDao.java

@@ -344,7 +344,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @param musicGroupIds
      * @return
      */
-    List<CourseListDto> queryStudentVipCourses(@Param("musicGroupIds") String musicGroupIds,@Param("userId") Integer userId);
+    List<CourseListDto> queryStudentVipCourses(@Param("musicGroupIds") String musicGroupIds, @Param("userId") Integer userId);
 
     /**
      * 获取学生端,学员乐团课列表详情
@@ -352,7 +352,7 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      * @param musicGroupIds
      * @return
      */
-    List<CourseListDto> queryStudentMusicGroupCourses(@Param("musicGroupIds") String musicGroupIds,@Param("userId") Integer userId);
+    List<CourseListDto> queryStudentMusicGroupCourses(@Param("musicGroupIds") String musicGroupIds, @Param("userId") Integer userId);
 
     /**
      * 查询对应类型所有班级列表
@@ -424,5 +424,12 @@ public interface ClassGroupDao extends BaseDAO<Integer, ClassGroup> {
      */
     List<HighClassGroupDto> findClassGroupByMusicGroupIdAndSubjectId(@Param("musicGroupId") String musicGroupId, @Param("subjectId") Integer subjectId);
 
-    int batchUpdateClassGroupCourseTimes(@Param("classGroupCourseTimes") Map<Integer,Integer> classGroupCourseTimes);
+    int batchUpdateClassGroupCourseTimes(@Param("classGroupCourseTimes") Map<Integer, Integer> classGroupCourseTimes);
+
+    /**
+     * 批量软删除班级
+     * @param classGroupIds
+     * @return
+     */
+    int batchSoftDelete(@Param("classGroupIds") List<Integer> classGroupIds);
 }

+ 8 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/ClassGroupTeacherMapperDao.java

@@ -62,4 +62,12 @@ public interface ClassGroupTeacherMapperDao extends BaseDAO<Long, ClassGroupTeac
      * @return
      */
     List<ClassGroupTeacherMapper> getClassGroupTeacherMapper(@Param("classGroupTeacherMapperList") List<ClassGroupTeacherMapper> classGroupTeacherMapperList);
+
+    /**
+     * 批量删除班级老师关系
+     *
+     * @param classGroupIds
+     * @return
+     */
+    int delClassGroupTeacherMapper(@Param("classGroupIds") List<Integer> classGroupIds);
 }

+ 10 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -540,19 +540,26 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
 
     /**
      * 获取一节班级的课程
+     *
      * @param classGroupId
      * @return
      */
     CourseSchedule findOneCourseScheduleByClassGroupId(@Param("classGroupId") Integer classGroupId);
 
     /**
+     * @param classGroupIds: 班级编号列表
+     * @return java.util.List<java.util.Map < java.lang.Integer, java.lang.Integer>>
      * @describe 统计指定班级的课程数量
      * @author Joburgess
      * @date 2019/11/12
-     * @param classGroupIds: 班级编号列表
-     * @return java.util.List<java.util.Map<java.lang.Integer,java.lang.Integer>>
      */
-    List<Map<Integer,Integer>> countClassGroupCourseTimes(@Param("classGroupIds") List<Integer> classGroupIds);
+    List<Map<Integer, Integer>> countClassGroupCourseTimes(@Param("classGroupIds") List<Integer> classGroupIds);
 
 
+    /**
+     * 根据班级编号列表删除课程
+     * @param classGroupIds 班级编号列表
+     * @return
+     */
+    int deleteCourseSchedulesByClassGroupIds(@Param("classGroupIds") List<Integer> classGroupIds);
 }

+ 21 - 16
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ClassGroupServiceImpl.java

@@ -258,18 +258,23 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
     @Override
     @Transactional(rollbackFor = Exception.class)
     public List<HighClassGroupDto> addHighClassGroup(List<HighClassGroupDto> highClassGroupList) throws Exception {
+        MusicGroup musicGroup = musicGroupDao.get(highClassGroupList.get(0).getMusicGroupId());
 
-        Integer schoolId = null;
+        List<ClassGroup> classGroups = classGroupDao.findClassGroupByMusicGroupIdAndType(musicGroup.getId(), ClassGroupTypeEnum.HIGH);
+        List<Integer> classGroupIds = classGroups.stream().map(classGroup -> classGroup.getId()).collect(Collectors.toList());
+        //删除基础提高班
+        classGroupDao.batchSoftDelete(classGroupIds);
+        //删除基础提高班课程
+        courseScheduleDao.deleteCourseSchedulesByClassGroupIds(classGroupIds);
+        //删除基础提高老师
+        classGroupTeacherMapperDao.delClassGroupTeacherMapper(classGroupIds);
 
-        for (HighClassGroupDto highClassGroup : highClassGroupList) {
-
-            if (schoolId == null) {
-                MusicGroup musicGroup = musicGroupDao.get(highClassGroup.getMusicGroupId());
-                if (musicGroup != null) {
-                    schoolId = musicGroup.getSchoolId();
-                }
-            }
+        for (ClassGroup classGroup : classGroups) {
+            imFeignService.groupDismiss(new ImGroupModel(classGroup.getId().toString(), null, classGroup.getName()));
+        }
 
+        Integer schoolId = musicGroup.getSchoolId();
+        for (HighClassGroupDto highClassGroup : highClassGroupList) {
             //1、插入班级信息
             Date date;
             date = new Date();
@@ -486,18 +491,18 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         List<String> musicGroupIds = courseScheduleDao.queryMusicGroupIds(params);
         courseListDtos = new ArrayList<>();
         //获取学员所购买的vip课列表详情
-        List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","),userId);
+        List<CourseListDto> vipCourses = classGroupDao.queryStudentVipCourses(StringUtils.join(musicGroupIds, ","), userId);
         //获取vip课的学生列表
         Set<String> vipIds = vipCourses.stream().map(CourseListDto::getMusicGroupId).collect(Collectors.toSet());
         Map<String, String> vipStuNames = MapUtil.convertMybatisMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ",")));
         //获取学员的乐团列表详情
-        courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","),userId));
+        courseListDtos.addAll(classGroupDao.queryStudentMusicGroupCourses(StringUtils.join(musicGroupIds, ","), userId));
         courseListDtos.addAll(vipCourses);
         //检测对应乐团是否已申请退费
         List<Map<String, Integer>> isApplyMaps;
-        if(musicGroupIds != null && musicGroupIds.size() > 0){
+        if (musicGroupIds != null && musicGroupIds.size() > 0) {
             isApplyMaps = studentApplyRefundsDao.checkIsApplyRefund(musicGroupIds, userId);
-        }else {
+        } else {
             isApplyMaps = new ArrayList<>();
         }
         Map<String, Integer> isApplyMap = MapUtil.convertIntegerMap(isApplyMaps);
@@ -563,7 +568,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
         if (imGroupModels != null && imGroupModels.size() > 0) {
             Set<String> classGroupIds = imGroupModels.stream().map(e -> e.getId()).collect(Collectors.toSet());
             //获取班级老师总数map
-            Map<Integer, Integer> numsMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ",")))),HashMap.class);
+            Map<Integer, Integer> numsMap = JSONObject.parseObject(JSONObject.toJSONString(MapUtil.convertIntegerMap(classGroupDao.countTeacherNums(StringUtils.join(classGroupIds, ",")))), HashMap.class);
             imGroupModels.forEach(e -> {
                 Integer num = numsMap.get(Integer.parseInt(e.getId()));
                 e.setCount((num == null ? 0 : num) + e.getCount());
@@ -1536,13 +1541,13 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
                 List<CourseScheduleTeacherSalary> currentCourseTeachingTeachers = courseScheduleTeachingTeacherMaps.get(e.getCourseScheduleId().longValue());
                 if (CollectionUtils.isEmpty(currentCourseTeachingTeachers)) {
                     currentCourseTeachingTeachers = new ArrayList<>();
-                    if(currentBishopTeacher != null){
+                    if (currentBishopTeacher != null) {
                         currentCourseTeachingTeachers.add(currentBishopTeacher);
                     }
                     e.setTeacherNum(currentCourseTeachingTeachers.size());
                     e.setTeachingTeachers(currentCourseTeachingTeachers);
                 } else {
-                    if(currentBishopTeacher != null){
+                    if (currentBishopTeacher != null) {
                         currentCourseTeachingTeachers.add(currentBishopTeacher);
                     }
                     e.setTeachingTeachers(currentCourseTeachingTeachers);

+ 8 - 0
mec-biz/src/main/resources/config/mybatis/ClassGroupMapper.xml

@@ -735,4 +735,12 @@
         AND type_='HIGH' AND del_flag_='0';
     </select>
 
+    <!-- 根据主键批量删除班级-->
+    <delete id="batchSoftDelete">
+        UPDATE class_group SET del_flag_ = 1 WHERE id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+            #{classGroupId}
+        </foreach>
+    </delete>
+
 </mapper>

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

@@ -139,4 +139,12 @@
             #{item.classGroupId}
         </foreach>
     </select>
+
+    <!-- 删除对应班级老师关联关系 -->
+    <delete id="delClassGroupTeacherMapper">
+        DELETE FROM class_group_teacher_mapper WHERE class_group_id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" index="index" open="(" close=")" separator=",">
+            #{classGroupId}
+        </foreach>
+    </delete>
 </mapper>

+ 6 - 0
mec-biz/src/main/resources/config/mybatis/CourseScheduleMapper.xml

@@ -1293,4 +1293,10 @@
 
         GROUP BY class_group_id_
     </select>
+    <delete id="deleteCourseSchedulesByClassGroupIds">
+        DELETE FROM course_schedule WHERE class_group_id_ IN
+        <foreach collection="classGroupIds" item="classGroupId" open="(" close=")" separator=",">
+            #{classGroupId}
+        </foreach>
+    </delete>
 </mapper>