|  | @@ -1,9 +1,5 @@
 | 
	
		
			
				|  |  |  package com.ym.mec.biz.service.impl;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -import static com.ym.mec.biz.dal.enums.GroupType.COMM;
 | 
	
		
			
				|  |  | -import static com.ym.mec.biz.dal.enums.GroupType.PRACTICE;
 | 
	
		
			
				|  |  | -import static com.ym.mec.biz.dal.enums.GroupType.VIP;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  import java.math.BigDecimal;
 | 
	
		
			
				|  |  |  import java.time.Duration;
 | 
	
		
			
				|  |  |  import java.time.Instant;
 | 
	
	
		
			
				|  | @@ -90,6 +86,8 @@ import com.ym.mec.util.collection.MapUtil;
 | 
	
		
			
				|  |  |  import com.ym.mec.util.date.DateConvertor;
 | 
	
		
			
				|  |  |  import com.ym.mec.util.date.DateUtil;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +import static com.ym.mec.biz.dal.enums.GroupType.*;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  @Service
 | 
	
		
			
				|  |  |  public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup> implements ClassGroupService {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -256,7 +254,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setUserId(Integer.parseInt(userId));
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setCreateTime(date);
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 | 
	
		
			
				|  |  | -            classGroupStudentMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +            classGroupStudentMapper.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |              classGroupStudentList.add(classGroupStudentMapper);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              StudentRegistration studentRegistration = new StudentRegistration();
 | 
	
	
		
			
				|  | @@ -341,7 +339,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setUserId(Integer.parseInt(userId));
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setCreateTime(date);
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 | 
	
		
			
				|  |  | -            classGroupStudentMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +            classGroupStudentMapper.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |              classGroupStudentList.add(classGroupStudentMapper);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              StudentRegistration studentRegistration = new StudentRegistration();
 | 
	
	
		
			
				|  | @@ -381,7 +379,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          classGroup.setSubjectIdList(subjectIds);
 | 
	
		
			
				|  |  |          classGroup.setName(name);
 | 
	
		
			
				|  |  |          classGroup.setType(ClassGroupTypeEnum.MIX);
 | 
	
		
			
				|  |  | -        classGroup.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +        classGroup.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |          classGroup.setExpectStudentNum(studentNum);
 | 
	
		
			
				|  |  |          classGroup.setStudentNum(studentNum);
 | 
	
		
			
				|  |  |          classGroup.setCreateTime(date);
 | 
	
	
		
			
				|  | @@ -401,7 +399,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |              mixClassGroupStudentMapper.setUserId(classGroupStudentMapper.getUserId());
 | 
	
		
			
				|  |  |              mixClassGroupStudentMapper.setCreateTime(date);
 | 
	
		
			
				|  |  |              mixClassGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 | 
	
		
			
				|  |  | -            mixClassGroupStudentMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +            mixClassGroupStudentMapper.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |              mixClassGroupStudentMappers.add(mixClassGroupStudentMapper);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              userIdList.add(classGroupStudentMapper.getUserId());
 | 
	
	
		
			
				|  | @@ -455,7 +453,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                  classGroupTeacherMapperDao.delClassGroupTeacherMapper(classGroupIds);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  List<CourseSchedule> classGroupNoStartCourseSchedules = courseScheduleService.findClassGroupNoStartCourseSchedules(classGroupIds,
 | 
	
		
			
				|  |  | -                        GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                        MUSIC);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |                  if (classGroupNoStartCourseSchedules.size() > 0) {
 | 
	
		
			
				|  |  |                      List<Long> courseScheduleIds = classGroupNoStartCourseSchedules.stream().map(courseSchedule -> courseSchedule.getId())
 | 
	
	
		
			
				|  | @@ -486,7 +484,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                  Date date;
 | 
	
		
			
				|  |  |                  date = new Date();
 | 
	
		
			
				|  |  |                  highClassGroup.setId(null);
 | 
	
		
			
				|  |  | -                highClassGroup.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                highClassGroup.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |                  highClassGroup.setCreateTime(date);
 | 
	
		
			
				|  |  |                  highClassGroup.setUpdateTime(date);
 | 
	
		
			
				|  |  |                  highClassGroup.setType(ClassGroupTypeEnum.HIGH);
 | 
	
	
		
			
				|  | @@ -500,7 +498,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                  classGroupTeacherMapper.setClassGroupId(highClassGroup.getId());
 | 
	
		
			
				|  |  |                  classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
 | 
	
		
			
				|  |  |                  classGroupTeacherMapper.setUserId(highClassGroup.getUserId());
 | 
	
		
			
				|  |  | -                classGroupTeacherMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                classGroupTeacherMapper.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |                  classGroupTeacherMapper.setCreateTime(date);
 | 
	
		
			
				|  |  |                  classGroupTeacherMapper.setUpdateTime(date);
 | 
	
		
			
				|  |  |                  classGroupTeacherMapperList.add(classGroupTeacherMapper);
 | 
	
	
		
			
				|  | @@ -550,7 +548,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                          courseSchedule.setUpdateTime(date);
 | 
	
		
			
				|  |  |                          courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
 | 
	
		
			
				|  |  |                          courseSchedule.setType(CourseSchedule.CourseScheduleType.HIGH);
 | 
	
		
			
				|  |  | -                        courseSchedule.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                        courseSchedule.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |                          courseSchedule.setName(courseScheduleName + "-" + CourseSchedule.CourseScheduleType.HIGH.getMsg());
 | 
	
		
			
				|  |  |                          courseSchedule.setOrganId(musicGroup.getOrganId());
 | 
	
		
			
				|  |  |                          courseScheduleList.add(courseSchedule);
 | 
	
	
		
			
				|  | @@ -781,8 +779,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          Set<String> vipIds = vipCourses.stream().map(CourseListDto::getVipId).collect(Collectors.toSet());
 | 
	
		
			
				|  |  |          Map<String, String> vipStuNames = MapUtil.convertIntegerMap(classGroupDao.findVipStuNames(StringUtils.join(vipIds, ","), "VIP"));
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        if (!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.MUSIC))) {
 | 
	
		
			
				|  |  | -            musicGroupIds = typeGroupMap.get(GroupType.MUSIC).stream().map(Group::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        if (!CollectionUtils.isEmpty(typeGroupMap.get(MUSIC))) {
 | 
	
		
			
				|  |  | +            musicGroupIds = typeGroupMap.get(MUSIC).stream().map(Group::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              musicGroupIds = null;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -830,8 +828,8 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          courseListDtos.addAll(practiceCourse);
 | 
	
		
			
				|  |  |          //检测对应乐团是否已申请退费
 | 
	
		
			
				|  |  |          List<Map<String, Integer>> isApplyMaps;
 | 
	
		
			
				|  |  | -        if (!CollectionUtils.isEmpty(typeGroupMap.get(GroupType.MUSIC))) {
 | 
	
		
			
				|  |  | -            musicGroupIds = typeGroupMap.get(GroupType.MUSIC).stream().map(Group::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  | +        if (!CollectionUtils.isEmpty(typeGroupMap.get(MUSIC))) {
 | 
	
		
			
				|  |  | +            musicGroupIds = typeGroupMap.get(MUSIC).stream().map(Group::getId).collect(Collectors.toList());
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              musicGroupIds = null;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -1322,7 +1320,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          Map<Integer, Long> classGroupStudentNumMap = MapUtil.convertIntegerMap(classGroupStudentNumMaps);
 | 
	
		
			
				|  |  |          Map<Integer, Long> currentClassTimes;
 | 
	
		
			
				|  |  |          Map<Integer, Long> noStartClassTimes = MapUtil.convertIntegerMap(courseScheduleDao.countCurrentNumByClassGroupId(classGroupIds, null));
 | 
	
		
			
				|  |  | -        if (!type.equals(GroupType.MUSIC)) {
 | 
	
		
			
				|  |  | +        if (!type.equals(MUSIC)) {
 | 
	
		
			
				|  |  |              currentClassTimes = noStartClassTimes;
 | 
	
		
			
				|  |  |          } else {
 | 
	
		
			
				|  |  |              currentClassTimes = MapUtil.convertIntegerMap(courseScheduleDao.countCurrentNumByClassGroupId(classGroupIds, user.getId()));
 | 
	
	
		
			
				|  | @@ -1531,6 +1529,14 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          truantStudent.addAll(otherStudent);
 | 
	
		
			
				|  |  |          truantStudent.addAll(leaveStudent);
 | 
	
		
			
				|  |  |          if (!CollectionUtils.isEmpty(truantStudent)) {
 | 
	
		
			
				|  |  | +            CourseSchedule schedule = courseScheduleDao.get(courseScheduleId);
 | 
	
		
			
				|  |  | +            if(schedule.getGroupType() == MUSIC){
 | 
	
		
			
				|  |  | +                Set<Long> collect = truantStudent.stream().map(e -> e.getStudentId()).collect(Collectors.toSet());
 | 
	
		
			
				|  |  | +                Map<Integer,String> paymentStatusMap = MapUtil.convertIntegerMap(musicGroupPaymentCalenderDao.queryUserCoursePaymentStatus(collect,schedule.getMusicGroupId()));
 | 
	
		
			
				|  |  | +                truantStudent.forEach(studentAttendanceViewDto -> {
 | 
	
		
			
				|  |  | +                    studentAttendanceViewDto.setPaymentStatus(paymentStatusMap.get(studentAttendanceViewDto.getStudentId().intValue()));
 | 
	
		
			
				|  |  | +                });
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              List<StudentAttendanceViewDto> tempIds = truantStudent.stream()
 | 
	
		
			
				|  |  |                      .filter(studentAttendanceViewDto -> studentAttendanceViewDto.getGroupType().equals("MUSIC"))
 | 
	
		
			
				|  |  |                      .collect(Collectors.toList());
 | 
	
	
		
			
				|  | @@ -1623,7 +1629,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          classGroup.setStudentNum(studentList.size());
 | 
	
		
			
				|  |  |          classGroup.setType(classGroup4MixDtos.get(0).getType());
 | 
	
		
			
				|  |  |          classGroup.setDelFlag(0);
 | 
	
		
			
				|  |  | -        classGroup.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +        classGroup.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |          classGroup.setCurrentClassTimes(0);
 | 
	
		
			
				|  |  |          classGroup.setTotalClassTimes(classGroup4MixDtos.get(0).getCourseTimes());
 | 
	
		
			
				|  |  |          classGroup.setCreateTime(date);
 | 
	
	
		
			
				|  | @@ -1646,7 +1652,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setUserId(studentRegistration.getUserId());
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setCreateTime(date);
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 | 
	
		
			
				|  |  | -            classGroupStudentMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +            classGroupStudentMapper.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |              classGroupStudentMapperList.add(classGroupStudentMapper);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              userIds.add(studentRegistration.getUserId());
 | 
	
	
		
			
				|  | @@ -1752,7 +1758,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                      courseSchedule.setUpdateTime(date);
 | 
	
		
			
				|  |  |                      courseSchedule.setTeachMode(teachMode);
 | 
	
		
			
				|  |  |                      courseSchedule.setType(classGroup4MixDto.getCourseType());
 | 
	
		
			
				|  |  | -                    courseSchedule.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                    courseSchedule.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |                      courseSchedule.setOrganId(musicGroup.getOrganId());
 | 
	
		
			
				|  |  |                      if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MIX)) {
 | 
	
		
			
				|  |  |                          courseSchedule.setName(classGroup4MixDto.getCourseType().getMsg());
 | 
	
	
		
			
				|  | @@ -2044,7 +2050,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                      } else {
 | 
	
		
			
				|  |  |                          courseSchedule.setName(subjectNames + "-" + classGroup4MixDto.getCourseType().getMsg());
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  | -                    courseSchedule.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                    courseSchedule.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |                      courseSchedule.setTeacherId(teacherId);
 | 
	
		
			
				|  |  |                      courseSchedule.setActualTeacherId(teacherId);
 | 
	
		
			
				|  |  |                      courseSchedule.setOrganId(musicGroup.getOrganId());
 | 
	
	
		
			
				|  | @@ -2209,7 +2215,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          classGroup.setExpectStudentNum(studentList.size());
 | 
	
		
			
				|  |  |          classGroup.setStudentNum(studentList.size());
 | 
	
		
			
				|  |  |          classGroup.setType(ClassGroupTypeEnum.SNAP);
 | 
	
		
			
				|  |  | -        classGroup.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +        classGroup.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |          classGroup.setDelFlag(0);
 | 
	
		
			
				|  |  |          classGroup.setTotalClassTimes(classGroup4MixDtos.get(0).getCourseTimes());
 | 
	
		
			
				|  |  |          classGroup.setCurrentClassTimes(0);
 | 
	
	
		
			
				|  | @@ -2228,7 +2234,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setUserId(studentRegistration.getUserId());
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setCreateTime(date);
 | 
	
		
			
				|  |  |              classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
 | 
	
		
			
				|  |  | -            classGroupStudentMapper.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +            classGroupStudentMapper.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |              classGroupStudentMapperList.add(classGroupStudentMapper);
 | 
	
		
			
				|  |  |              userIds.add(studentRegistration.getUserId());
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -2330,7 +2336,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |                      courseSchedule.setUpdateTime(date);
 | 
	
		
			
				|  |  |                      courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
 | 
	
		
			
				|  |  |                      courseSchedule.setType(classGroup4MixDto.getCourseType());
 | 
	
		
			
				|  |  | -                    courseSchedule.setGroupType(GroupType.MUSIC);
 | 
	
		
			
				|  |  | +                    courseSchedule.setGroupType(MUSIC);
 | 
	
		
			
				|  |  |                      courseSchedule.setMusicGroupId(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  |                      if (classGroup4MixDto.getCourseType().equals(CourseSchedule.CourseScheduleType.MIX)) {
 | 
	
		
			
				|  |  |                          courseSchedule.setName(classGroup4MixDto.getCourseType().getMsg());
 | 
	
	
		
			
				|  | @@ -2760,7 +2766,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      @Override
 | 
	
		
			
				|  |  |      public Boolean checkSetSalary(String musicGroupId) {
 | 
	
		
			
				|  |  | -        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalary = courseScheduleTeacherSalaryDao.findCourseScheduleTeacherSalaryByMusicGroupId(musicGroupId, GroupType.MUSIC);
 | 
	
		
			
				|  |  | +        List<CourseScheduleTeacherSalary> courseScheduleTeacherSalary = courseScheduleTeacherSalaryDao.findCourseScheduleTeacherSalaryByMusicGroupId(musicGroupId, MUSIC);
 | 
	
		
			
				|  |  |          if (courseScheduleTeacherSalary != null && courseScheduleTeacherSalary.size() > 0) {
 | 
	
		
			
				|  |  |              return true;
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -3059,7 +3065,7 @@ public class ClassGroupServiceImpl extends BaseServiceImpl<Integer, ClassGroup>
 | 
	
		
			
				|  |  |          if (classGroup != null) {
 | 
	
		
			
				|  |  |              classGroup.setViewGroupName(classGroup.getName());
 | 
	
		
			
				|  |  |              classGroup.setName(StringUtils.isEmpty(classGroup.getGroupName()) ? classGroup.getName() : classGroup.getGroupName());
 | 
	
		
			
				|  |  | -            if (classGroup.getGroupType() == GroupType.MUSIC) {
 | 
	
		
			
				|  |  | +            if (classGroup.getGroupType() == MUSIC) {
 | 
	
		
			
				|  |  |                  MusicGroup musicGroup = musicGroupDao.get(classGroup.getMusicGroupId());
 | 
	
		
			
				|  |  |                  if (musicGroup != null) {
 | 
	
		
			
				|  |  |                      classGroup.setMusicGroupName(musicGroup.getName());
 |