| 
					
				 | 
			
			
				@@ -219,8 +219,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, Long> userCalenderDetailMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, Integer> activityuserMap = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //创建缴费明细 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MusicGroup musicGroup = musicGroupDao.get(musicGroupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityService.findByCalenderId(musicGroupPaymentCalenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Map<Integer, VipGroupActivity> collect = new HashMap<>(); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -245,13 +243,15 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDetail.setCourseIncome(this.getCourseIncome(calenderMember,musicGroup)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //设置云教练、课程收入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.setCourseIncome(calenderMember,musicGroupPaymentCalenderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer organId = musicGroupPaymentCalender.getOrganId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0 || musicGroupPaymentCalender.getPayUserType() == SCHOOL) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 添加会员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (calenderMember != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    cloudTeacherOrder.setOrganId(musicGroup.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    cloudTeacherOrder.setOrganId(organId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     cloudTeacherOrder.setType(calenderMember.getPeriod()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     cloudTeacherOrder.setAmount(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     cloudTeacherOrder.setStudentId(studentId); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -275,7 +275,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         activityUserMapper.setActivityId(calenderActivity.getActivityId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         activityUserMapper.setUserId(studentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        activityUserMapper.setOrganId(musicGroup.getOrganId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        activityUserMapper.setOrganId(organId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             activityUserMapper.setAddMemo("学校缴费新增学员"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         }else { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -317,16 +317,22 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private BigDecimal getCourseIncome(MusicGroupPaymentCalenderMember calenderMember,MusicGroup musicGroup){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if(Objects.nonNull(calenderMember) && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            //获取云教练溢出费用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                return calenderMember.getActualAmount().subtract(courseIncome); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void setCourseIncome(MusicGroupPaymentCalenderMember calenderMember, MusicGroupPaymentCalenderDetail calenderDetail){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(Objects.nonNull(calenderMember)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            MusicGroup musicGroup = musicGroupDao.get(calenderDetail.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //获取云教练溢出费用 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                BigDecimal courseIncome = memberFeeSettingService.getAmount(musicGroup.getOrganId(), 1, calenderMember.getPeriod(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        calenderMember.getNum(), MemberFeeSettingServiceImpl::getIncome); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if(calenderMember.getActualAmount().compareTo(courseIncome) > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    calenderDetail.setExpectMemberAmount(courseIncome); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    calenderDetail.setActualAmount(calenderMember.getActualAmount().subtract(courseIncome)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                calenderDetail.setExpectMemberAmount(calenderMember.getActualAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                calenderDetail.setActualAmount(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -475,58 +481,57 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl< 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void addCalenderDetail(StudentPaymentOrder studentPaymentOrder, StudentRegistration studentRegistration) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Date nowDate = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Integer tenantId = studentPaymentOrder.getTenantId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void addCalenderDetail(StudentPaymentOrder studentPaymentOrder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //缴费详情 calender detail 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderService.get(studentPaymentOrder.getCalenderId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Long currentPaymentCalenderId = studentPaymentOrder.getCalenderId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Long calenderId = studentPaymentOrder.getCalenderId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderService.get(calenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //查询缴费项目关联的订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<StudentPaymentOrder> orderList = studentPaymentOrderDao.findByCalenderId(currentPaymentCalenderId, studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<StudentPaymentOrder> orderList = studentPaymentOrderDao.findByCalenderId(calenderId, studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (orderList.size() == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // 更新实际缴费人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (musicGroupPaymentCalender.getActualNum() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupPaymentCalender.setActualNum(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                musicGroupPaymentCalender.setActualNum(musicGroupPaymentCalender.getActualNum() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 更新缴费人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Integer expectNum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (musicGroupPaymentCalender.getPaymentType() == MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (musicGroupPaymentCalender.getExpectNum() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    musicGroupPaymentCalender.setExpectNum(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    musicGroupPaymentCalender.setExpectNum(musicGroupPaymentCalender.getExpectNum() + 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                expectNum = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalender.setUpdateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDao.update(musicGroupPaymentCalender); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicGroupPaymentCalenderDao.updatePaymentNum(studentPaymentOrder.getCalenderId(),1,expectNum); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(currentPaymentCalenderId, studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = musicGroupPaymentCalenderDetailDao.findByCalenderIdAndUserId(calenderId, studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //只有报名订单,缴费详情才会是null 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (musicGroupPaymentCalenderDetail == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDetail.setTenantId(tenantId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicGroupPaymentCalenderDetail.setTenantId(studentPaymentOrder.getTenantId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDetail.setPayTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicGroupPaymentCalenderDetail.setPayTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setUseInCourse(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setOpen(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setUserStatus(null); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDetail.setCreateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDetail.setUpdateTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //判断乐团收费类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            MusicGroup musicGroup = musicGroupDao.get(musicGroupPaymentCalender.getMusicGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if(musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else if (musicGroup.getCourseViewType() == CourseViewTypeEnum.COURSE_FEE) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            musicGroupPaymentCalenderDetail.setPayTime(nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicGroupPaymentCalenderDetail.setPayTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            this.setCourseIncome(calenderMember,musicGroupPaymentCalenderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicGroupPaymentCalenderDetailDao.update(musicGroupPaymentCalenderDetail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //保存、更新云教练缴费项目预收 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        operatingReportCloudService.updateSet(musicGroupPaymentCalender,studentPaymentOrder.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        operatingReportCloudService.updateSet(musicGroupPaymentCalender,musicGroupPaymentCalenderDetail.getExpectMemberAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //续费项目加学员时就生成了课程时长,报名项目在缴费成功后才需要添加课程时长 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         musicGroupPaymentStudentCourseDetailService.batchInsert(studentPaymentOrder.getUserId(), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 musicGroupPaymentCalender, 
			 |