|
@@ -122,6 +122,10 @@ import com.ym.mec.util.collection.MapUtil;
|
|
|
import com.ym.mec.util.date.DateUtil;
|
|
|
import com.ym.mec.util.http.HttpUtil;
|
|
|
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
|
|
|
+import static com.ym.mec.biz.dal.entity.MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
|
|
|
+import static com.ym.mec.biz.dal.enums.PaymentStatusEnum.YES;
|
|
|
+
|
|
|
@Service
|
|
|
public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, StudentRegistration> implements StudentRegistrationService {
|
|
|
|
|
@@ -783,9 +787,9 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
BigDecimal reduce = studentPaymentOrderDetails.stream().map(StudentPaymentOrderDetail::getPrice).reduce(BigDecimal.ZERO, BigDecimal::add);
|
|
|
MusicGroupStudentFee.PaymentStatus paymentStatus = MusicGroupStudentFee.PaymentStatus.NON_PAYMENT;
|
|
|
if (reduce.compareTo(BigDecimal.ZERO) == 0) {
|
|
|
- paymentStatus = MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED;
|
|
|
+ paymentStatus = PAID_COMPLETED;
|
|
|
studentPaymentOrder.setStatus(DealStatusEnum.SUCCESS);
|
|
|
- studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
|
|
|
+ studentRegistration.setPaymentStatus(YES);
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
studentPaymentOrder.setActualAmount(reduce);
|
|
|
studentPaymentOrder.setPayTime(date);
|
|
@@ -831,6 +835,66 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void insertStudent(String studentIds,String oldMusicGroupId,String newMusicGroupId,BigDecimal masterTotalPrice){
|
|
|
+ SysUser sysUser1 = sysUserFeignService.queryUserInfo();
|
|
|
+ //获取旧乐团学员注册信息
|
|
|
+ List<StudentRegistration> studentRegistrations = studentRegistrationDao.queryByUserIdsAndMusicGroupId(studentIds,oldMusicGroupId);
|
|
|
+ List<StudentCourseFeeDetail> studentCourseFeeDetails = new ArrayList<>();
|
|
|
+ for (StudentRegistration studentRegistration : studentRegistrations) {
|
|
|
+ //用户是否在主乐团
|
|
|
+ StudentRegistration phoneAndMusicGroupId = studentRegistrationDao.getByPhoneAndMusicGroupId(newMusicGroupId, studentRegistration.getParentsPhone());
|
|
|
+ if (phoneAndMusicGroupId != null && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.QUIT && phoneAndMusicGroupId.getMusicGroupStatus() != StudentMusicGroupStatusEnum.APPLY) {
|
|
|
+ //该学员已存在
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ SysUser sysUser = studentRegistrationDao.getSysUserByPhone(studentRegistration.getParentsPhone());
|
|
|
+ if (StringUtils.isNotEmpty(sysUser.getUsername())) {
|
|
|
+ if (!sysUser.getUsername().equals(studentRegistration.getName())) {
|
|
|
+ //账户已被注册
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //当前学员是否以前存在过当前乐团
|
|
|
+ studentRegistration.setMusicGroupId(newMusicGroupId);
|
|
|
+ if (phoneAndMusicGroupId != null) {
|
|
|
+ studentRegistration.setId(phoneAndMusicGroupId.getId());
|
|
|
+ studentRegistrationDao.update(studentRegistration);
|
|
|
+ } else {
|
|
|
+ studentRegistrationDao.insertBasic(studentRegistration);
|
|
|
+ }
|
|
|
+ //记录课程余额消费日志
|
|
|
+ if(studentRegistration.getSurplusCourseFee().doubleValue() > 0d){
|
|
|
+ StudentCourseFeeDetail studentCourseFeeDetail = new StudentCourseFeeDetail();
|
|
|
+ if(studentRegistration.getSurplusCourseFee().doubleValue() > masterTotalPrice.doubleValue()){
|
|
|
+ studentCourseFeeDetail.setAmount(masterTotalPrice);
|
|
|
+ studentCourseFeeDetail.setSurplusCourseFee(studentRegistration.getSurplusCourseFee().subtract(masterTotalPrice));
|
|
|
+ }
|
|
|
+ studentCourseFeeDetail.setAmount(studentRegistration.getSurplusCourseFee());
|
|
|
+ studentCourseFeeDetail.setSurplusCourseFee(BigDecimal.ZERO);
|
|
|
+ studentCourseFeeDetail.setMemo("跨团合班消费");
|
|
|
+ studentCourseFeeDetail.setOperator(sysUser1.getId());
|
|
|
+ studentCourseFeeDetails.add(studentCourseFeeDetail);
|
|
|
+ }
|
|
|
+ MusicGroupStudentFee studentFeeDaoByUser = musicGroupStudentFeeDao.findByUser(studentRegistration.getUserId(), newMusicGroupId);
|
|
|
+ if (studentFeeDaoByUser != null) {
|
|
|
+ //该学员已存在
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //增加报名学生数
|
|
|
+ musicGroupSubjectPlanService.addApplyStudentNum(newMusicGroupId, studentRegistration.getSubjectId(), 1);
|
|
|
+ //新增Fee表
|
|
|
+ MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee(newMusicGroupId,
|
|
|
+ studentRegistration.getUserId(), studentRegistration.getSubjectId(),BigDecimal.ZERO,
|
|
|
+ null, studentRegistration.getTemporaryCourseFee(), studentRegistration.getPaymentStatus()==YES?PAID_COMPLETED:NON_PAYMENT);
|
|
|
+ musicGroupStudentFeeDao.insert(musicGroupStudentFee);
|
|
|
+ }
|
|
|
+ if(studentCourseFeeDetails.size() > 0){
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private List<CourseSchedule> addStudent(Integer classGroupId, Integer userId, Date date, List<CourseSchedule> courseScheduleList) {
|
|
|
ClassGroup classGroup = classGroupDao.get(classGroupId);
|
|
|
ClassGroupStudentMapper classGroupStudentMapper = classGroupStudentMapperDao.findClassStudentMapperByUserIdAndClassGroupId(userId, classGroupId, null);
|
|
@@ -931,7 +995,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
musicGroupStudentFee.setRemainNetworkClassTimes(musicGroupStudentFee.getRemainNetworkClassTimes() + 1);
|
|
|
}
|
|
|
//更新学生的缴费记录状态
|
|
|
- calenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
+ calenderDetail.setPaymentStatus(PAID_COMPLETED);
|
|
|
calenderDetail.setActualAmount(calenderDetail.getExpectAmount());
|
|
|
calenderDetail.setPayTime(date);
|
|
|
calenderDetail.setUpdateTime(date);
|
|
@@ -957,7 +1021,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
//成功报名状态变更
|
|
|
StudentRegistration studentRegistration = studentRegistrationDao.queryByUserIdAndMusicGroupId(studentPaymentOrder.getUserId(), studentPaymentOrder.getMusicGroupId());
|
|
|
|
|
|
- if (studentRegistration.getPaymentStatus().equals(PaymentStatusEnum.YES)) {
|
|
|
+ if (studentRegistration.getPaymentStatus().equals(YES)) {
|
|
|
return studentPaymentOrder;
|
|
|
}
|
|
|
MusicGroupSubjectPlan musicOneSubjectClassPlan = musicGroupSubjectPlanService.getMusicOneSubjectClassPlan(studentRegistration.getMusicGroupId(), studentRegistration.getActualSubjectId());
|
|
@@ -968,7 +1032,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
if (studentRegistration.getTemporaryCourseFee() != null) {
|
|
|
studentRegistration.setTemporaryCourseFee(new BigDecimal(0));
|
|
|
}
|
|
|
- studentRegistration.setPaymentStatus(PaymentStatusEnum.YES);
|
|
|
+ studentRegistration.setPaymentStatus(YES);
|
|
|
studentRegistration.setMusicGroupStatus(StudentMusicGroupStatusEnum.NORMAL);
|
|
|
|
|
|
List<StudentPaymentOrderDetail> orderDetails = studentPaymentOrderDetailService.getOrderDetail(studentPaymentOrder.getId());
|
|
@@ -998,7 +1062,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
waitPayOrder.setStatus(DealStatusEnum.CLOSE);
|
|
|
studentPaymentOrderService.update(waitPayOrder);
|
|
|
musicGroupStudentFee.setLatestPaidTime(nowDate);
|
|
|
- musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
+ musicGroupStudentFee.setPaymentStatus(PAID_COMPLETED);
|
|
|
musicGroupStudentFee.setTemporaryCourseFee(BigDecimal.ZERO);
|
|
|
musicGroupStudentFee.setUpdateTime(nowDate);
|
|
|
}
|
|
@@ -1109,7 +1173,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
Date nowDate = new Date();
|
|
|
MusicGroupStudentFee musicGroupStudentFee = new MusicGroupStudentFee();
|
|
|
musicGroupStudentFee.setLatestPaidTime(nowDate);
|
|
|
- musicGroupStudentFee.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
+ musicGroupStudentFee.setPaymentStatus(PAID_COMPLETED);
|
|
|
musicGroupStudentFee.setUpdateTime(nowDate);
|
|
|
musicGroupStudentFee.setContinuousAbsenteeismTimes(0);
|
|
|
musicGroupStudentFee.setSubjectId(studentRegistration.getActualSubjectId());
|
|
@@ -1177,7 +1241,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen
|
|
|
} else {
|
|
|
musicGroupPaymentCalenderDetail.setActualAmount(courseTotalPrice);
|
|
|
}
|
|
|
- musicGroupPaymentCalenderDetail.setPaymentStatus(MusicGroupStudentFee.PaymentStatus.PAID_COMPLETED);
|
|
|
+ musicGroupPaymentCalenderDetail.setPaymentStatus(PAID_COMPLETED);
|
|
|
musicGroupPaymentCalenderDetail.setPayTime(nowDate);
|
|
|
musicGroupPaymentCalenderDetail.setPaymentOrderId(studentPaymentOrder.getId());
|
|
|
musicGroupPaymentCalenderDetail.setUseInCourse(0);
|