|
@@ -525,26 +525,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
//增加缴费学生数,0元订单不增加报名人数(没买云教练/云教练+的)
|
|
|
boolean paidZeroFlag = false;
|
|
|
- boolean firstPaidZeroFlag = false;
|
|
|
|
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
|
- if (musicOneSubjectClassPlan.getPaidStudentNum() >= musicOneSubjectClassPlan.getExpectedStudentNum()) {
|
|
|
- throw new BizException("乐团该声部人数暂时已满,请稍后再试");
|
|
|
- }
|
|
|
+
|
|
|
+ //判断之前是否已有订单
|
|
|
+ List<StudentPaymentOrder> oldStudentPaymentOrderList = studentPaymentOrderService.queryByCondition(GroupType.MUSIC, studentRegistration.getMusicGroupId(), studentRegistration.getUserId(),DealStatusEnum.SUCCESS , OrderTypeEnum.APPLY);
|
|
|
|
|
|
int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
|
int paidZeroNum = musicOneSubjectClassPlan.getPaidZeroNum() == null ? 0 : musicOneSubjectClassPlan.getPaidZeroNum();
|
|
|
if ((musicGroup.getCourseViewType().equals(CourseViewTypeEnum.MEMBER_FEE) && !buyCloudTeacher))
|
|
|
{
|
|
|
paidZeroFlag = true;
|
|
|
- if (studentRegistration.getNoneNeedCloudTeacher().equals(1)) {
|
|
|
+ if (studentRegistration.getNoneNeedCloudTeacher().equals(1) && (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0)) {
|
|
|
musicOneSubjectClassPlan.setPaidZeroNum(paidZeroNum + 1);
|
|
|
musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
- firstPaidZeroFlag = true;
|
|
|
}
|
|
|
} else {
|
|
|
- musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
+ if (oldStudentPaymentOrderList == null || oldStudentPaymentOrderList.size() == 0) {
|
|
|
+ musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (musicOneSubjectClassPlan.getPaidStudentNum() > musicOneSubjectClassPlan.getExpectedStudentNum()) {
|
|
|
+ throw new BizException("乐团该声部人数暂时已满,请稍后再试");
|
|
|
}
|
|
|
+
|
|
|
int count = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
|
|
|
if (count <= 0) {
|
|
|
throw new BizException("排队人数过多,请重试");
|
|
@@ -1025,7 +1029,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
Date nowDate = new Date();
|
|
|
|
|
|
//成功报名状态变更
|
|
|
- StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
|
|
|
+ StudentRegistration studentRegistration = studentRegistrationDao.lockWithUserAndMusic(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
|
|
|
|
|
|
if (studentRegistration.getPaymentStatus().equals(YES)) {
|
|
|
return studentPaymentOrder;
|
|
@@ -1033,7 +1037,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
|
|
|
|
if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
|
|
|
- MusicGroup musicGroup = musicGroupDao.getLocked(studentRegistration.getMusicGroupId());
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
|
|
|
if (studentRegistration.getTemporaryCourseFee() != null) {
|
|
|
studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
|
|
@@ -1059,10 +1063,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
List<OrderDetailTypeEnum> orderTypeList = allDetails.stream().map(t -> t.getType()).collect(Collectors.toList());
|
|
|
|
|
|
if (musicGroup.getCourseViewType() == CourseViewTypeEnum.MEMBER_FEE) {
|
|
|
- if (studentRegistration.getNoneNeedCloudTeacher() == 1 || orderTypeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)
|
|
|
+
|
|
|
+ if(studentRegistration.getNoneNeedCloudTeacher() == 1){
|
|
|
+ studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (orderTypeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER)
|
|
|
|| orderTypeList.contains(OrderDetailTypeEnum.CLOUD_TEACHER_PLUS)) {
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
studentRegistration.setNoneNeedCloudTeacher(1);
|
|
|
+ studentRegistration.setHasCloudTeacher(1);
|
|
|
}
|
|
|
} else {
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
@@ -1177,7 +1187,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {
|
|
|
MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
studentRegistration.setPayingStatus(0);
|
|
|
- studentRegistration.setHasCloudTeacher(0);
|
|
|
studentRegistrationDao.update(studentRegistration);
|
|
|
|
|
|
//减去缴费人数(器乐收费,0元时不减缴费人数)
|