|
@@ -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();
|
|
@@ -445,6 +446,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentRegistration.setUserId(userId);
|
|
|
studentRegistration.setPaymentStatus(PaymentStatusEnum.OPEN);
|
|
|
studentRegistration.setMusicGroupStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
+ studentRegistration.setTemporaryCourseFee(studentAddDto.getTemporaryCourseFee());
|
|
|
//学生报名表
|
|
|
studentRegistrationDao.insertBasic(studentRegistration);
|
|
|
MusicGroup musicGroup = musicGroupDao.get(musicGroupId);
|
|
@@ -452,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);
|
|
@@ -488,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()), studentAddDto.getTemporaryCourseFee()));
|
|
|
+ DateUtil.getFirstDayOfMonth(calendar.getTime()), null));
|
|
|
//生成订单
|
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
studentPaymentOrder.setUserId(userId);
|
|
@@ -505,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;
|
|
@@ -540,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());
|