|
@@ -34,6 +34,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.io.IOException;
|
|
|
+import java.lang.reflect.Array;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
@@ -107,6 +108,10 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
private MusicGroupPaymentCalenderDetailDao musicGroupPaymentCalenderDetailDao;
|
|
|
@Autowired
|
|
|
private MusicGroupPaymentCalenderDao musicGroupPaymentCalenderDao;
|
|
|
+ @Autowired
|
|
|
+ private MusicGroupPaymentStudentCourseDetailDao musicGroupPaymentStudentCourseDetailDao;
|
|
|
+ @Autowired
|
|
|
+ private MusicGroupPaymentCalenderCourseSettingsDao musicGroupPaymentCalenderCourseSettingsDao;
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, StudentRegistration> getDAO() {
|
|
@@ -838,13 +843,13 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return classGroupStuList;
|
|
|
}
|
|
|
|
|
|
- @Transactional(rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
- public void updateCalender(Long calenderDetailId,Integer userId){
|
|
|
+ @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
+ public void updateCalender(Long calenderDetailId, Integer userId) {
|
|
|
Date date = new Date();
|
|
|
MusicGroupPaymentCalenderDetail calenderDetail = musicGroupPaymentCalenderDetailDao.get(calenderDetailId);
|
|
|
MusicGroupPaymentCalender calender = musicGroupPaymentCalenderService.get(calenderDetail.getMusicGroupPaymentCalenderId());
|
|
|
MusicGroupStudentFee musicGroupStudentFee = musicGroupStudentFeeDao.findByUser(userId, calender.getMusicGroupId());
|
|
|
- if(calender.getIsGiveMusicNetwork()){
|
|
|
+ if (calender.getIsGiveMusicNetwork()) {
|
|
|
//赠送网管课
|
|
|
musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
}
|
|
@@ -903,18 +908,6 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
|
|
|
musicGroupStudentFee.setUpdateTime(nowDate);
|
|
|
- }else {
|
|
|
- musicGroupStudentFee = new MusicGroupStudentFee();
|
|
|
- musicGroupStudentFee.setRemainNetworkClassTimes(0);
|
|
|
- musicGroupStudentFee.setLatestPaidTime(nowDate);
|
|
|
- musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
- musicGroupStudentFee.setUpdateTime(nowDate);
|
|
|
- musicGroupStudentFee.setContinuousAbsenteeismTimes(0);
|
|
|
- musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
|
|
|
- musicGroupStudentFee.setIsLock(0);
|
|
|
- musicGroupStudentFee.setMusicGroupId(musicGroup.getId());
|
|
|
- musicGroupStudentFee.setUserId(studentRegistration.getUserId());
|
|
|
- musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
}
|
|
|
//插入交易明细
|
|
|
BigDecimal amount = studentPaymentOrder.getActualAmount();
|
|
@@ -959,34 +952,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
sellOrderService.addOrderDetail2SellOrder(orderDetails, studentPaymentOrder, musicGroup);
|
|
|
}
|
|
|
|
|
|
- //缴费详情 calender detail
|
|
|
- MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(musicGroup.getId());
|
|
|
-// if(musicGroupRegCalender.getIsGiveMusicNetwork()){
|
|
|
-// //赠送网管课
|
|
|
-// musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
-// }
|
|
|
-// musicGroupStudentFeeDao.update(musicGroupStudentFee);
|
|
|
-// //更新实际缴费人数
|
|
|
-// Integer actualNum = musicGroupRegCalender.getActualNum() == null ? 0 : musicGroupRegCalender.getActualNum();
|
|
|
-// musicGroupRegCalender.setActualNum(actualNum + 1);
|
|
|
-// musicGroupRegCalender.setUpdateTime(nowDate);
|
|
|
-// musicGroupPaymentCalenderDao.update(musicGroupRegCalender);
|
|
|
- MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
|
|
|
- musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
|
|
|
- musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
|
|
|
- musicGroupPaymentCalenderDetail.setExpectAmount(studentPaymentOrder.getExpectAmount());
|
|
|
- musicGroupPaymentCalenderDetail.setActualAmount(studentPaymentOrder.getActualAmount());
|
|
|
- musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
- musicGroupPaymentCalenderDetail.setUserStatus(null);
|
|
|
- musicGroupPaymentCalenderDetail.setPayTime(nowDate);
|
|
|
- musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupRegCalender.getDeadlinePaymentDate());
|
|
|
- musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupRegCalender.getStartPaymentDate());
|
|
|
- musicGroupPaymentCalenderDetail.setOpen(1);
|
|
|
- musicGroupPaymentCalenderDetail.setCreateTime(nowDate);
|
|
|
- musicGroupPaymentCalenderDetail.setUpdateTime(nowDate);
|
|
|
- musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
- musicGroupPaymentCalenderDetail.setUseInCourse(0);
|
|
|
- musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
|
|
|
+ addCalenderDetail(studentPaymentOrder, studentRegistration);
|
|
|
|
|
|
//三方乐团不发送缴费通知
|
|
|
if (musicGroup.getOwnershipType() != null && musicGroup.getOwnershipType() == CooperationOrgan.OwnershipType.OWN) {
|
|
@@ -1048,6 +1014,75 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
return studentPaymentOrder;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private boolean addCalenderDetail(StudentPaymentOrder studentPaymentOrder, StudentRegistration studentRegistration) {
|
|
|
+ Date nowDate = new Date();
|
|
|
+ MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
|
|
|
+ musicGroupStudentFee.setLatestPaidTime(nowDate);
|
|
|
+ musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
+ musicGroupStudentFee.setUpdateTime(nowDate);
|
|
|
+ musicGroupStudentFee.setContinuousAbsenteeismTimes(0);
|
|
|
+ musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
|
|
|
+ musicGroupStudentFee.setIsLock(0);
|
|
|
+ musicGroupStudentFee.setMusicGroupId(studentRegistration.getMusicGroupId());
|
|
|
+ musicGroupStudentFee.setUserId(studentRegistration.getUserId());
|
|
|
+
|
|
|
+ //缴费详情 calender detail
|
|
|
+ MusicGroupPaymentCalender musicGroupRegCalender = musicGroupPaymentCalenderService.findByMusicGroupRegCalender(studentRegistration.getMusicGroupId());
|
|
|
+ if (musicGroupRegCalender.getIsGiveMusicNetwork()) {
|
|
|
+ //赠送网管课
|
|
|
+ musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
+ }
|
|
|
+ musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
+ //更新实际缴费人数
|
|
|
+ int actualNum = musicGroupRegCalender.getActualNum() == null ? 0 : musicGroupRegCalender.getActualNum();
|
|
|
+ musicGroupRegCalender.setExpectNum(actualNum + 1);
|
|
|
+ musicGroupRegCalender.setActualNum(actualNum + 1);
|
|
|
+ musicGroupRegCalender.setUpdateTime(nowDate);
|
|
|
+ musicGroupPaymentCalenderDao.update(musicGroupRegCalender);
|
|
|
+
|
|
|
+ List<String> orderDetailTypes = studentPaymentOrderDetailDao.getOrderDetailType(studentPaymentOrder.getId());
|
|
|
+ List<MusicGroupPaymentCalenderCourseSettings> courseSettings = musicGroupPaymentCalenderCourseSettingsDao.getMusicGroupRegCalenderCourseSettings(studentRegistration.getMusicGroupId());
|
|
|
+ BigDecimal courseTotalPrice = courseSettings.stream().filter(e -> orderDetailTypes.contains(e.getCourseType().getCode())).map(MusicGroupPaymentCalenderCourseSettings::getCourseCurrentPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
+
|
|
|
+ MusicGroupPaymentCalenderDetail musicGroupPaymentCalenderDetail = new MusicGroupPaymentCalenderDetail();
|
|
|
+ musicGroupPaymentCalenderDetail.setMusicGroupPaymentCalenderId(musicGroupRegCalender.getId());
|
|
|
+ musicGroupPaymentCalenderDetail.setUserId(studentPaymentOrder.getUserId());
|
|
|
+ musicGroupPaymentCalenderDetail.setExpectAmount(courseTotalPrice);
|
|
|
+ musicGroupPaymentCalenderDetail.setActualAmount(courseTotalPrice);
|
|
|
+ musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
+ musicGroupPaymentCalenderDetail.setUserStatus(null);
|
|
|
+ musicGroupPaymentCalenderDetail.setPayTime(nowDate);
|
|
|
+ musicGroupPaymentCalenderDetail.setDeadlinePaymentDate(musicGroupRegCalender.getDeadlinePaymentDate());
|
|
|
+ musicGroupPaymentCalenderDetail.setStartPaymentDate(musicGroupRegCalender.getStartPaymentDate());
|
|
|
+ musicGroupPaymentCalenderDetail.setOpen(1);
|
|
|
+ musicGroupPaymentCalenderDetail.setCreateTime(nowDate);
|
|
|
+ musicGroupPaymentCalenderDetail.setUpdateTime(nowDate);
|
|
|
+ musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
+ musicGroupPaymentCalenderDetail.setUseInCourse(0);
|
|
|
+ musicGroupPaymentCalenderDetailDao.insert(musicGroupPaymentCalenderDetail);
|
|
|
+
|
|
|
+ List<MusicGroupPaymentStudentCourseDetail> musicGroupPaymentStudentCourseDetails = new ArrayList<>();
|
|
|
+
|
|
|
+ for (MusicGroupPaymentCalenderCourseSettings courseSetting : courseSettings) {
|
|
|
+ if (!orderDetailTypes.contains(courseSetting.getCourseType().getCode())) continue;
|
|
|
+ MusicGroupPaymentStudentCourseDetail musicGroupPaymentStudentCourseDetail = new MusicGroupPaymentStudentCourseDetail();
|
|
|
+ musicGroupPaymentStudentCourseDetail.setCourseType(courseSetting.getCourseType());
|
|
|
+ musicGroupPaymentStudentCourseDetail.setCreateTime(nowDate);
|
|
|
+ musicGroupPaymentStudentCourseDetail.setMusicGroupPaymentCalenderDetailId(musicGroupPaymentCalenderDetail.getId());
|
|
|
+ musicGroupPaymentStudentCourseDetail.setTotalCourseMinutes(courseSetting.getCourseTotalMinuties());
|
|
|
+ musicGroupPaymentStudentCourseDetail.setUpdateTime(nowDate);
|
|
|
+ musicGroupPaymentStudentCourseDetail.setUsedCourseMinutes(0);
|
|
|
+ musicGroupPaymentStudentCourseDetail.setUserId(studentPaymentOrder.getUserId());
|
|
|
+ musicGroupPaymentStudentCourseDetails.add(musicGroupPaymentStudentCourseDetail);
|
|
|
+ }
|
|
|
+
|
|
|
+ if (musicGroupPaymentStudentCourseDetails.size() > 0) {
|
|
|
+ musicGroupPaymentStudentCourseDetailDao.batchInsert(musicGroupPaymentStudentCourseDetails);
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
@Override
|
|
|
public List<StudentRegistration> findMusicGroupNoClassGroupStudent(String musicGroupId, Integer actualSubjectId) {
|
|
|
//获取所有声部
|