|
@@ -2,7 +2,9 @@ package com.ym.mec.biz.service.impl;
|
|
|
|
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.SCHOOL;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.SCHOOL;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.STUDENT;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType.STUDENT;
|
|
-import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.*;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.AUDITING;
|
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.DRAFT;
|
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum.REJECT;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.ADD_COURSE;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.ADD_COURSE;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.ADD_STUDENT;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.ADD_STUDENT;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
|
|
import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.MUSIC_APPLY;
|
|
@@ -11,17 +13,19 @@ import static com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType.SP
|
|
import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
|
|
import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
-import java.util.*;
|
|
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Arrays;
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.Comparator;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.HashSet;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
import java.util.Map.Entry;
|
|
import java.util.Map.Entry;
|
|
|
|
+import java.util.Set;
|
|
import java.util.stream.Collectors;
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
-import com.ym.mec.biz.dal.dao.*;
|
|
|
|
-import com.ym.mec.biz.dal.dto.*;
|
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
|
-import com.ym.mec.biz.dal.enums.*;
|
|
|
|
-import com.ym.mec.biz.event.source.GroupEventSource;
|
|
|
|
-import com.ym.mec.biz.service.*;
|
|
|
|
import org.apache.commons.beanutils.BeanUtils;
|
|
import org.apache.commons.beanutils.BeanUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -33,13 +37,83 @@ import com.alibaba.fastjson.JSON;
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.ClassGroupStudentMapperDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.CloudTeacherOrderDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.CourseScheduleTeacherSalaryDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MemberFeeSettingDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MemberRankSettingDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupBuildLogDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupOrganizationCourseSettingsDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupOrganizationCourseSettingsDetailDao;
|
|
|
|
+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.MusicGroupPaymentCalenderStudentDetailDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupSchoolTermCourseDetailDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupSchoolTermStudentCourseDetailDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentClassAdjustDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.OrganizationCourseUnitPriceSettingsDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.OrganizationDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.StudentPaymentOrderDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
|
+import com.ym.mec.biz.dal.dao.TeacherAttendanceDao;
|
|
|
|
+import com.ym.mec.biz.dal.dto.CalenderPushDto;
|
|
|
|
+import com.ym.mec.biz.dal.dto.ClassGroup4MixDto;
|
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDetailDto;
|
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderAuditDto;
|
|
|
|
+import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDto;
|
|
import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange;
|
|
import com.ym.mec.biz.dal.dto.MusicGroupPaymentCalenderDto.MusicGroupPaymentDateRange;
|
|
|
|
+import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
|
+import com.ym.mec.biz.dal.entity.CloudTeacherOrder;
|
|
|
|
+import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
|
|
import com.ym.mec.biz.dal.entity.CourseSchedule.CourseScheduleType;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MemberFeeSetting;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MemberRankSetting;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupBuildLog;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupOrganizationCourseSettings;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupOrganizationCourseSettingsDetail;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PayUserType;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentCalenderStatusEnum;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender.PaymentType;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermCourseDetail;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupSchoolTermStudentCourseDetail;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupStudentClassAdjust;
|
|
|
|
+import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
import com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus;
|
|
|
|
+import com.ym.mec.biz.dal.entity.Organization;
|
|
|
|
+import com.ym.mec.biz.dal.entity.OrganizationCourseUnitPriceSettings;
|
|
|
|
+import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
|
+import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
|
+import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
|
|
|
|
+import com.ym.mec.biz.dal.enums.DealStatusEnum;
|
|
|
|
+import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
|
+import com.ym.mec.biz.dal.enums.MessageTypeEnum;
|
|
|
|
+import com.ym.mec.biz.dal.enums.MusicGroupStatusEnum;
|
|
|
|
+import com.ym.mec.biz.dal.enums.OrderTypeEnum;
|
|
|
|
+import com.ym.mec.biz.dal.enums.PeriodEnum;
|
|
|
|
+import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
|
|
import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
|
|
import com.ym.mec.biz.dal.page.MusicGroupPaymentCalenderQueryInfo;
|
|
|
|
+import com.ym.mec.biz.event.source.GroupEventSource;
|
|
|
|
+import com.ym.mec.biz.service.ClassGroupService;
|
|
|
|
+import com.ym.mec.biz.service.ImGroupMemberService;
|
|
|
|
+import com.ym.mec.biz.service.ImUserFriendService;
|
|
|
|
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderDetailService;
|
|
|
|
+import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
|
|
|
|
+import com.ym.mec.biz.service.StudentService;
|
|
|
|
+import com.ym.mec.biz.service.SysConfigService;
|
|
|
|
+import com.ym.mec.biz.service.SysMessageService;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.exception.BizException;
|
|
import com.ym.mec.common.page.PageInfo;
|
|
import com.ym.mec.common.page.PageInfo;
|
|
@@ -126,6 +200,7 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
private StudentRegistrationDao studentRegistrationDao;
|
|
private StudentRegistrationDao studentRegistrationDao;
|
|
@Autowired
|
|
@Autowired
|
|
private GroupEventSource groupEventSource;
|
|
private GroupEventSource groupEventSource;
|
|
|
|
+
|
|
@Autowired
|
|
@Autowired
|
|
private MemberFeeSettingDao memberFeeSettingDao;
|
|
private MemberFeeSettingDao memberFeeSettingDao;
|
|
@Autowired
|
|
@Autowired
|
|
@@ -134,6 +209,9 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
private StudentService studentService;
|
|
private StudentService studentService;
|
|
@Autowired
|
|
@Autowired
|
|
private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
private CloudTeacherOrderDao cloudTeacherOrderDao;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private StudentPaymentOrderDao studentPaymentOrderDao;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Long, MusicGroupPaymentCalender> getDAO() {
|
|
public BaseDAO<Long, MusicGroupPaymentCalender> getDAO() {
|
|
@@ -1537,33 +1615,22 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
|
|
if (calender == null) {
|
|
if (calender == null) {
|
|
throw new BizException("缴费信息不存在");
|
|
throw new BizException("缴费信息不存在");
|
|
}
|
|
}
|
|
- if (calender.getStatus() != PaymentCalenderStatusEnum.AUDITING && calender.getStatus() != PaymentCalenderStatusEnum.NO
|
|
|
|
- && calender.getStatus() != PaymentCalenderStatusEnum.REJECT && calender.getStatus() != DRAFT) {
|
|
|
|
- throw new BizException("删除失败,{} 的缴费项目不允许删除");
|
|
|
|
- }
|
|
|
|
- MusicGroupStudentClassAdjust byBatchNo = musicGroupStudentClassAdjustDao.findByBatchNo(calender.getBatchNo());
|
|
|
|
- if(byBatchNo != null){
|
|
|
|
- throw new BizException("删除失败,班级调整的缴费项目不允许删除");
|
|
|
|
|
|
+
|
|
|
|
+ //缴费项目中没有学生即可删除缴费项目
|
|
|
|
+ List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = musicGroupPaymentCalenderDetailDao.queryByCalenderId(id, null);
|
|
|
|
+ if (musicGroupPaymentCalenderDetailList != null && musicGroupPaymentCalenderDetailList.size() > 0) {
|
|
|
|
+ throw new BizException("缴费项目中已存在学员,不能删除");
|
|
}
|
|
}
|
|
|
|
|
|
- List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = musicGroupPaymentCalenderDetailDao.queryByCalenderId(id,null);
|
|
|
|
- if (musicGroupPaymentCalenderDetailList != null && musicGroupPaymentCalenderDetailList.size() > 0) {
|
|
|
|
- List<MusicGroupPaymentCalenderDetail> paidList = musicGroupPaymentCalenderDetailList.stream()
|
|
|
|
- .filter(MusicGroupPaymentCalenderDetail -> MusicGroupPaymentCalenderDetail.getPaymentStatus() != PaymentStatus.NON_PAYMENT)
|
|
|
|
- .collect(Collectors.toList());
|
|
|
|
- if (paidList.size() > 0) {
|
|
|
|
- throw new BizException("存在已缴费的学生不能删除");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- List<Long> calenderDetailIdList = musicGroupPaymentCalenderDetailList.stream().map(cd -> cd.getId()).collect(Collectors.toList());
|
|
|
|
- //是否已排课
|
|
|
|
- List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetailList = musicGroupPaymentStudentCourseDetailDao.queryByMusicGroupPaymentStudentCourseDetailId(calenderDetailIdList);
|
|
|
|
- long count = musicGroupPaymentStudentCourseDetailList.stream().filter(e -> e.getUsedCourseMinutes() > 0).count();
|
|
|
|
- if(count > 0){
|
|
|
|
- throw new BizException("存在已排课的学员");
|
|
|
|
|
|
+ if (calender.getPaymentType() == PaymentType.MUSIC_APPLY) {
|
|
|
|
+ // 是否存在缴费中的
|
|
|
|
+ List<StudentPaymentOrder> studentPaymentOrderList = studentPaymentOrderDao.queryByDealStatus(calender.getMusicGroupId(), OrderTypeEnum.APPLY,
|
|
|
|
+ DealStatusEnum.ING);
|
|
|
|
+ if (studentPaymentOrderList != null && studentPaymentOrderList.size() > 0) {
|
|
|
|
+ throw new BizException("存在缴费中的学生,不能删除");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
musicGroupPaymentCalenderDao.delete(id);
|
|
musicGroupPaymentCalenderDao.delete(id);
|
|
musicGroupPaymentCalenderDetailDao.deleteByCalenderId(id);
|
|
musicGroupPaymentCalenderDetailDao.deleteByCalenderId(id);
|
|
musicGroupPaymentStudentCourseDetailDao.deleteByMusicGroupPaymentCalenderId(id);
|
|
musicGroupPaymentStudentCourseDetailDao.deleteByMusicGroupPaymentCalenderId(id);
|