|
@@ -760,9 +760,46 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
}*/
|
|
|
musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
-// musicGroupStudentFeeDao.insert(new MusicGroupStudentFee(musicGroupId,
|
|
|
-// userId, studentRegistration.getSubjectId(), studentAddDto.getCourseFee(),
|
|
|
-// nextPaymentDate, studentAddDto.getTemporaryCourseFee(), paymentStatus));
|
|
|
+
|
|
|
+ StudentPaymentOrder waitPayOrder = studentPaymentOrderService.findMusicGroupApplyOrderByStatus(userId, studentRegistration.getMusicGroupId(), DealStatusEnum.WAIT_PAY);
|
|
|
+
|
|
|
+ if (waitPayOrder != null) {
|
|
|
+ waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
+ studentPaymentOrderService.update(waitPayOrder);
|
|
|
+ }
|
|
|
+ //生成订单
|
|
|
+ StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
+ studentPaymentOrder.setUserId(userId);
|
|
|
+ studentPaymentOrder.setGroupType(GroupType.MUSIC);
|
|
|
+ studentPaymentOrder.setType(OrderTypeEnum.APPLY);
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.WAIT_PAY);
|
|
|
+ studentPaymentOrder.setMusicGroupId(musicGroupId);
|
|
|
+ studentPaymentOrder.setClassGroupId(studentAddDto.getSignClassId());
|
|
|
+ studentPaymentOrder.setOrganId(musicGroup.getOrganId());
|
|
|
+ studentPaymentOrder.setRoutingOrganId(musicGroup.getOrganId());
|
|
|
+
|
|
|
+ //生成订单明细
|
|
|
+ List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentAddDto.getStudentPaymentOrderDetails();
|
|
|
+ if (studentPaymentOrderDetails == null) {
|
|
|
+ studentPaymentOrderDetails = new ArrayList<>();
|
|
|
+ } else {
|
|
|
+ studentPaymentOrderDetails.forEach(e -> {
|
|
|
+ if (e.getPrice() == null) {
|
|
|
+ throw new BizException("请补全订单信息");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ //汇总金额
|
|
|
+
|
|
|
+ BigDecimal reduce = studentPaymentOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (reduce.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
+ studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
+ studentPaymentOrder.setActualAmount(reduce);
|
|
|
+ studentPaymentOrder.setPayTime(date);
|
|
|
+ }
|
|
|
+ studentPaymentOrder.setExpectAmount(reduce);
|
|
|
+ studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
+
|
|
|
//当前学员是否以前存在过当前乐团
|
|
|
if (phoneAndMusicGroupId != null) {
|
|
|
studentRegistration.setId(phoneAndMusicGroupId.getId());
|