浏览代码

乐团缴费不用登陆

周箭河 5 年之前
父节点
当前提交
2d91c960e0

+ 43 - 36
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentRegistrationServiceImpl.java

@@ -275,14 +275,14 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsList != null) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
                 studentPaymentOrderDetail4goods.setCreateTime(date);
                 studentPaymentOrderDetail4goods.setUpdateTime(date);
                 studentPaymentOrderDetail4goods.setPaymentOrderId(studentPaymentOrder.getId());
                 studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goods);
-
             }
         }
         //单独教谱
@@ -305,8 +305,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
         musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
-        if (musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
-            throw new Exception("乐团人数已满");
+        if (studentRegistration.getTemporaryCourseFee() == null && musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
+            throw new BizException("乐团人数已满");
         }
         musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
         return studentPaymentOrder;
@@ -364,7 +364,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         if (goodsList != null) {
             for (Goods goods : goodsList) {
                 StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
-                studentPaymentOrderDetail4goods.setType(OrderDetailTypeEnum.ACCESSORIES);
+                OrderDetailTypeEnum orderDetailType = goods.getType().equals(GoodsType.INSTRUMENT) ? OrderDetailTypeEnum.MUSICAL : OrderDetailTypeEnum.ACCESSORIES;
+                studentPaymentOrderDetail4goods.setType(orderDetailType);
                 studentPaymentOrderDetail4goods.setPrice(goods.getGroupPurchasePrice());
                 studentPaymentOrderDetail4goods.setGoodsIdList(goods.getId().toString());
                 studentPaymentOrderDetail4goods.setCreateTime(date);
@@ -407,7 +408,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
     @Transactional(rollbackFor = Exception.class)
     public Integer insertStudent(StudentAddDto studentAddDto) throws Exception {
         StudentRegistration studentRegistration = studentAddDto.getStudentRegistration();
-        if(studentRegistration == null){
+        if (studentRegistration == null) {
             throw new Exception("参数校验失败");
         }
         String musicGroupId = studentRegistration.getMusicGroupId();
@@ -453,7 +454,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
             roleIds.add(SysUserRole.OPERATION_EXECUTIVE);
             sysMessageService.batchSeoMessage(musicGroupDao.queryUserIdByRoleId(roleIds), MessageTypeEnum.BACKSTAGE_MUSIC_GROUP_ADD_STUDENT, "", musicGroup.getName(), studentRegistration.getName());
             //增加报名学生数
-            musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(),1);
+            musicGroupSubjectPlanService.addApplyStudentNum(musicGroupId, studentRegistration.getSubjectId(), 1);
             Integer classGroupId = studentRegistration.getClassGroupId();
             if (classGroupId != null) {
                 ClassGroup classGroup = classGroupDao.get(classGroupId);
@@ -489,13 +490,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 calendar.add(Calendar.MONTH, month);
                 DateUtil.getFirstDayOfMonth(calendar.getTime());
                 //保存乐团学生费用表
-                if(studentAddDto.getCourseFee() == null){
+                if (studentAddDto.getCourseFee() == null) {
                     MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanDao.getMusicOneSubjectClassPlan(musicGroupId, studentRegistration.getActualSubjectId());
                     studentAddDto.setCourseFee(musicOneSubjectClassPlan.getFee());
                 }
                 musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
                         userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
-                        DateUtil.getFirstDayOfMonth(calendar.getTime()),null));
+                        DateUtil.getFirstDayOfMonth(calendar.getTime()), null));
                 //生成订单
                 StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
                 studentPaymentOrder.setUserId(userId);
@@ -506,7 +507,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
                 studentPaymentOrderService.insert(studentPaymentOrder);
                 //生成订单明细
                 List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
-                studentPaymentOrderDetails.forEach(e->{e.setPaymentOrderId(studentPaymentOrder.getId());});
+                studentPaymentOrderDetails.forEach(e -> {
+                    e.setPaymentOrderId(studentPaymentOrder.getId());
+                });
                 studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetails);
             }
             return userId;
@@ -541,35 +544,39 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
 
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
-            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
-            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
-            studentRegistrationDao.update(studentRegistration);
 
-            //获取当前月
-            Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
-            //获取下次缴费月份
-            List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
-            List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
-            for (int i = 0; i < months.size(); i++) {
-                if (months.get(i).equals(month)) {
-                    month = i == months.size() - 1 ? months.get(0) : months.get(i + 1);
+            if (studentRegistration.getTemporaryCourseFee() != null) {
+                //获取当前月
+                Integer month = Integer.parseInt(DateUtil.getMonth(nowDate));
+                //获取下次缴费月份
+                List<MusicGroupPaymentCalender> musicGroupPaymentCalenders = musicGroupPaymentCalenderDao.findByMusicGroupId(studentRegistration.getMusicGroupId());
+                List<Integer> months = musicGroupPaymentCalenders.stream().map(e -> e.getPaymentMonth()).collect(Collectors.toList());
+                for (int i = 0; i < months.size(); i++) {
+                    if (months.get(i).equals(month)) {
+                        month = i == months.size() - 1 ? months.get(0) : months.get(i + 1);
+                    }
                 }
+                Calendar calendar = Calendar.getInstance();
+                calendar.add(Calendar.MONTH, month);
+
+                //加入缴费周期
+                MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
+                musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
+                musicGroupStudentFee.setUserId(studentRegistration.getUserId());
+                musicGroupStudentFee.setCourseFee(musicOneSubjectClassPlan.getFee());
+                musicGroupStudentFee.setCreateTime(nowDate);
+                musicGroupStudentFee.setUpdateTime(nowDate);
+                musicGroupStudentFee.setNextPaymentDate(DateUtil.getFirstDayOfMonth(calendar.getTime()));
+                musicGroupStudentFee.setLatestPaidTime(nowDate);
+                musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
+                musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
+                musicGroupStudentFeeDao.insert(musicGroupStudentFee);
             }
-            Calendar calendar = Calendar.getInstance();
-            calendar.add(Calendar.MONTH, month);
-
-            //加入缴费周期
-            MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
-            musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
-            musicGroupStudentFee.setUserId(studentRegistration.getUserId());
-            musicGroupStudentFee.setCourseFee(musicOneSubjectClassPlan.getFee());
-            musicGroupStudentFee.setCreateTime(nowDate);
-            musicGroupStudentFee.setUpdateTime(nowDate);
-            musicGroupStudentFee.setNextPaymentDate(DateUtil.getFirstDayOfMonth(calendar.getTime()));
-            musicGroupStudentFee.setLatestPaidTime(nowDate);
-            musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
-            musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
-            musicGroupStudentFeeDao.insert(musicGroupStudentFee);
+
+            studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
+            studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
+            studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
+            studentRegistrationDao.update(studentRegistration);
 
             //插入交易明细
             SysUserCashAccount cashAccount = sysUserCashAccountService.get(studentRegistration.getUserId());

+ 3 - 0
mec-student/src/main/java/com/ym/mec/student/controller/MusicGroupController.java

@@ -315,6 +315,9 @@ public class MusicGroupController extends BaseController {
         //获取课程价格
         MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getSubjectId());
         BigDecimal courseFee = musicOneSubjectClassPlan.getFee();
+        if(studentRegistration.getTemporaryCourseFee() != null){
+            courseFee = studentRegistration.getTemporaryCourseFee();
+        }
         orderAmount = orderAmount.add(courseFee);