Browse Source

Merge branch 'master' into payment-river

周箭河 5 years ago
parent
commit
c57e27772e

+ 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);
 
     /**

+ 2 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/SporadicChargeTypeEnum.java

@@ -12,7 +12,8 @@ public enum SporadicChargeTypeEnum implements BaseEnum<Integer, SporadicChargeTy
     VISITING_FEE(7,"上门费"),
     VIP_BUY(8,"VIP课购买"),
     RECHARGE(9,"账户余额"),
-    MUSIC_UPKEEP(10,"乐保服务");
+    MUSIC_UPKEEP(10,"乐保服务"),
+    OTHER(11,"其他");
 
     private Integer code;
 

+ 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)){

+ 4 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -473,12 +473,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		if(Objects.isNull(vipGroup)){
 			throw new BizException("课程组不存在");
 		}
-		int totalCourseNum = courseScheduleDao.countTotalCourseScheduleNumWithGroup(vipGroupId.toString(), GroupType.VIP.getCode());
-		if(totalCourseNum>0){
+		Integer courseEndNum = courseScheduleDao.findCourseEndNum(vipGroupId);
+		if(courseEndNum>0){
 			throw new BizException("此状态课程组不支持删除");
 		}
 		vipGroup.setStatus(VipGroupStatusEnum.DELETE);
 		vipGroupDao.update(vipGroup);
+		groupClassService.hideGroupInfo(vipGroupId.toString(), GroupType.VIP);
 	}
 
 	@Override
@@ -696,7 +697,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 						allStudentNum=Long.valueOf(0);
 					}
 
-					if((Objects.isNull(aLong)||aLong<=0)
+					if((Objects.isNull(aLong1)||aLong1<=0)
 							&&(classGroup.getStudentNum()<=0)){
 						vipGroup.setEnableDelete(1);
 					}

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

@@ -301,6 +301,17 @@
         </foreach>
     </delete>
 
+    <update id="batchDeleteCourseSchedulesWithLogic">
+        UPDATE 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

+ 3 - 0
mec-web/src/main/java/com/ym/mec/web/controller/ExportController.java

@@ -828,6 +828,7 @@ public class ExportController extends BaseController {
                 row.setMusicalFee(BigDecimal.ZERO);
                 row.setTeachingFee(BigDecimal.ZERO);
                 if (row.getChargeType() != null) {
+
                     if (row.getChargeType().equals(1)) {
                         row.setSporadicType("考级");
                     } else if (row.getChargeType().equals(2)) {
@@ -846,6 +847,8 @@ public class ExportController extends BaseController {
                         row.setSporadicType("账户充值");
                     } else if (row.getChargeType().equals(10)) {
                         row.setSporadicType("乐保服务");
+                    } else if (row.getChargeType().equals(11)) {
+                        row.setSporadicType("其他");
                     }
                 }
                 School userSchool = musicGroupDao.findUserSchool(row.getUserId());