|
@@ -25,7 +25,6 @@ import com.ym.mec.biz.dal.enums.*;
|
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
|
import com.ym.mec.biz.dal.page.NoClassMusicStudentQueryInfo;
|
|
|
import com.ym.mec.biz.service.*;
|
|
|
-import com.ym.mec.common.controller.BaseController;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -390,7 +389,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel,
|
|
|
- BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses, Boolean buyMaintenance, Boolean buyCloudTeacher) throws Exception {
|
|
|
+ BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses, Boolean buyMaintenance, Boolean buyCloudTeacher, Boolean buyCloudTeacherPlus) throws Exception {
|
|
|
Date date = new Date();
|
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
studentPaymentOrder.setUserId(studentRegistration.getUserId());
|
|
@@ -476,12 +475,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
maintenanceOrderDetail.setIsRenew(0);
|
|
|
studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
|
}
|
|
|
- //云教练
|
|
|
- if (buyCloudTeacher) {
|
|
|
+ //云教练/云教练+
|
|
|
+ if (buyCloudTeacher || buyCloudTeacherPlus) {
|
|
|
OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
|
|
|
- BigDecimal cloudTeacherPrice = cloudTeacher.getPrice();
|
|
|
+ BigDecimal cloudTeacherPrice = buyCloudTeacher ? cloudTeacher.getPrice() : cloudTeacher.getPlusPrice();
|
|
|
+ OrderDetailTypeEnum orderDetailTypeEnum = buyCloudTeacher ? OrderDetailTypeEnum.CLOUD_TEACHER : OrderDetailTypeEnum.CLOUD_TEACHER_PLUS;
|
|
|
StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
|
|
|
- cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
|
|
|
+ cloudTeacherOrderDetail.setType(orderDetailTypeEnum);
|
|
|
cloudTeacherOrderDetail.setPrice(cloudTeacherPrice);
|
|
|
cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
cloudTeacherOrderDetail.setCreateTime(date);
|
|
@@ -494,14 +494,16 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
|
|
|
- //增加缴费学生数,0元订单不增加报名人数(没买云教练的)
|
|
|
+ //增加缴费学生数,0元订单不增加报名人数(没买云教练/云教练+的)
|
|
|
boolean paidZeroFlag = false;
|
|
|
boolean firstPaidZeroFlag = false;
|
|
|
|
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
|
int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
|
int paidZeroNum = musicOneSubjectClassPlan.getPaidZeroNum() == null ? 0 : musicOneSubjectClassPlan.getPaidZeroNum();
|
|
|
- if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER) && !buyCloudTeacher) {
|
|
|
+ if ((musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER) && !buyCloudTeacher) ||
|
|
|
+ (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER_PLUS) && !buyCloudTeacherPlus)
|
|
|
+ ) {
|
|
|
paidZeroFlag = true;
|
|
|
if (paidZeroNum <= 0) {
|
|
|
musicOneSubjectClassPlan.setPaidZeroNum(paidZeroNum + 1);
|
|
@@ -1090,6 +1092,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
.filter(o -> !o.getType().getCode().equals("ACCESSORIES"))
|
|
|
.filter(o -> !o.getType().getCode().equals("MAINTENANCE"))
|
|
|
.filter(o -> !o.getType().getCode().equals("CLOUD_TEACHER"))
|
|
|
+ .filter(o -> !o.getType().getCode().equals("CLOUD_TEACHER_PLUS"))
|
|
|
.map(o -> o.getPrice().subtract(o.getRemitFee() == null ? BigDecimal.ZERO : o.getRemitFee()))
|
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
@@ -1206,7 +1209,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {
|
|
|
MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
//减去缴费人数(器乐收费,0元时不减缴费人数)
|
|
|
- if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER)) {
|
|
|
+ if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER) || musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER_PLUS)) {
|
|
|
if (studentPaymentOrder.getPaymentAccountNo() != null && studentPaymentOrder.getPaymentAccountNo().equals("200")) {
|
|
|
musicOneSubjectClassPlan.setPaidZeroNum(musicOneSubjectClassPlan.getPaidZeroNum() - 1);
|
|
|
musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum() - 1);
|