|
@@ -77,18 +77,19 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
Student student = studentDao.getLocked(degreeRegistration.getUserId());
|
|
|
|
|
|
List<DegreeRegistration> userLevelDegrees = degreeRegistrationDao.getUserLevelDegrees(degreeRegistration.getUserId(), ACTIVITY_TAG);
|
|
|
- long levelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getSporadicId())).count();
|
|
|
- long theoryLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getTheoryLevel())).count();
|
|
|
+ long endLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getSporadicId())&&d.getStatus().equals(2)).count();
|
|
|
+ long ingLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getSporadicId())&&d.getStatus().equals(1)).count();
|
|
|
+ long endTheoryLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getTheoryLevel())&&d.getStatus().equals(2)).count();
|
|
|
+ long ingTheoryLevelNum = userLevelDegrees.stream().filter(d -> Objects.nonNull(d.getTheoryLevel())&&d.getStatus().equals(1)).count();
|
|
|
|
|
|
- if(Objects.nonNull(degreeRegistration.getSporadicId())&&levelNum>0){
|
|
|
+ if(Objects.nonNull(degreeRegistration.getSporadicId())&&endLevelNum>0){
|
|
|
throw new BizException("您已报考过选择的考级项目");
|
|
|
}
|
|
|
- if(Objects.nonNull(degreeRegistration.getTheoryLevel())&&theoryLevelNum>0){
|
|
|
+ if(Objects.nonNull(degreeRegistration.getTheoryLevel())&&endTheoryLevelNum>0){
|
|
|
throw new BizException("您已报考过选择的考级项目");
|
|
|
}
|
|
|
|
|
|
degreeRegistration.setActivityTag(ACTIVITY_TAG);
|
|
|
- DegreeRegistration degree = degreeRegistrationDao.getWithLevel(degreeRegistration);
|
|
|
|
|
|
Date nowDate = new Date();
|
|
|
|
|
@@ -139,33 +140,26 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
}
|
|
|
|
|
|
if(Objects.nonNull(degreeRegistration.getSporadicId())||Objects.nonNull(degreeRegistration.getTheoryLevel())){
|
|
|
- if (degree == null) {
|
|
|
- degreeRegistration.setStatus(1);
|
|
|
- degreeRegistration.setCreateTime(nowDate);
|
|
|
- degreeRegistration.setUpdateTime(nowDate);
|
|
|
- degreeRegistrationDao.insert(degreeRegistration);
|
|
|
- } else if (degree.getStatus().equals(2)) {
|
|
|
- throw new BizException("您已报考过选择的考级项目");
|
|
|
- } else {
|
|
|
- if (!degreeRegistration.getIsRepay() && degree.getStatus().equals(1)) {
|
|
|
- List<StudentPaymentOrder> orders = studentPaymentOrderDao.findPaymentOrderByGroupType(degreeRegistration.getUserId(), degreeRegistration.getSporadicId(), "SPORADIC", DealStatusEnum.ING);
|
|
|
- if (orders != null && orders.size() > 0) {
|
|
|
- List<StudentPaymentOrderDetail> studentPaymentOrderDetails = studentPaymentOrderDetailDao.getOrderDetail(orders.get(0).getId());
|
|
|
- Map<String, Object> result = new HashMap<>();
|
|
|
- result.put("degree", degree);
|
|
|
- if(!CollectionUtils.isEmpty(studentPaymentOrderDetails)){
|
|
|
- result.put("additionCourseInfo", studentPaymentOrderDetails.get(0).getGoodsIdList());
|
|
|
- }
|
|
|
- return BaseController.failed(HttpStatus.CONTINUE, result, "");
|
|
|
+ degreeRegistration.setStatus(1);
|
|
|
+ degreeRegistration.setCreateTime(nowDate);
|
|
|
+ degreeRegistration.setUpdateTime(nowDate);
|
|
|
+ degreeRegistrationDao.insert(degreeRegistration);
|
|
|
+
|
|
|
+ List<DegreeRegistration> updateDegrees = new ArrayList<>();
|
|
|
+ if(ingLevelNum>0||ingTheoryLevelNum>0){
|
|
|
+ for (DegreeRegistration userLevelDegree : userLevelDegrees) {
|
|
|
+ if(Objects.nonNull(userLevelDegree.getSporadicId())&&userLevelDegree.getSporadicId().equals(degreeRegistration.getSporadicId())){
|
|
|
+ userLevelDegree.setStatus(0);
|
|
|
+ updateDegrees.add(userLevelDegree);
|
|
|
}
|
|
|
+ if(Objects.nonNull(userLevelDegree.getTheoryLevel())&&userLevelDegree.getTheoryLevel().equals(degreeRegistration.getTheoryLevel())){
|
|
|
+ userLevelDegree.setStatus(0);
|
|
|
+ updateDegrees.add(userLevelDegree);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!CollectionUtils.isEmpty(updateDegrees)){
|
|
|
+ degreeRegistrationDao.batchUpdate(updateDegrees);
|
|
|
}
|
|
|
- degreeRegistration.setMoney(degree.getMoney());
|
|
|
- degreeRegistration.setTheoryMoney(degree.getTheoryMoney());
|
|
|
- degreeRegistration.setId(degree.getId());
|
|
|
- degreeRegistration.setStatus(1);
|
|
|
- degreeRegistration.setCreateTime(nowDate);
|
|
|
- degreeRegistration.setUpdateTime(nowDate);
|
|
|
- degreeRegistrationDao.update(degreeRegistration);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -201,6 +195,10 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
|
|
|
BigDecimal practiceUnitPrice = practiceGroupSellPrice.getOnceOriginalPrice(),
|
|
|
vipUnitPrice = practiceGroupSellPrice.getVipOneStudentTwelveCourseActivityPriceWithNewUser(), highUnitPrice;
|
|
|
+
|
|
|
+ if(additionCourseInfo.containsKey(CourseSchedule.CourseScheduleType.HIGH)){
|
|
|
+ historyHighNum = historyHighNum + additionCourseInfo.get(CourseSchedule.CourseScheduleType.HIGH);
|
|
|
+ }
|
|
|
if(student.getIsNewUser()){
|
|
|
highUnitPrice = practiceGroupSellPrice.getHighOnlineTenCourseOriginalPriceWithNewUser();
|
|
|
if(additionCourseInfo.containsKey(CourseSchedule.CourseScheduleType.VIP)){
|
|
@@ -209,9 +207,6 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
if(historyVipNum<=0){
|
|
|
additionCourseInfo.remove(CourseSchedule.CourseScheduleType.PRACTICE);
|
|
|
}
|
|
|
- if(additionCourseInfo.containsKey(CourseSchedule.CourseScheduleType.HIGH)){
|
|
|
- historyHighNum = historyHighNum + additionCourseInfo.get(CourseSchedule.CourseScheduleType.HIGH);
|
|
|
- }
|
|
|
boolean vipMoreThan2 = historyVipNum>=2;
|
|
|
if(vipMoreThan2){
|
|
|
if(FREE_PRICE_LEVEL.contains(degreeRegistration.getLevel())){
|
|
@@ -334,7 +329,9 @@ public class DegreeRegistrationServiceImpl extends BaseServiceImpl<Integer, Degr
|
|
|
throw new BizException("订单更新失败");
|
|
|
}
|
|
|
|
|
|
- if (degree == null || degree.getStatus().equals(2)) {
|
|
|
+ if (degree == null || !degree.getStatus().equals(1)) {
|
|
|
+ studentPaymentOrder.setMemo("订单状态已变更");
|
|
|
+ studentPaymentOrderService.update(studentPaymentOrder);
|
|
|
return true;
|
|
|
}
|
|
|
degree.setOrderNo(studentPaymentOrder.getOrderNo());
|