ソースを参照

缴费项目改造

zouxuan 2 年 前
コミット
5b32096f15

+ 13 - 27
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderDetailServiceImpl.java

@@ -28,6 +28,7 @@ import java.math.BigDecimal;
 import java.util.*;
 import java.util.stream.Collectors;
 
+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.PaymentCalenderStatusEnum.AUDITING;
 import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
@@ -183,13 +184,6 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
         }
         MusicGroupPaymentCalender musicGroupPaymentCalender = musicGroupPaymentCalenderList.get(0);
         String musicGroupId = musicGroupPaymentCalender.getMusicGroupId();
-        // 所有缴费项目已完成排课才能创建下一个缴费项目
-//        List<String> batchNoList = new ArrayList<>();
-//        batchNoList.add(batchNo);
-		/*String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null,batchNoList);
-		if (StringUtils.isNoneBlank(orignBatchNo)) {
-			throw new BizException("当前乐团存在未排课的缴费项目,请先完成排课再操作");
-		}*/
         //获取欠费学员列表
         List<Integer> noPaymentUserIds = musicGroupPaymentCalenderDetailDao.queryNoPaymentUserIds(musicGroupId, new ArrayList<>(userIdList), null);
         if (noPaymentUserIds.size() > 0) {
@@ -221,28 +215,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
 
         List<MusicGroupPaymentCalenderCourseSettings> courseSettingsList = musicGroupPaymentCalenderCourseSettingsDao.getWithPaymentCalender(musicGroupPaymentCalenderId);
 
-/*        if (courseSettingsList != null && courseSettingsList.size() > 0) {
-            List<StudentSubTotalCourseTimesDto> studentCourseTypeDtos = musicGroupPaymentStudentCourseDetailDao.queryStudentSubTotalCourseTimes(musicGroupId);
-
-            Set<String> courseTypes = new HashSet<String>();
-            for (StudentSubTotalCourseTimesDto dto : studentCourseTypeDtos) {
-                if (userIdList.contains(dto.getUserId())) {
-                    courseTypes.addAll(dto.getMapDtos().stream().filter(t -> t.getValue() > 0).map(t -> t.getKey()).collect(Collectors.toSet()));
-                }
-            }
-
-            for (MusicGroupPaymentCalenderCourseSettings mgpccs : courseSettingsList) {
-                if (courseTypes.contains(mgpccs.getCourseType().name())) {
-                    throw new BizException("操作失败:存在未排完的[{}]", mgpccs.getCourseType().getMsg());
-                }
-            }
-        }*/
-
         Date date = new Date();
         MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = null;
         Map<Integer, Long> userMap = new HashMap<>();
         Map<Integer, Integer> activityuserMap = new HashMap<>();
-        List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<MusicGroupPaymentCalenderDetail>();
+        List<MusicGroupPaymentCalenderDetail> musicGroupPaymentCalenderDetailList = new ArrayList<>();
         //创建缴费明细
         MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
 
@@ -270,7 +247,7 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
             musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupPaymentCalender.getDeadlinePaymentDate());
             musicGroupPaymentCalenderDetail.setResponsibleUserId(musicGroupPaymentCalender.getOperator());
             musicGroupPaymentCalenderDetailList.add(musicGroupPaymentCalenderDetail);
-            if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0) {
+            if (musicGroupPaymentCalender.getCurrentTotalAmount().compareTo(BigDecimal.ZERO) == 0 || musicGroupPaymentCalender.getPayUserType() == SCHOOL) {
                 // 添加会员
                 if (calenderMember != null) {
                     CloudTeacherOrder cloudTeacherOrder = new CloudTeacherOrder();
@@ -281,7 +258,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
                     cloudTeacherOrder.setLevel(calenderMember.getMemberRankSettingId());
                     cloudTeacherOrder.setTime(calenderMember.getNum().intValue());
                     cloudTeacherOrder.setStatus(1);
-                    cloudTeacherOrder.setRemark("缴费项目0元新增学员");
+                    if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+                        cloudTeacherOrder.setRemark("学校缴费新增学员");
+                    }else {
+                        cloudTeacherOrder.setRemark("缴费项目0元新增学员");
+                    }
                     cloudTeacherOrder.setMusicGroupId(musicGroupId);
                     cloudTeacherOrderService.save(cloudTeacherOrder,calenderMember.getAutoActivationFlag());
                 }
@@ -297,6 +278,11 @@ public class MusicGroupPaymentCalenderDetailServiceImpl extends BaseServiceImpl<
                         activityUserMapper.setUserId(studentId);
                         activityUserMapper.setTeacherId(student.getTeacherId());
                         activityUserMapper.setOrganId(musicGroup.getOrganId());
+                        if(musicGroupPaymentCalender.getPayUserType() == SCHOOL){
+                            activityUserMapper.setAddMemo("学校缴费新增学员");
+                        }else {
+                            activityUserMapper.setAddMemo("缴费项目0元新增学员");
+                        }
                         VipGroupActivity activity = collect.get(activityUserMapper.getActivityId());
                         activityUserMapperService.copyProperty(activityUserMapper,activity,false,true);
                         if ("网管课".equals(calenderActivity.getCategoryName())) {

+ 28 - 39
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MusicGroupPaymentCalenderServiceImpl.java

@@ -238,16 +238,6 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
             throw new BizException("请登录");
         });
 
-//        if (musicGroup.getStatus() != MusicGroupStatusEnum.DRAFT) {
-//            throw new BizException("只有‘草稿’状态才能创建报名缴费");
-//        }
-        // 所有缴费项目已完成排课才能创建下一个缴费项目
-        /*String orignBatchNo = musicGroupPaymentStudentCourseDetailDao.getUnUseBatchNoWithStudentAndCourseTypeAndCourseMinutes(musicGroupId, null, null, null);
-        if (!musicGroupPaymentBaseCalender.getConfirmCreate() && StringUtils.isNoneBlank(orignBatchNo)) {
-            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-            return BaseController.failed(HttpStatus.MULTI_STATUS, "当前乐团存在未排课的缴费项目,请再次确认操作");
-        }*/
-
         // 不是进行中,只能创建一次缴费
         if (musicGroup.getStatus() != MusicGroupStatusEnum.PROGRESS) {
             List<MusicGroupPaymentCalender> list = musicGroupPaymentCalenderDao.findByMusicGroupId(musicGroupId);
@@ -290,30 +280,29 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
         BigDecimal originalTotalAmount = courseOriginalAmount.add(memberOriginalAmount)
                 .add(activityOriginalAmount)
                 .add(repairOriginalAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
-        BigDecimal actualTotalAmount;
+
+        //计算缴费项目总金额(前端录入)
+        BigDecimal courseActualAmount = musicGroupPaymentCalenderCourseSettingsService.getActualAmount(musicGroupPaymentBaseCalender);
+        BigDecimal memberActualAmount = musicGroupPaymentCalenderMemberService.getActualAmount(musicGroupPaymentBaseCalender);
+        BigDecimal repairActualAmount = musicGroupPaymentCalenderRepairService.getActualAmount(musicGroupPaymentBaseCalender);
+        BigDecimal activityActualAmount = musicGroupPaymentCalenderActivityService.getActualAmount(musicGroupPaymentBaseCalender);
+
+        BigDecimal actualTotalAmount = courseActualAmount.add(memberActualAmount)
+                .add(repairActualAmount)
+                .add(activityActualAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
+        //标记是否云教练缴费
+        if(musicGroupPaymentCalender.getPayUserType() == STUDENT && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
+            if(musicGroupPaymentCalender.getPaymentType() == ADD_STUDENT){
+                musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
+            }else if(memberActualAmount.compareTo(BigDecimal.ZERO) > 0 &&
+                    ((courseActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList()))
+                            || (activityActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getCalenderActivityList())))) {
+                musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
+            }
+        }
 
         if(musicGroupPaymentBaseCalender.getPayUserType() == SCHOOL){
             actualTotalAmount = musicGroupPaymentBaseCalender.getCurrentTotalAmount();
-        }else {
-            //计算缴费项目总金额(前端录入)
-            BigDecimal courseActualAmount = musicGroupPaymentCalenderCourseSettingsService.getActualAmount(musicGroupPaymentBaseCalender);
-            BigDecimal memberActualAmount = musicGroupPaymentCalenderMemberService.getActualAmount(musicGroupPaymentBaseCalender);
-            BigDecimal repairActualAmount = musicGroupPaymentCalenderRepairService.getActualAmount(musicGroupPaymentBaseCalender);
-            BigDecimal activityActualAmount = musicGroupPaymentCalenderActivityService.getActualAmount(musicGroupPaymentBaseCalender);
-
-            actualTotalAmount = courseActualAmount.add(memberActualAmount)
-                    .add(repairActualAmount)
-                    .add(activityActualAmount).setScale(0, BigDecimal.ROUND_HALF_UP);
-            //标记是否云教练缴费
-            if(musicGroupPaymentCalender.getPayUserType() == STUDENT && musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE){
-                if(musicGroupPaymentCalender.getPaymentType() == ADD_STUDENT){
-                    musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
-                }else if(memberActualAmount.compareTo(BigDecimal.ZERO) > 0 &&
-                        ((courseActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getMusicGroupPaymentCalenderCourseSettingsList()))
-                                || (activityActualAmount.compareTo(BigDecimal.ZERO) == 0 && CollectionUtils.isNotEmpty(musicGroupPaymentBaseCalender.getCalenderActivityList())))) {
-                    musicGroupPaymentCalender.setCloudTeacherPaymentFlag(true);
-                }
-            }
         }
 
         PaymentCalenderStatusEnum status;
@@ -990,16 +979,16 @@ public class MusicGroupPaymentCalenderServiceImpl extends BaseServiceImpl<Long,
                 musicGroupPaymentCalender.setUpdateTime(date);
                 musicGroupPaymentCalender.setAuditMemo(auditMemo);
             }
-            MusicGroupPaymentCalender calender = musicGroupPaymentCalenders.get(0);
+//            MusicGroupPaymentCalender calender = musicGroupPaymentCalenders.get(0);
             //如果是报名,并且所有的报名都审核通过,需要修改乐团状态
-            if (calender.getPaymentType() == MUSIC_APPLY) {
-                MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
-                musicGroup.setStatus(MusicGroupStatusEnum.PRE_BUILD_FEE);
-                musicGroup.setUpdateTime(date);
-                musicGroupDao.update(musicGroup);
+//            if (calender.getPaymentType() == MUSIC_APPLY) {
+//                MusicGroup musicGroup = musicGroupDao.get(calender.getMusicGroupId());
+//                musicGroup.setStatus(MusicGroupStatusEnum.PRE_BUILD_FEE);
+//                musicGroup.setUpdateTime(date);
+//                musicGroupDao.update(musicGroup);
                 //记录操作日志
-                musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目失败(费用审核中 -> 审核拒绝)", sysUser.getId(), ""));
-            }
+//                musicGroupBuildLogDao.insert(new MusicGroupBuildLog(musicGroup.getId(), "报名缴费项目失败(费用审核中 -> 审核拒绝)", sysUser.getId(), ""));
+//            }
             musicGroupPaymentCalenderDao.batchUpdate(musicGroupPaymentCalenders);
         }
     }