|  | @@ -219,8 +219,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 | 
											
												
													
														|  |          Map<Integer, Long> userCalenderDetailMap = new HashMap<>();
 |  |          Map<Integer, Long> userCalenderDetailMap = new HashMap<>();
 | 
											
												
													
														|  |          Map<Integer, Integer> activityuserMap = new HashMap<>();
 |  |          Map<Integer, Integer> activityuserMap = new HashMap<>();
 | 
											
												
													
														|  |          List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<>();
 |  |          List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<>();
 | 
											
												
													
														|  | -        //创建缴费明细
 |  | 
 | 
											
												
													
														|  | -        MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 |  | 
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityService.findByCalenderId(musicGroupPaymentCalenderId);
 |  |          List<MusicGroupPaymentCalenderActivity> calenderActivities = musicGroupPaymentCalenderActivityService.findByCalenderId(musicGroupPaymentCalenderId);
 | 
											
												
													
														|  |          Map<Integer, VipGroupActivity> collect = new HashMap<>();
 |  |          Map<Integer, VipGroupActivity> collect = new HashMap<>();
 | 
											
										
											
												
													
														|  | @@ -245,13 +243,15 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 |  |              musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 |  |              musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
 |  |              musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
 | 
											
												
													
														|  | -            musicGroupPaymentCalenderDetail.setCourseIncome(this.getCourseIncome(calenderMember,musicGroup));
 |  | 
 | 
											
												
													
														|  | 
 |  | +            //设置云教练、课程收入
 | 
											
												
													
														|  | 
 |  | +            this.setCourseIncome(calenderMember,musicGroupPaymentCalenderDetail);
 | 
											
												
													
														|  | 
 |  | +            Integer organId = musicGroupPaymentCalender.getOrganId();
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
 |  |              musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
 | 
											
												
													
														|  |              if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0 || musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
 |  |              if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0 || musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
 | 
											
												
													
														|  |                  // 添加会员
 |  |                  // 添加会员
 | 
											
												
													
														|  |                  if (calenderMember != null) {
 |  |                  if (calenderMember != null) {
 | 
											
												
													
														|  |                      CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
 |  |                      CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
 | 
											
												
													
														|  | -                    cloudTeacherOrder.setOrganId(musicGroup.getOrganId());
 |  | 
 | 
											
												
													
														|  | 
 |  | +                    cloudTeacherOrder.setOrganId(organId);
 | 
											
												
													
														|  |                      cloudTeacherOrder.setType(calenderMember.getPeriod());
 |  |                      cloudTeacherOrder.setType(calenderMember.getPeriod());
 | 
											
												
													
														|  |                      cloudTeacherOrder.setAmount(BigDecimal.ZERO);
 |  |                      cloudTeacherOrder.setAmount(BigDecimal.ZERO);
 | 
											
												
													
														|  |                      cloudTeacherOrder.setStudentId(studentId);
 |  |                      cloudTeacherOrder.setStudentId(studentId);
 | 
											
										
											
												
													
														|  | @@ -275,7 +275,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 | 
											
												
													
														|  |                          activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
 |  |                          activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
 | 
											
												
													
														|  |                          activityUserMapper.setActivityId(calenderActivity.getActivityId());
 |  |                          activityUserMapper.setActivityId(calenderActivity.getActivityId());
 | 
											
												
													
														|  |                          activityUserMapper.setUserId(studentId);
 |  |                          activityUserMapper.setUserId(studentId);
 | 
											
												
													
														|  | -                        activityUserMapper.setOrganId(musicGroup.getOrganId());
 |  | 
 | 
											
												
													
														|  | 
 |  | +                        activityUserMapper.setOrganId(organId);
 | 
											
												
													
														|  |                          if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
 |  |                          if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
 | 
											
												
													
														|  |                              activityUserMapper.setAddMemo("学校缴费新增学员");
 |  |                              activityUserMapper.setAddMemo("学校缴费新增学员");
 | 
											
												
													
														|  |                          }else {
 |  |                          }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
 |  |      @Override
 | 
											
										
											
												
													
														|  | @@ -475,58 +481,57 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |      @Override
 |  |      @Override
 | 
											
												
													
														|  |      @Transactional(rollbackFor = Exception.class)
 |  |      @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
 |  |          //缴费详情 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 (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.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) {
 |  |          if (musicGroupPaymentCalenderDetail == null) {
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 |  |              musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
 | 
											
												
													
														|  | -            musicGroupPaymentCalenderDetail.setTenantId(tenantId);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            musicGroupPaymentCalenderDetail.setTenantId(studentPaymentOrder.getTenantId());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 |  |              musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupPaymentCalender.getId());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
 |  |              musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
 |  |              musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 |  |              musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 | 
											
												
													
														|  | -            musicGroupPaymentCalenderDetail.setPayTime(nowDate);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            musicGroupPaymentCalenderDetail.setPayTime(date);
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
 |  |              musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setUseInCourse(0);
 |  |              musicGroupPaymentCalenderDetail.setUseInCourse(0);
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setOpen(1);
 |  |              musicGroupPaymentCalenderDetail.setOpen(1);
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setUserStatus(null);
 |  |              musicGroupPaymentCalenderDetail.setUserStatus(null);
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 |  |              musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupPaymentCalender.getStartPaymentDate());
 |  |              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);
 |  |              musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
 | 
											
												
													
														|  |          } else {
 |  |          } else {
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 |  |              musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
 | 
											
												
													
														|  | -            musicGroupPaymentCalenderDetail.setPayTime(nowDate);
 |  | 
 | 
											
												
													
														|  | 
 |  | +            musicGroupPaymentCalenderDetail.setPayTime(date);
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
 |  |              musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
 | 
											
												
													
														|  | 
 |  | +            MusicGroupPaymentCalenderMember calenderMember = musicGroupPaymentCalenderMemberService.findByCalenderId(calenderId);
 | 
											
												
													
														|  | 
 |  | +            this.setCourseIncome(calenderMember,musicGroupPaymentCalenderDetail);
 | 
											
												
													
														|  |              musicGroupPaymentCalenderDetailDao.update(musicGroupPaymentCalenderDetail);
 |  |              musicGroupPaymentCalenderDetailDao.update(musicGroupPaymentCalenderDetail);
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |          //保存、更新云教练缴费项目预收
 |  |          //保存、更新云教练缴费项目预收
 | 
											
												
													
														|  | -        operatingReportCloudService.updateSet(musicGroupPaymentCalender,studentPaymentOrder.getId());
 |  | 
 | 
											
												
													
														|  | 
 |  | +        operatingReportCloudService.updateSet(musicGroupPaymentCalender,musicGroupPaymentCalenderDetail.getExpectMemberAmount());
 | 
											
												
													
														|  |          //续费项目加学员时就生成了课程时长,报名项目在缴费成功后才需要添加课程时长
 |  |          //续费项目加学员时就生成了课程时长,报名项目在缴费成功后才需要添加课程时长
 | 
											
												
													
														|  |          musicGroupPaymentStudentCourseDetailService.batchInsert(studentPaymentOrder.getUserId(),
 |  |          musicGroupPaymentStudentCourseDetailService.batchInsert(studentPaymentOrder.getUserId(),
 | 
											
												
													
														|  |                  musicGroupPaymentCalender,
 |  |                  musicGroupPaymentCalender,
 |