Browse Source

活动排课

zouxuan 4 years ago
parent
commit
62ee4e510e

+ 35 - 12
mec-biz/src/main/java/com/ym/mec/biz/service/impl/PracticeGroupServiceImpl.java

@@ -137,7 +137,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
     @Autowired
     private ActivityUserMapperDao activityUserMapperDao;
     @Autowired
-    private VipGroupDao vipGroupDao;
+    private MemberFeeSettingDao memberFeeSettingDao;
     @Autowired
     private CloudTeacherOrderDao cloudTeacherOrderDao;
     @Autowired
@@ -3839,18 +3839,17 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
 
     @Override
     @Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-    public void activityOrderCallback(StudentPaymentOrder order) {
-        Integer userId = order.getUserId();
+    public void activityOrderCallback(StudentPaymentOrder studentPaymentOrder) {
+        Integer userId = studentPaymentOrder.getUserId();
+        StudentPaymentOrder order = studentPaymentOrderDao.lockOrder(studentPaymentOrder.getId());
+        if(!order.getStatus().equals(DealStatusEnum.ING)){
+            return;
+        }
         //更新订单状态
-        int updateCount = studentPaymentOrderService.update(order);
+        int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
         if (updateCount <= 0) {
             throw new BizException("订单更新失败");
         }
-        StudentPaymentOrder studentPaymentOrder = studentPaymentOrderDao.lockOrder(order.getId());
-
-        if(!studentPaymentOrder.getStatus().equals(DealStatusEnum.ING)){
-            return;
-        }
         if (studentPaymentOrder.getStatus().equals(DealStatusEnum.SUCCESS)) {
             Date now = new Date();
             Student student = studentDao.get(order.getUserId());
@@ -5156,6 +5155,30 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             }
         }
         BigDecimal activityFee = activity.getMarketPrice();
+        if(groupType == GroupType.MEMBER){
+            MemberFeeSetting memberFeeSetting = memberFeeSettingDao.findByRankIdAndOrganId(practiceGroupBuyParams.getOrganId(), 1);
+            PeriodEnum periodEnum = activity.getPeriodEnum();
+            switch (periodEnum) {
+                case DAY:
+                    activityFee = memberFeeSetting.getCurrentDayFee().multiply(new BigDecimal(buyNum));
+                    break;
+                case MONTH:
+                    activityFee = memberFeeSetting.getCurrentMonthFee().multiply(new BigDecimal(buyNum));
+                    break;
+                case QUARTERLY:
+                    activityFee = memberFeeSetting.getCurrentQuarterlyFee().multiply(new BigDecimal(buyNum));
+                    break;
+                case YEAR_HALF:
+                    activityFee = memberFeeSetting.getCurrentHalfYearFee().multiply(new BigDecimal(buyNum));
+                    break;
+                case YEAR:
+                    activityFee = memberFeeSetting.getCurrentYearFee().multiply(new BigDecimal(buyNum));
+                    break;
+                default:
+                    throw new BizException("错误的会员周期");
+            }
+            activityFee = activityFee.multiply(activity.getDiscount()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
+        }
         //计算订单金额
         StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(practiceGroupBuyParams.getCouponIdList(), activityFee, true);
         activityFee = studentPaymentOrder.getActualAmount();
@@ -5197,7 +5220,7 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
         studentPaymentOrder.setUpdateTime(nowDate);
         studentPaymentOrder.setActivityId(activityId);
         studentPaymentOrder.setActivityBuyNum(buyNum);
-        studentPaymentOrderService.update(studentPaymentOrder);
+        studentPaymentOrderService.insert(studentPaymentOrder);
 
         studentPaymentOrder.setVersion(0);
         if (activityFee.compareTo(BigDecimal.ZERO) == 0) {
@@ -5211,8 +5234,8 @@ public class PracticeGroupServiceImpl extends BaseServiceImpl<Long, PracticeGrou
             return notifyMap;
         }
 
-        String orderSubject = "6.1考级活动";
-        String receiver = "degree";
+        String orderSubject = "营销活动";
+        String receiver = "activity";
 
         String baseApiUrl = sysConfigDao.findConfigValue("base_api_url");
 

+ 7 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -936,7 +936,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 			throw new BizException("所选学员暂无排课资格");
 		}
 
-		Date now=new Date();
+		Date now = new Date();
 
 		if(Objects.isNull(applyBaseInfo.getOfflineClassesUnitPrice()) && Objects.isNull(applyBaseInfo.getOnlineClassesUnitPrice())){
 			throw new BizException("请设置课程单价");
@@ -1057,6 +1057,12 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		classGroup.setCreateTime(now);
 		classGroup.setUpdateTime(now);
 		classGroupDao.insert(classGroup);
+		if(!vipGroup.getGiveFlag()){
+			StudentPaymentOrder order = studentPaymentOrderDao.get(activityUserMappers.get(0).getPaymentOrderId());
+			order.setMusicGroupId(applyBaseInfo.getId().toString());
+			order.setClassGroupId(classGroup.getId());
+			studentPaymentOrderDao.update(order);
+		}
 
 		//班级学员关联记录
 		List<ClassGroupStudentMapper> classGroupStudentMapperList = new ArrayList<>();
@@ -1149,7 +1155,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 		for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
 			if(vipGroup.getGiveFlag()){
 				List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
-				BigDecimal coursePrice = BigDecimal.ZERO;
 				for (CourseSchedule courseSchedule : courseSchedules) {
 					CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
 					courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());