Joburgess 5 年 前
コミット
071da7e1c4

+ 2 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/CourseScheduleDao.java

@@ -61,6 +61,8 @@ public interface CourseScheduleDao extends BaseDAO<Long, CourseSchedule> {
      */
     int batchDeleteCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
+    int batchDeleteCourseSchedulesWithLogic(@Param("courseScheduleIds") List<Long> courseScheduleIds);
+
     int batchDeleteAllCourseSchedules(@Param("courseScheduleIds") List<Long> courseScheduleIds);
 
     /**

+ 10 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/GroupClassService.java

@@ -41,6 +41,16 @@ public interface GroupClassService {
     boolean cleanGroupInfo(String groupId, GroupType groupType);
 
     /**
+     * @describe 隐藏课程组相关信息
+     * @author Joburgess
+     * @date 2020/2/17
+     * @param groupId: 课程组编号
+     * @param groupType: 课程组类型
+     * @return boolean
+     */
+    boolean hideGroupInfo(String groupId, GroupType groupType);
+
+    /**
      * @describe 关闭课程组
      * @author Joburgess
      * @date 2020/3/4

+ 18 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/GroupClassServiceImpl.java

@@ -110,6 +110,24 @@ public class GroupClassServiceImpl implements GroupClassService {
     }
 
     @Override
+    @Transactional(rollbackFor = Exception.class)
+    public boolean hideGroupInfo(String groupId, GroupType groupType) {
+        classGroupDao.deleteByGroupWithLogic(groupId,groupType);
+        classGroupStudentMapperDao.deleteByGroupWithLogic(groupId,groupType);
+        List<CourseSchedule> groupNotStartCourses = courseScheduleDao.findGroupNotStartCourses(groupId, groupType);
+        if(CollectionUtils.isEmpty(groupNotStartCourses)){
+            return true;
+        }
+        List<Long> courseIds = groupNotStartCourses.stream().map(CourseSchedule::getId).collect(Collectors.toList());
+        courseScheduleDao.batchDeleteCourseSchedulesWithLogic(courseIds);
+        courseScheduleTeacherSalaryDao.batchDeleteByCourseScheduleIds(courseIds);
+        courseScheduleStudentPaymentDao.deleteByCourseSchedule(courseIds);
+        teacherAttendanceDao.batchDeleteByCourseSchedules(courseIds);
+        studentAttendanceDao.deleteByCourseSchedules(courseIds);
+        return true;
+    }
+
+    @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
     public void cancelGroup(Long groupId, GroupType groupType, BigDecimal refundAmount) {
         if(Objects.isNull(groupId)){

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

@@ -477,6 +477,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		}
 		vipGroup.setStatus(VipGroupStatusEnum.DELETE);
 		vipGroupDao.update(vipGroup);
+		groupClassService.hideGroupInfo(vipGroupId.toString(), GroupType.VIP);
 	}
 
 	@Override

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

@@ -301,6 +301,17 @@
         </foreach>
     </delete>
 
+    <update id="batchDeleteCourseSchedulesWithLogic">
+        UPDATE FROM course_schedule
+            SET del_flag_ = '1',update_time_ = NOW()
+        WHERE
+            CONCAT( class_date_, ' ', start_class_time_ ) &gt; NOW()
+            AND id_ IN
+            <foreach collection="courseScheduleIds" item="courseScheduleId" open="(" close=")" separator=",">
+                #{courseScheduleId}
+            </foreach>
+    </update>
+
     <delete id="batchDeleteAllCourseSchedules">
         DELETE FROM course_schedule
         WHERE id_ IN