|
@@ -20,7 +20,10 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
|
|
|
+import com.ym.mec.biz.dal.dao.*;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.event.source.GroupEventSource;
|
|
|
+import com.ym.mec.biz.service.*;
|
|
|
import org.apache.commons.lang3.ArrayUtils;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
@@ -37,24 +40,6 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.auth.api.entity.SysUserRole;
|
|
|
import com.ym.mec.auth.api.enums.CertificateTypeEnum;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleDao;
|
|
|
-import com.ym.mec.biz.dal.dao.GoodsDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderCourseSettingsDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupPaymentStudentCourseDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
|
|
|
-import com.ym.mec.biz.dal.dao.MusicGroupSubjectPlanDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentCourseFeeDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentPaymentOrderDetailDao;
|
|
|
-import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
|
|
|
-import com.ym.mec.biz.dal.dao.SubjectChangeDao;
|
|
|
-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.CourseFormDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentAddDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentApplyDetailDto;
|
|
@@ -62,30 +47,6 @@ import com.ym.mec.biz.dal.dto.StudentFeeDetailDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentInfo;
|
|
|
import com.ym.mec.biz.dal.dto.StudentMusicDetailDto;
|
|
|
import com.ym.mec.biz.dal.dto.StudentMusicGroupDto;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.ClassGroupStudentMapper;
|
|
|
-import com.ym.mec.biz.dal.entity.CooperationOrgan;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseSchedule;
|
|
|
-import com.ym.mec.biz.dal.entity.CourseScheduleStudentPayment;
|
|
|
-import com.ym.mec.biz.dal.entity.Goods;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderCourseSettings;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalenderStudentDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupPaymentStudentCourseDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
|
|
|
-import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
|
|
|
-import com.ym.mec.biz.dal.entity.Student;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentCourseFeeDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentPaymentOrder;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentPaymentOrderDetail;
|
|
|
-import com.ym.mec.biz.dal.entity.StudentRegistration;
|
|
|
-import com.ym.mec.biz.dal.entity.Subject;
|
|
|
-import com.ym.mec.biz.dal.entity.SubjectChange;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccount;
|
|
|
-import com.ym.mec.biz.dal.entity.SysUserCashAccountDetail;
|
|
|
import com.ym.mec.biz.dal.enums.ClassGroupStudentStatusEnum;
|
|
|
import com.ym.mec.biz.dal.enums.ClassGroupTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.CourseStatusEnum;
|
|
@@ -100,23 +61,6 @@ import com.ym.mec.biz.dal.enums.PaymentStatusEnum;
|
|
|
import com.ym.mec.biz.dal.enums.PlatformCashAccountDetailTypeEnum;
|
|
|
import com.ym.mec.biz.dal.enums.StudentMusicGroupStatusEnum;
|
|
|
import com.ym.mec.biz.dal.page.StudentRegistrationQueryInfo;
|
|
|
-import com.ym.mec.biz.service.ClassGroupService;
|
|
|
-import com.ym.mec.biz.service.ClassGroupStudentMapperService;
|
|
|
-import com.ym.mec.biz.service.ContractService;
|
|
|
-import com.ym.mec.biz.service.CourseScheduleService;
|
|
|
-import com.ym.mec.biz.service.CourseScheduleStudentPaymentService;
|
|
|
-import com.ym.mec.biz.service.ImGroupMemberService;
|
|
|
-import com.ym.mec.biz.service.MusicGroupPaymentCalenderService;
|
|
|
-import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
|
|
|
-import com.ym.mec.biz.service.SellOrderService;
|
|
|
-import com.ym.mec.biz.service.StudentPaymentOrderDetailService;
|
|
|
-import com.ym.mec.biz.service.StudentPaymentOrderService;
|
|
|
-import com.ym.mec.biz.service.StudentRegistrationService;
|
|
|
-import com.ym.mec.biz.service.SubjectService;
|
|
|
-import com.ym.mec.biz.service.SysConfigService;
|
|
|
-import com.ym.mec.biz.service.SysMessageService;
|
|
|
-import com.ym.mec.biz.service.SysUserCashAccountDetailService;
|
|
|
-import com.ym.mec.biz.service.SysUserCashAccountService;
|
|
|
import com.ym.mec.common.dal.BaseDAO;
|
|
|
import com.ym.mec.common.entity.ImResult;
|
|
|
import com.ym.mec.common.entity.ImUserModel;
|
|
@@ -207,6 +151,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Autowired
|
|
|
private GroupEventSource groupEventSource;
|
|
|
+ @Autowired
|
|
|
+ private StudentInstrumentService studentInstrumentService;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, StudentRegistration> getDAO() {
|
|
@@ -356,11 +302,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentRegistration.setUpdateTime(date);
|
|
|
studentRegistration.setUserId(sysUser.getId());
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.APPLY);
|
|
|
- if(hasReg != null){
|
|
|
+ if (hasReg != null) {
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
studentRegistration.setId(hasReg.getId());
|
|
|
studentRegistrationDao.update(studentRegistration);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
studentRegistrationDao.insert(studentRegistration);
|
|
|
}
|
|
|
|
|
@@ -387,7 +333,8 @@ 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, List<Goods> goodsList, List<Goods> otherGoodsList, List<CourseFormDto> courseForms, BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses) throws Exception {
|
|
|
+ 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 {
|
|
|
Date date = new Date();
|
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
studentPaymentOrder.setUserId(studentRegistration.getUserId());
|
|
@@ -411,6 +358,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
|
|
|
//乐器及打包辅件
|
|
|
+ String maintenanceGoodsId = "";
|
|
|
if (goodsGroups != null && goodsGroups.size() > 0) {
|
|
|
for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
|
|
|
StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
|
|
@@ -433,54 +381,17 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentPaymentOrderDetail4goodsGroup.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
studentPaymentOrderDetail4goodsGroup.setKitGroupPurchaseType(goodsGroup.getKitGroupPurchaseType());
|
|
|
studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goodsGroup);
|
|
|
+ if (OrderDetailTypeEnum.MUSICAL.equals(type) && KitGroupPurchaseTypeEnum.GROUP.equals(goodsGroup.getKitGroupPurchaseType())) {
|
|
|
+ maintenanceGoodsId = goodsGroup.getGoodsIdList();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //单独辅件
|
|
|
- if (goodsList != null && goodsList.size() > 0) {
|
|
|
- for (Goods goods : goodsList) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
|
|
|
- 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);
|
|
|
- }
|
|
|
- }
|
|
|
- //单独教谱
|
|
|
- if (otherGoodsList != null && otherGoodsList.size() > 0) {
|
|
|
- for (Goods goods : otherGoodsList) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
|
|
|
- studentPaymentOrderDetail4otherGoods.setPrice(goods.getGroupPurchasePrice());
|
|
|
- studentPaymentOrderDetail4otherGoods.setGoodsIdList(goods.getId().toString());
|
|
|
- studentPaymentOrderDetail4otherGoods.setCreateTime(date);
|
|
|
- studentPaymentOrderDetail4otherGoods.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetail4otherGoods.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetail4otherGoods);
|
|
|
- }
|
|
|
- }
|
|
|
- //可选课程
|
|
|
- if (courseForms != null && courseForms.size() > 0) {
|
|
|
- for (CourseFormDto courseForm : courseForms) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetailCourse.setType(OrderDetailTypeEnum.HIGH_ONLINE_COURSE);
|
|
|
- studentPaymentOrderDetailCourse.setPrice(courseForm.getPrice());
|
|
|
- studentPaymentOrderDetailCourse.setCreateTime(date);
|
|
|
- studentPaymentOrderDetailCourse.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetailCourse.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetailCourse);
|
|
|
- }
|
|
|
- }
|
|
|
//新的课程形态
|
|
|
if (newCourses != null && newCourses.size() > 0) {
|
|
|
for (MusicGroupPaymentCalenderCourseSettings newCourse : newCourses) {
|
|
|
StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
|
|
|
studentPaymentOrderDetailCourse.setType(OrderDetailTypeEnum.valueOf(newCourse.getCourseType().getCode()));
|
|
|
- studentPaymentOrderDetailCourse.setPrice(newCourse.getCourseCurrentPrice());
|
|
|
if (courseRemitFee.compareTo(BigDecimal.ZERO) > 0 && !newCourse.getIsStudentOptional()) {
|
|
|
studentPaymentOrderDetailCourse.setPrice(BigDecimal.ZERO);
|
|
|
studentPaymentOrderDetailCourse.setRemitFee(newCourse.getCourseCurrentPrice());
|
|
@@ -494,6 +405,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
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());
|
|
|
+ studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
|
+ }
|
|
|
studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
|
|
|
|
//增加缴费学生数
|
|
@@ -524,7 +449,11 @@ 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, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder, List<CourseFormDto> courseForms, BigDecimal remitFee, BigDecimal courseRemitFee, List<MusicGroupPaymentCalenderCourseSettings> newCourses) {
|
|
|
+ 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
|
|
|
+ ) {
|
|
|
//关闭老订单
|
|
|
oldOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
studentPaymentOrderService.update(oldOrder);
|
|
@@ -554,6 +483,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
studentPaymentOrderDetailList.add(studentPaymentOrderDetail);
|
|
|
//乐器及打包辅件
|
|
|
+ String maintenanceGoodsId = "";
|
|
|
if (goodsGroups != null && goodsGroups.size() > 0) {
|
|
|
for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
|
|
|
StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail();
|
|
@@ -576,49 +506,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentPaymentOrderDetail4goodsGroup.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
studentPaymentOrderDetail4goodsGroup.setKitGroupPurchaseType(goodsGroup.getKitGroupPurchaseType());
|
|
|
studentPaymentOrderDetailList.add(studentPaymentOrderDetail4goodsGroup);
|
|
|
+ if (OrderDetailTypeEnum.MUSICAL.equals(type) && KitGroupPurchaseTypeEnum.GROUP.equals(goodsGroup.getKitGroupPurchaseType())) {
|
|
|
+ maintenanceGoodsId = goodsGroup.getGoodsIdList();
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- //单独辅件
|
|
|
- if (goodsList != null && goodsList.size() > 0) {
|
|
|
- for (Goods goods : goodsList) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetail4goods = new StudentPaymentOrderDetail();
|
|
|
- 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);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- //单独教谱
|
|
|
- if (otherGoodsList != null && otherGoodsList.size() > 0) {
|
|
|
- for (Goods goods : otherGoodsList) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetail4otherGoods = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetail4otherGoods.setType(OrderDetailTypeEnum.TEACHING);
|
|
|
- studentPaymentOrderDetail4otherGoods.setPrice(goods.getGroupPurchasePrice());
|
|
|
- studentPaymentOrderDetail4otherGoods.setGoodsIdList(goods.getId().toString());
|
|
|
- studentPaymentOrderDetail4otherGoods.setCreateTime(date);
|
|
|
- studentPaymentOrderDetail4otherGoods.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetail4otherGoods.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetail4otherGoods);
|
|
|
- }
|
|
|
- }
|
|
|
- //可选课程
|
|
|
- if (courseForms != null && courseForms.size() > 0) {
|
|
|
- for (CourseFormDto courseForm : courseForms) {
|
|
|
- StudentPaymentOrderDetail studentPaymentOrderDetailCourse = new StudentPaymentOrderDetail();
|
|
|
- studentPaymentOrderDetailCourse.setType(OrderDetailTypeEnum.HIGH_ONLINE_COURSE);
|
|
|
- studentPaymentOrderDetailCourse.setPrice(courseForm.getPrice());
|
|
|
- studentPaymentOrderDetailCourse.setCreateTime(date);
|
|
|
- studentPaymentOrderDetailCourse.setUpdateTime(date);
|
|
|
- studentPaymentOrderDetailCourse.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- studentPaymentOrderDetailList.add(studentPaymentOrderDetailCourse);
|
|
|
- }
|
|
|
- }
|
|
|
//新的课程形态
|
|
|
if (newCourses != null && newCourses.size() > 0) {
|
|
|
for (MusicGroupPaymentCalenderCourseSettings newCourse : newCourses) {
|
|
@@ -637,6 +530,20 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
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());
|
|
|
+ studentPaymentOrderDetailList.add(maintenanceOrderDetail);
|
|
|
+ }
|
|
|
studentPaymentOrderDetailService.batchAdd(studentPaymentOrderDetailList);
|
|
|
|
|
|
return studentPaymentOrder;
|
|
@@ -650,7 +557,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return null;
|
|
|
}
|
|
|
SysUserCashAccount account = sysUserCashAccountDao.getLocked(userId);
|
|
|
- registration.setBalance(account==null?BigDecimal.ZERO : account.getBalance());
|
|
|
+ registration.setBalance(account == null ? BigDecimal.ZERO : account.getBalance());
|
|
|
registration.setTransferStudent(0);
|
|
|
return registration;
|
|
|
}
|
|
@@ -814,30 +721,30 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
|
|
|
@Override
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
- public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect){
|
|
|
+ public void insertStudent(String studentIds, String oldMusicGroupId, String newMusicGroupId, Map<Integer, List<MusicGroupPaymentCalenderStudentDetail>> collect) {
|
|
|
SysUser sysUser1 = sysUserFeignService.queryUserInfo();
|
|
|
//获取旧乐团学员注册信息
|
|
|
- List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryByUserIdsAndMusicGroupId(studentIds,oldMusicGroupId);
|
|
|
+ List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryByUserIdsAndMusicGroupId(studentIds, oldMusicGroupId);
|
|
|
List<StudentCourseFeeDetail> studentCourseFeeDetails = new ArrayList<>();
|
|
|
BigDecimal amount = BigDecimal.ZERO;
|
|
|
for (StudentRegistration studentRegistration : studentRegistrations) {
|
|
|
List<MusicGroupPaymentCalenderStudentDetail> details = collect.get(studentRegistration.getUserId());
|
|
|
- BigDecimal masterTotalPrice = details.stream().map(e->e.getCutAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
- if(masterTotalPrice.doubleValue() > studentRegistration.getSurplusCourseFee().doubleValue()){
|
|
|
+ BigDecimal masterTotalPrice = details.stream().map(e -> e.getCutAmount()).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+ if (masterTotalPrice.doubleValue() > studentRegistration.getSurplusCourseFee().doubleValue()) {
|
|
|
throw new BizException("用户信息发生变动,请重新提交");
|
|
|
}
|
|
|
- if(oldMusicGroupId == newMusicGroupId){
|
|
|
+ if (oldMusicGroupId == newMusicGroupId) {
|
|
|
continue;
|
|
|
}
|
|
|
- courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(oldMusicGroupId),null, GroupType.MUSIC);
|
|
|
+ courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(oldMusicGroupId), null, GroupType.MUSIC);
|
|
|
//记录课程余额消费日志
|
|
|
- if(studentRegistration.getSurplusCourseFee().doubleValue() > 0d && masterTotalPrice.doubleValue() > 0d){
|
|
|
+ if (studentRegistration.getSurplusCourseFee().doubleValue() > 0d && masterTotalPrice.doubleValue() > 0d) {
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
- if(studentRegistration.getSurplusCourseFee().doubleValue() > masterTotalPrice.doubleValue()){
|
|
|
+ if (studentRegistration.getSurplusCourseFee().doubleValue() > masterTotalPrice.doubleValue()) {
|
|
|
amount = masterTotalPrice;
|
|
|
studentCourseFeeDetail.setAmount(masterTotalPrice.negate());
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().subtract(masterTotalPrice));
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
amount = studentRegistration.getSurplusCourseFee();
|
|
|
studentCourseFeeDetail.setAmount(studentRegistration.getSurplusCourseFee().negate());
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(BigDecimal.ZERO);
|
|
@@ -854,7 +761,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
//用户是否在主乐团
|
|
|
StudentRegistration registration = studentRegistrationDao.getByPhoneAndMusicGroupId(newMusicGroupId, studentRegistration.getParentsPhone());
|
|
|
if (registration != null) {
|
|
|
- if(registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL){
|
|
|
+ if (registration.getMusicGroupStatus() == StudentMusicGroupStatusEnum.NORMAL) {
|
|
|
orderFlag = false;
|
|
|
}
|
|
|
//修改剩余课程余额
|
|
@@ -864,7 +771,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
registration.setUpdateTime(date);
|
|
|
registration.setSurplusCourseFee(registration.getSurplusCourseFee().add(amount));
|
|
|
studentRegistrationDao.update(registration);
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//生成学员乐团注册表
|
|
|
studentRegistration.setOrganId(musicGroupDao.get(newMusicGroupId).getOrganId());
|
|
|
studentRegistration.setSurplusCourseFee(amount);
|
|
@@ -875,11 +782,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
//增加报名学生数
|
|
|
musicGroupSubjectPlanService.addApplyStudentNum(newMusicGroupId, studentRegistration.getActualSubjectId(), 1);
|
|
|
//新增Fee表
|
|
|
- MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(),newMusicGroupId);
|
|
|
- if(musicGroupStudentFee == null){
|
|
|
+ MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(), newMusicGroupId);
|
|
|
+ if (musicGroupStudentFee == null) {
|
|
|
musicGroupStudentFee = new MusicGroupStudentFee(newMusicGroupId,
|
|
|
- studentRegistration.getUserId(), studentRegistration.getSubjectId(),BigDecimal.ZERO,
|
|
|
- null, studentRegistration.getTemporaryCourseFee(), studentRegistration.getPaymentStatus()==YES?PAID_COMPLETED:NON_PAYMENT);
|
|
|
+ studentRegistration.getUserId(), studentRegistration.getSubjectId(), BigDecimal.ZERO,
|
|
|
+ null, studentRegistration.getTemporaryCourseFee(), studentRegistration.getPaymentStatus() == YES ? PAID_COMPLETED : NON_PAYMENT);
|
|
|
musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
}
|
|
|
}
|
|
@@ -889,7 +796,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
studentPaymentOrderService.update(waitPayOrder);
|
|
|
}
|
|
|
- if(orderFlag){
|
|
|
+ if (orderFlag) {
|
|
|
//生成订单
|
|
|
StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder();
|
|
|
studentPaymentOrder.setUserId(registration.getUserId());
|
|
@@ -906,7 +813,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentPaymentOrderService.insert(studentPaymentOrder);
|
|
|
}
|
|
|
//主班新增余额日志
|
|
|
- if(amount.doubleValue() != 0d && masterTotalPrice.doubleValue() > 0d){
|
|
|
+ if (amount.doubleValue() != 0d && masterTotalPrice.doubleValue() > 0d) {
|
|
|
StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
studentCourseFeeDetail.setAmount(amount);
|
|
|
studentCourseFeeDetail.setSurplusCourseFee(registration.getSurplusCourseFee());
|
|
@@ -916,7 +823,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
studentCourseFeeDetails.add(studentCourseFeeDetail);
|
|
|
}
|
|
|
}
|
|
|
- if(studentCourseFeeDetails.size() > 0){
|
|
|
+ if (studentCourseFeeDetails.size() > 0) {
|
|
|
studentCourseFeeDetailDao.batchInsert(studentCourseFeeDetails);
|
|
|
}
|
|
|
}
|
|
@@ -1133,8 +1040,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder, musicGroup);
|
|
|
}
|
|
|
|
|
|
+ //课程处理
|
|
|
addCalenderDetail(studentPaymentOrder, studentRegistration);
|
|
|
|
|
|
+ //学生乐器与月保处理
|
|
|
+ studentInstrumentService.addOrderDetail2Instrument(studentPaymentOrder);
|
|
|
+
|
|
|
+ //合并学员处理
|
|
|
if (studentRegistration.getIsMerge().equals(1) && studentPaymentOrder.getExpectAmount().compareTo(BigDecimal.ZERO) <= 0) {
|
|
|
return studentPaymentOrder;
|
|
|
}
|
|
@@ -1408,7 +1320,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public StudentRegistration updateStudent(StudentRegistration studentRegistration) {
|
|
|
- if(StringUtils.isBlank(studentRegistration.getCertificateType())){
|
|
|
+ if (StringUtils.isBlank(studentRegistration.getCertificateType())) {
|
|
|
studentRegistration.setCertificateType(CertificateTypeEnum.IDENTITY.getCode());
|
|
|
}
|
|
|
StudentRegistration student = get(studentRegistration.getId());
|
|
@@ -1420,9 +1332,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
student.setIdCardNo(studentRegistration.getIdCardNo());
|
|
|
student.setGender(studentRegistration.getGender());
|
|
|
update(studentRegistration);
|
|
|
- studentRegistrationDao.updateUser(student.getUserId(),student.getName(), student.getParentsName(), student.getIdCardNo(), student.getGender(),studentRegistration.getCertificateType());
|
|
|
+ studentRegistrationDao.updateUser(student.getUserId(), student.getName(), student.getParentsName(), student.getIdCardNo(), student.getGender(), studentRegistration.getCertificateType());
|
|
|
// 添加用户电子签章账户
|
|
|
- if(CertificateTypeEnum.IDENTITY.getCode().equals(studentRegistration.getCertificateType())){
|
|
|
+ if (CertificateTypeEnum.IDENTITY.getCode().equals(studentRegistration.getCertificateType())) {
|
|
|
contractService.register(student.getUserId(), student.getParentsName(), student.getIdCardNo(), student.getParentsPhone());
|
|
|
}
|
|
|
return student;
|
|
@@ -1610,10 +1522,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return amount;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId) {
|
|
|
- return studentRegistrationDao.queryStudentMusicGroupInfo(userId);
|
|
|
- }
|
|
|
+ @Override
|
|
|
+ public List<StudentMusicGroupDto> queryStudentMusicGroupInfo(Integer userId) {
|
|
|
+ return studentRegistrationDao.queryStudentMusicGroupInfo(userId);
|
|
|
+ }
|
|
|
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
@@ -1634,8 +1546,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
public Boolean batchDelRegs(String musicGroupId, List<Integer> userIds) {
|
|
|
List<StudentRegistration> registrations = studentRegistrationDao.findStudentListByUserIdList(musicGroupId, userIds);
|
|
|
for (StudentRegistration registration : registrations) {
|
|
|
- if(registration.getPaymentStatus().equals(PaymentStatusEnum.OPEN)||registration.getPaymentStatus().equals(PaymentStatusEnum.YES)){
|
|
|
- throw new BizException(registration.getName()+"("+registration.getPaymentStatus().getDesc()+"),不能删除");
|
|
|
+ if (registration.getPaymentStatus().equals(PaymentStatusEnum.OPEN) || registration.getPaymentStatus().equals(PaymentStatusEnum.YES)) {
|
|
|
+ throw new BizException(registration.getName() + "(" + registration.getPaymentStatus().getDesc() + "),不能删除");
|
|
|
}
|
|
|
}
|
|
|
if (registrations.size() <= 0) {
|
|
@@ -1663,6 +1575,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
@Override
|
|
|
public List<StudentRegistration> getMusicGroupStuReBack(String musicGroupId) {
|
|
|
courseScheduleStudentPaymentService.updateCourseActualPrice(Arrays.asList(musicGroupId), null, GroupType.MUSIC);
|
|
|
- return this.findMusicGroupStudent(musicGroupId,null);
|
|
|
+ return this.findMusicGroupStudent(musicGroupId, null);
|
|
|
}
|
|
|
}
|