| 
					
				 | 
			
			
				@@ -19,6 +19,8 @@ import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Set; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -32,39 +34,6 @@ import com.alibaba.fastjson.TypeReference; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.client.SysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.entity.SysUserRole; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.ChargeTypeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.ClassGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.CooperationOrganDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.CourseScheduleDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.CourseScheduleStudentPaymentDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.EmployeeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupPaymentEntitiesDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupPurchaseListDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupQuitDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupSubjectGoodsGroupDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.OrganizationDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.SchoolDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.SporadicChargeInfoDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.StudentDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.StudentRegistrationDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.StudentVisitDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.SubjectChangeDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.SubjectDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.SysConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.TeacherAttendanceDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.dao.TeacherDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.BasicUserDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.CloseMusicGroupDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.CourseFormDto; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,35 +45,7 @@ import com.ym.mec.biz.dal.dto.SporadicPayDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.SubFeeSettingDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.SubjectRegisterDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.UpdateExpectedNumDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.ApprovalStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.ChargeType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.ClassGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.CooperationOrgan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.CourseSchedule; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.CourseScheduleTeacherSalary; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.Goods; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupBuildLog; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupPurchaseList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupQuit; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.Organization; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.School; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.SporadicChargeInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.Student; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.StudentPaymentOrder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.StudentRegistration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.Subject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.SubjectChange; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.SysUserCashAccount; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.page.MusicGroupQueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.ClassGroupService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.ClassGroupStudentMapperService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -180,6 +121,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SysUserCashAccountDetailService sysUserCashAccountDetailService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private MusicGroupPaymentCalenderStudentDetailDao musicGroupPaymentCalenderStudentDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private MusicGroupQuitDao musicGroupQuitDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2156,17 +2100,31 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             rechargeDetail.setPerAmount(studentPaymentOrder.getPerAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             sysUserCashAccountDetailService.insert(rechargeDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderDetail.getMusicGroupPaymentCalenderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             List<StudentPaymentOrderDetail> paymentOrderDetails = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            courseSettings.forEach(e -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentPaymentOrderDetail.setType(OrderDetailTypeEnum.valueOf(e.getCourseType().getCode())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentPaymentOrderDetail.setPrice(e.getCourseCurrentPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentPaymentOrderDetail.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentPaymentOrderDetail.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                paymentOrderDetails.add(studentPaymentOrderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.queryCalenderCourseSettings(calenderDetail.getMusicGroupPaymentCalenderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //跨团合班没有settings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(courseSettings.size() == 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                List<MusicGroupPaymentCalenderStudentDetail> studentDetails = musicGroupPaymentCalenderStudentDetailDao.findByBatchNoAndUserId(paymentCalender.getBatchNo(), userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                for (MusicGroupPaymentCalenderStudentDetail studentDetail : studentDetails) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setType(OrderDetailTypeEnum.valueOf(studentDetail.getCourseType())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setPrice(studentDetail.getCourseCurrentPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    paymentOrderDetails.add(studentPaymentOrderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                courseSettings.forEach(e -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setType(OrderDetailTypeEnum.valueOf(e.getCourseType().getCode())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setPrice(e.getCourseCurrentPrice()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    paymentOrderDetails.add(studentPaymentOrderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             studentPaymentOrderDetailService.batchAdd(paymentOrderDetails); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             //缴费 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2369,9 +2327,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         quitUserIdList.add(oldDirectorUserId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer,String> userRoleMap = new HashMap<Integer, String>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userRoleMap.put(directorUserId, ImRoleType.DIRECTOR.getDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userRoleMap.put(educationalTeacherId, ImRoleType.EDUCATION.getDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        userRoleMap.put(teamTeacherId, ImRoleType.TEAM_TEACHER.getDesc()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userRoleMap.put(directorUserId, "乐队指导"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userRoleMap.put(educationalTeacherId, "运营主管"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        userRoleMap.put(teamTeacherId, "教务老师"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         classGroups.forEach(e -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         	imGroupMemberService.quit(e.getId().longValue(), quitUserIdList); 
			 |