|
@@ -25,11 +25,7 @@ import com.ym.mec.biz.dal.enums.*;
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
import com.ym.mec.biz.dal.dto.*;
|
|
import com.ym.mec.biz.dal.page.NoClassMusicStudentQueryInfo;
|
|
import com.ym.mec.biz.dal.page.NoClassMusicStudentQueryInfo;
|
|
import com.ym.mec.biz.service.*;
|
|
import com.ym.mec.biz.service.*;
|
|
-import com.ym.mec.common.page.QueryInfo;
|
|
|
|
-import com.ym.mec.im.WebFeignService;
|
|
|
|
-import org.apache.commons.lang3.ArrayUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
-import org.apache.poi.ss.formula.functions.T;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
@@ -149,6 +145,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
private EmployeeDao employeeDao;
|
|
private EmployeeDao employeeDao;
|
|
@Autowired
|
|
@Autowired
|
|
private StudentInstrumentDao studentInstrumentDao;
|
|
private StudentInstrumentDao studentInstrumentDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private OrganizationCloudTeacherFeeDao organizationCloudTeacherFeeDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private CloudTeacherOrderService cloudTeacherOrderService;
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public BaseDAO<Long, StudentRegistration> getDAO() {
|
|
public BaseDAO<Long, StudentRegistration> getDAO() {
|
|
@@ -378,7 +378,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
@Override
|
|
@Override
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@Transactional(rollbackFor = Exception.class)
|
|
public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel,
|
|
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) throws Exception {
|
|
|
|
|
|
+ BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses, Boolean buyMaintenance, Boolean buyCloudTeacher) throws Exception {
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
studentPaymentOrder.setUserId(studentRegistration.getUserId());
|
|
studentPaymentOrder.setUserId(studentRegistration.getUserId());
|
|
@@ -464,15 +464,31 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
maintenanceOrderDetail.setIsRenew(0);
|
|
maintenanceOrderDetail.setIsRenew(0);
|
|
studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
}
|
|
}
|
|
|
|
+ //云教练
|
|
|
|
+ if (buyCloudTeacher) {
|
|
|
|
+ OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(studentRegistration.getOrganId());
|
|
|
|
+ BigDecimal cloudTeacherPrice = cloudTeacher.getPrice();
|
|
|
|
+ StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
|
|
|
|
+ cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
|
|
|
|
+ cloudTeacherOrderDetail.setPrice(cloudTeacherPrice);
|
|
|
|
+ cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
|
+ cloudTeacherOrderDetail.setCreateTime(date);
|
|
|
|
+ cloudTeacherOrderDetail.setUpdateTime(date);
|
|
|
|
+ cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
|
+ cloudTeacherOrderDetail.setIsRenew(0);
|
|
|
|
+ studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
|
|
|
|
+ }
|
|
studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
|
|
|
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
|
+
|
|
//增加缴费学生数
|
|
//增加缴费学生数
|
|
boolean updateFlag = false;
|
|
boolean updateFlag = false;
|
|
for (int i = 0; i < 10; i++) {
|
|
for (int i = 0; i < 10; i++) {
|
|
-// if (amount.compareTo(BigDecimal.ZERO) == 0) { //0元订单不增加报名人数
|
|
|
|
-// updateFlag = true;
|
|
|
|
-// break;
|
|
|
|
-// }
|
|
|
|
|
|
+ if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.CLOUD_TEACHER) && amount.compareTo(BigDecimal.ZERO) <= 0) { //0元订单不增加报名人数
|
|
|
|
+ updateFlag = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
int paidNum = musicOneSubjectClassPlan.getPaidStudentNum() == null ? 0 : musicOneSubjectClassPlan.getPaidStudentNum();
|
|
musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
musicOneSubjectClassPlan.setPaidStudentNum(paidNum + 1);
|
|
@@ -497,8 +513,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
|
|
public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
|
|
List<MusicGroupSubjectGoodsGroup> goodsGroups, String musicGroupId, StudentPaymentOrder oldOrder,
|
|
List<MusicGroupSubjectGoodsGroup> goodsGroups, String musicGroupId, StudentPaymentOrder oldOrder,
|
|
BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses,
|
|
BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses,
|
|
- Boolean buyMaintenance
|
|
|
|
- ) {
|
|
|
|
|
|
+ Boolean buyMaintenance,
|
|
|
|
+ Boolean buyCloudTeacher) {
|
|
//关闭老订单
|
|
//关闭老订单
|
|
oldOrder.setStatus(DealStatusEnum.CLOSE);
|
|
oldOrder.setStatus(DealStatusEnum.CLOSE);
|
|
studentPaymentOrderService.update(oldOrder);
|
|
studentPaymentOrderService.update(oldOrder);
|
|
@@ -590,6 +606,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
maintenanceOrderDetail.setIsRenew(0);
|
|
maintenanceOrderDetail.setIsRenew(0);
|
|
studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
}
|
|
}
|
|
|
|
+ //云教练
|
|
|
|
+ if (buyCloudTeacher) {
|
|
|
|
+ OrganizationCloudTeacherFee cloudTeacher = organizationCloudTeacherFeeDao.getByOrganId(oldOrder.getOrganId());
|
|
|
|
+ BigDecimal cloudTeacherPrice = cloudTeacher.getPrice();
|
|
|
|
+ StudentPaymentOrderDetail cloudTeacherOrderDetail = new StudentPaymentOrderDetail();
|
|
|
|
+ cloudTeacherOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
|
|
|
|
+ cloudTeacherOrderDetail.setPrice(cloudTeacherPrice);
|
|
|
|
+ cloudTeacherOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
|
+ cloudTeacherOrderDetail.setCreateTime(date);
|
|
|
|
+ cloudTeacherOrderDetail.setUpdateTime(date);
|
|
|
|
+ cloudTeacherOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
|
+ cloudTeacherOrderDetail.setIsRenew(0);
|
|
|
|
+ studentPaymentOrderDetailList.add(cloudTeacherOrderDetail);
|
|
|
|
+ }
|
|
studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
|
|
|
|
return studentPaymentOrder;
|
|
return studentPaymentOrder;
|
|
@@ -1040,6 +1070,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
BigDecimal courseFee = allDetails.stream().filter(o -> !o.getType().getCode().equals("MUSICAL"))
|
|
BigDecimal courseFee = allDetails.stream().filter(o -> !o.getType().getCode().equals("MUSICAL"))
|
|
.filter(o -> !o.getType().getCode().equals("ACCESSORIES"))
|
|
.filter(o -> !o.getType().getCode().equals("ACCESSORIES"))
|
|
.filter(o -> !o.getType().getCode().equals("MAINTENANCE"))
|
|
.filter(o -> !o.getType().getCode().equals("MAINTENANCE"))
|
|
|
|
+ .filter(o -> !o.getType().getCode().equals("CLOUD_TEACHER"))
|
|
.map(o -> o.getPrice().subtract(o.getRemitFee() == null ? BigDecimal.ZERO : o.getRemitFee()))
|
|
.map(o -> o.getPrice().subtract(o.getRemitFee() == null ? BigDecimal.ZERO : o.getRemitFee()))
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
.reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
|
|
|
@@ -1116,6 +1147,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
//学生乐器与月保处理
|
|
//学生乐器与月保处理
|
|
studentInstrumentService.addOrderDetail2Instrument(studentPaymentOrder);
|
|
studentInstrumentService.addOrderDetail2Instrument(studentPaymentOrder);
|
|
|
|
|
|
|
|
+ //学生云教练处理
|
|
|
|
+ cloudTeacherOrderService.addOrderDetail2CloudTeacher(studentPaymentOrder);
|
|
|
|
+
|
|
//合并学员处理
|
|
//合并学员处理
|
|
if (studentRegistration.getIsMerge().equals(1) && studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
|
if (studentRegistration.getIsMerge().equals(1) && studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
|
return studentPaymentOrder;
|
|
return studentPaymentOrder;
|
|
@@ -1150,18 +1184,19 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- //减去缴费人数
|
|
|
|
if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {
|
|
if (studentPaymentOrder.getStatus().equals(DealStatusEnum.FAILED)) {
|
|
- musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum() - 1);
|
|
|
|
- updateCount = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
|
|
|
|
- if (updateCount <= 0) {
|
|
|
|
- throw new BizException("减去缴费人数失败");
|
|
|
|
|
|
+ MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
|
+ //减去缴费人数(器乐收费,0元时不减缴费人数)
|
|
|
|
+ if (musicGroup.getCourseViewType().equals(CourseViewTypeEnum.COURSE_lIST) || studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
|
+ musicOneSubjectClassPlan.setPaidStudentNum(musicOneSubjectClassPlan.getPaidStudentNum() - 1);
|
|
|
|
+ updateCount = musicGroupSubjectPlanService.update(musicOneSubjectClassPlan);
|
|
|
|
+ if (updateCount <= 0) {
|
|
|
|
+ throw new BizException("减去缴费人数失败");
|
|
|
|
+ }
|
|
}
|
|
}
|
|
if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
if (studentPaymentOrder.getBalancePaymentAmount() != null && studentPaymentOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "报名缴费失败");
|
|
sysUserCashAccountService.updateBalance(studentPaymentOrder.getUserId(), studentPaymentOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "报名缴费失败");
|
|
}
|
|
}
|
|
- MusicGroup musicGroup = musicGroupDao.get(studentRegistration.getMusicGroupId());
|
|
|
|
//三方乐团不发送缴费通知
|
|
//三方乐团不发送缴费通知
|
|
if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
|
|
if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
|
|
String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId();
|
|
String studentApplyUrl = sysConfigDao.findConfigValue(SysConfigService.STUDENT_APPLY_URL) + studentRegistration.getMusicGroupId();
|