|
@@ -59,13 +59,11 @@ import com.ym.mec.biz.dal.dao.SubjectDao;
|
|
|
import com.ym.mec.biz.dal.dao.SysConfigDao;
|
|
|
import com.ym.mec.biz.dal.dao.SysUserCashAccountDao;
|
|
|
import com.ym.mec.biz.dal.dao.TeacherDao;
|
|
|
-import com.ym.mec.biz.dal.dto.MusicalListDetailDto;
|
|
|
import com.ym.mec.biz.dal.dto.NoClassMusicStudentDto;
|
|
|
import com.ym.mec.biz.dal.dto.PageInfoReg;
|
|
|
import com.ym.mec.biz.dal.dto.RegisterDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentAddDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
|
|
|
-import com.ym.mec.biz.dal.dto.StudentFeeDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentInfo;
|
|
|
import com.ym.mec.biz.dal.dto.StudentMusicDetailDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentMusicGroupDto;
|
|
@@ -688,123 +686,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
- public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee,
|
|
|
- List<MusicGroupSubjectGoodsGroup> goodsGroups, String musicGroupId, StudentPaymentOrder oldOrder,
|
|
|
- BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses,
|
|
|
- Boolean buyMaintenance,
|
|
|
- Boolean buyCloudTeacher) {
|
|
|
- //关闭老订单
|
|
|
- oldOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
- studentPaymentOrderService.update(oldOrder);
|
|
|
- if (oldOrder.getBalancePaymentAmount() != null && oldOrder.getBalancePaymentAmount().compareTo(BigDecimal.ZERO) > 0) {
|
|
|
- sysUserCashAccountService.updateBalance(oldOrder.getUserId(), oldOrder.getBalancePaymentAmount(), PlatformCashAccountDetailTypeEnum.REFUNDS, "关闭订单");
|
|
|
- }
|
|
|
- Date date = new Date();
|
|
|
- StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
- studentPaymentOrder.setUserId(userId);
|
|
|
- studentPaymentOrder.setGroupType(GroupType.MUSIC);
|
|
|
- studentPaymentOrder.setOrderNo(orderNo);
|
|
|
- studentPaymentOrder.setType(OrderTypeEnum.APPLY);
|
|
|
- studentPaymentOrder.setExpectAmount(amount);
|
|
|
- studentPaymentOrder.setActualAmount(amount);
|
|
|
- studentPaymentOrder.setStatus(DealStatusEnum.ING);
|
|
|
- studentPaymentOrder.setPaymentChannel(paymentChannel);
|
|
|
- studentPaymentOrder.setMusicGroupId(musicGroupId);
|
|
|
- studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
-
|
|
|
- List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>();
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE);
|
|
|
- studentPaymentOrderDetail.setPrice(BigDecimal.ZERO);
|
|
|
- studentPaymentOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
- studentPaymentOrderDetail.setCreateTime(date);
|
|
|
- studentPaymentOrderDetail.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
|
|
|
- //乐器及打包辅件
|
|
|
- String maintenanceGoodsId = "";
|
|
|
- if (goodsGroups != null && goodsGroups.size() > 0) {
|
|
|
- for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO);
|
|
|
- OrderDetailTypeEnum type = null;
|
|
|
- if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
|
|
|
- type = OrderDetailTypeEnum.MUSICAL;
|
|
|
- goodsGroup.setPrice(goodsGroup.getPrice().subtract(remitFee));
|
|
|
- studentPaymentOrderDetail4goodsGroup.setRemitFee(remitFee);
|
|
|
- } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) {
|
|
|
- type = OrderDetailTypeEnum.ACCESSORIES;
|
|
|
- } else if (goodsGroup.getType().equals(GoodsType.OTHER)) {
|
|
|
- type = OrderDetailTypeEnum.TEACHING;
|
|
|
- }
|
|
|
- studentPaymentOrderDetail4goodsGroup.setType(type);
|
|
|
- studentPaymentOrderDetail4goodsGroup.setPrice(goodsGroup.getPrice());
|
|
|
- studentPaymentOrderDetail4goodsGroup.setGoodsIdList(goodsGroup.getGoodsIdList());
|
|
|
- studentPaymentOrderDetail4goodsGroup.setCreateTime(date);
|
|
|
- studentPaymentOrderDetail4goodsGroup.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetail4goodsGroup.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetail4goodsGroup.setKitGroupPurchaseType(goodsGroup.getKitGroupPurchaseType());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goodsGroup);
|
|
|
- if (OrderDetailTypeEnum.MUSICAL.equals(type)) {
|
|
|
- maintenanceGoodsId = goodsGroup.getGoodsIdList();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //新的课程形态
|
|
|
- if (newCourses != null && newCourses.size() > 0) {
|
|
|
- for (MusicGroupPaymentCalenderCourseSettings newCourse : newCourses) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetailCourse.setType(OrderDetailTypeEnum.valueOf(newCourse.getCourseType().getCode()));
|
|
|
- if (courseRemitFee.compareTo(BigDecimal.ZERO) > 0 && !newCourse.getIsStudentOptional()) {
|
|
|
- studentPaymentOrderDetailCourse.setPrice(BigDecimal.ZERO);
|
|
|
- studentPaymentOrderDetailCourse.setRemitFee(newCourse.getCourseCurrentPrice());
|
|
|
- } else {
|
|
|
- studentPaymentOrderDetailCourse.setPrice(newCourse.getCourseCurrentPrice());
|
|
|
- studentPaymentOrderDetailCourse.setRemitFee(BigDecimal.ZERO);
|
|
|
- }
|
|
|
- studentPaymentOrderDetailCourse.setCreateTime(date);
|
|
|
- studentPaymentOrderDetailCourse.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetailCourse.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetailCourse);
|
|
|
- }
|
|
|
- }
|
|
|
- if (buyMaintenance) {
|
|
|
- if ("".equals(maintenanceGoodsId)) {
|
|
|
- throw new BizException("有乐器才能购买乐保,请核查");
|
|
|
- }
|
|
|
- BigDecimal maintenancePrice = new BigDecimal(sysConfigDao.findConfigValue("maintenance_price"));
|
|
|
- StudentPaymentOrderDetail maintenanceOrderDetail = new StudentPaymentOrderDetail();
|
|
|
- maintenanceOrderDetail.setType(OrderDetailTypeEnum.MAINTENANCE);
|
|
|
- maintenanceOrderDetail.setPrice(maintenancePrice);
|
|
|
- maintenanceOrderDetail.setRemitFee(BigDecimal.ZERO);
|
|
|
- maintenanceOrderDetail.setCreateTime(date);
|
|
|
- maintenanceOrderDetail.setUpdateTime(date);
|
|
|
- maintenanceOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- maintenanceOrderDetail.setIsRenew(0);
|
|
|
- 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);
|
|
|
-
|
|
|
- return studentPaymentOrder;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @Transactional(rollbackFor = Exception.class)
|
|
|
public StudentRegistration queryByUserIdAndMusicGroupId(Integer userId, String musicGroupId) {
|
|
|
StudentRegistration registration = studentRegistrationDao.queryByUserIdAndMusicGroupId(userId, musicGroupId);
|
|
|
if (registration == null) {
|