瀏覽代碼

学生端活动购买

zouxuan 2 年之前
父節點
當前提交
6a7f2c945a

+ 71 - 45
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentPaymentOrderServiceImpl.java

@@ -107,7 +107,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     @Autowired
     private SysCouponCodeService sysCouponCodeService;
     @Autowired
-    private VipGroupActivityDao vipGroupActivityDao;
+    private VipGroupActivityService vipGroupActivityService;
     @Autowired
     private ActivityUserMapperService activityUserMapperService;
     @Autowired
@@ -525,42 +525,46 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
 
     //调用相应业务回调接口
     public void callOrderCallBack(StudentPaymentOrder order) throws Exception {
-        if (order.getType().equals(OrderTypeEnum.APPLY)) { //报名订单
-            studentRegistrationService.updateApplyOrder(order);
-        } else if (order.getType().equals(OrderTypeEnum.SMALL_CLASS_TO_BUY)) {
-            vipGroupService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.RENEW) || order.getType().equals(OrderTypeEnum.ADD_STUDENT)) {
-            musicGroupService.renewForCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.SPORADIC) || order.getType().equals(OrderTypeEnum.LUCK) || order.getType().equals(OrderTypeEnum.DOUBLE_ELEVEN2020)) {
-            sporadicChargeInfoService.renewForCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.PRACTICE_GROUP_BUY) || order.getType().equals(OrderTypeEnum.PRACTICE_GROUP_RENEW)) {
-            practiceGroupService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.REPAIR)) {
-            studentRepairService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.GOODS_SELL)) {
-            studentRepairService.goodsSellOrderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.SUBJECT_CHANGE)) {
-            subjectChangeService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.DEGREE_REGISTRATION)) {
-            degreeRegistrationService.updateStatus(order);
-        } else if (order.getType().equals(OrderTypeEnum.MAINTENANCE)) {
-            studentInstrumentService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.REPLACEMENT)) {
-            replacementInstrumentActivityService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.DEGREE)) {
-            childrenDayReserveService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.MEMBER)) {
-            //购买团练宝
-            memberRankSettingService.orderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.ACTIVITY)) {
-            //购买活动
-            practiceGroupService.activityOrderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.LIVE_BUY)) {
-            //直播课购买回调
-            memberRankSettingService.liveBuyOrderCallback(order);
-        } else if (order.getType().equals(OrderTypeEnum.MALL_BUY)) {
-            // 商城购买订单回调
-            studentPaymentOrderService.mallBuyOrderCallback(order);
+        if(order.getGroupType() == GroupType.ACTIVITY){
+            vipGroupActivityService.orderCallback(order);
+        }else {
+            if (order.getType().equals(OrderTypeEnum.APPLY)) { //报名订单
+                studentRegistrationService.updateApplyOrder(order);
+            } else if (order.getType().equals(OrderTypeEnum.SMALL_CLASS_TO_BUY)) {
+                vipGroupService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.RENEW) || order.getType().equals(OrderTypeEnum.ADD_STUDENT)) {
+                musicGroupService.renewForCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.SPORADIC) || order.getType().equals(OrderTypeEnum.LUCK) || order.getType().equals(OrderTypeEnum.DOUBLE_ELEVEN2020)) {
+                sporadicChargeInfoService.renewForCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.PRACTICE_GROUP_BUY) || order.getType().equals(OrderTypeEnum.PRACTICE_GROUP_RENEW)) {
+                practiceGroupService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.REPAIR)) {
+                studentRepairService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.GOODS_SELL)) {
+                studentRepairService.goodsSellOrderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.SUBJECT_CHANGE)) {
+                subjectChangeService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.DEGREE_REGISTRATION)) {
+                degreeRegistrationService.updateStatus(order);
+            } else if (order.getType().equals(OrderTypeEnum.MAINTENANCE)) {
+                studentInstrumentService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.REPLACEMENT)) {
+                replacementInstrumentActivityService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.DEGREE)) {
+                childrenDayReserveService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.MEMBER)) {
+                //购买团练宝
+                memberRankSettingService.orderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.ACTIVITY)) {
+                //购买活动
+                practiceGroupService.activityOrderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.LIVE_BUY)) {
+                //直播课购买回调
+                memberRankSettingService.liveBuyOrderCallback(order);
+            } else if (order.getType().equals(OrderTypeEnum.MALL_BUY)) {
+                // 商城购买订单回调
+                studentPaymentOrderService.mallBuyOrderCallback(order);
+            }
         }
     }
 
@@ -798,7 +802,7 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
     public Integer activityGive(Integer vipGroupActivityId, StudentPaymentOrder studentPaymentOrder, String vipGroupId, String practiceGroupId, Integer teacherId) {
         Integer activityUserMapperId = null;
         if (vipGroupActivityId != null) {
-            VipGroupActivity activity = vipGroupActivityDao.get(vipGroupActivityId);
+            VipGroupActivity activity = vipGroupActivityService.get(vipGroupActivityId);
             ActivityUserMapper activityUserMapper = new ActivityUserMapper();
             activityUserMapper.setVipGroupId(vipGroupId);
             activityUserMapper.setPracticeGroupId(practiceGroupId);
@@ -808,16 +812,38 @@ public class StudentPaymentOrderServiceImpl extends BaseServiceImpl<Long, Studen
             activityUserMapper.setTeacherId(teacherId);
             activityUserMapper.setActualPrice(studentPaymentOrder.getExpectAmount());
             activityUserMapper.setAddMemo(activity.getName());
-            if (vipGroupId != null) {
-                activityUserMapper.setVipFlag(2);
-            }
-            if(practiceGroupId != null) {
-                activityUserMapper.setPracticeFlag(2);
+            //如果是课程活动
+            if(activity.getActivityType().equals(0)){
+                activityUserMapper.setSubNoCoursePrice(activityUserMapper.getActualPrice());
+                activityUserMapper.setTotalCourseNum(studentPaymentOrder.getActivityBuyNum());
+                activityUserMapper.setSubCourseNum(studentPaymentOrder.getActivityBuyNum());
+                activityUserMapper.setSingleCourseTime(activity.getSingleCourseTime());
+                //vip课
+                if(StringUtils.isNotEmpty(activity.getVipGroupCategoryIdList())){
+                    activityUserMapper.setVipFlag(1);
+                    activityUserMapper.setCategoryId(Integer.parseInt(activity.getVipGroupCategoryIdList()));
+                }else {
+                    //网管课
+                    activityUserMapper.setPracticeFlag(1);
+                }
+                if (vipGroupId != null) {
+                    activityUserMapper.setVipFlag(2);
+                    activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
+                    activityUserMapper.setSubCourseNum(0);
+                }
+                if(practiceGroupId != null) {
+                    activityUserMapper.setPracticeFlag(2);
+                    activityUserMapper.setSubNoCoursePrice(BigDecimal.ZERO);
+                    activityUserMapper.setSubCourseNum(0);
+                }
             }
-            activityUserMapperService.copyProperty(activityUserMapper,activity,false,true);
-            activityUserMapper.setSubCourseNum(0);
+//            activityUserMapperService.copyProperty(activityUserMapper,activity,false,true);
+
             //是否达到满赠标准
             if (activity.getFullMinusCourseTimes() == -1 || studentPaymentOrder.getActivityBuyNum() < activity.getFullMinusCourseTimes()) {
+                if(activity.getActivityType().equals(1)){
+                    return null;
+                }
                 activityUserMapperService.insert(activityUserMapper);
                 return activityUserMapper.getId();
             }

+ 6 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupActivityServiceImpl.java

@@ -536,7 +536,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 		String orderNo = idGeneratorService.generatorId("payment") + "";
 		studentPaymentOrder.setOrderNo(orderNo);
 		studentPaymentOrder.setStatus(DealStatusEnum.ING);
-		studentPaymentOrder.setType(OrderTypeEnum.SMALL_CLASS_TO_BUY);
+		studentPaymentOrder.setType(type);
 		studentPaymentOrder.setMusicGroupId(payParam.getVipGroupActivityId().toString());
 		studentPaymentOrder.setOrganId(payParam.getOrganId());
 		studentPaymentOrder.setRoutingOrganId(payParam.getOrganId());
@@ -582,23 +582,15 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 		return BaseController.succeed(payMap);
     }
 
-	private StudentPaymentOrder checkOrderStatus(StudentPaymentOrder studentPaymentOrder){
-		StudentPaymentOrder order = studentPaymentOrderService.lockOrder(studentPaymentOrder.getId());
-		if (!order.getStatus().equals(DealStatusEnum.ING)) {
-			throw new BizException("订单状态异常");
-		}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
+	public void orderCallback(StudentPaymentOrder studentPaymentOrder) {
 		//更新订单状态
 		int updateCount = studentPaymentOrderService.update(studentPaymentOrder);
 		if (updateCount <= 0) {
 			throw new BizException("订单更新失败");
 		}
-		return order;
-	}
-
-	@Override
-	@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
-	public void orderCallback(StudentPaymentOrder studentPaymentOrder) {
-		studentPaymentOrder = this.checkOrderStatus(studentPaymentOrder);
 		if (studentPaymentOrder.getStatus() == DealStatusEnum.SUCCESS) {
 			//活动赠送
 			studentPaymentOrderService.activityGive(Integer.parseInt(studentPaymentOrder.getActivityId()), studentPaymentOrder,
@@ -630,6 +622,7 @@ public class VipGroupActivityServiceImpl extends BaseServiceImpl<Integer, VipGro
 		Map<Integer, String> eduMap = studentRegistrationDao.queryStudentEduMap(userId);
 		if(CollectionUtils.isEmpty(eduMap)){
 			Set<Integer> integers = employeePositionService.queryUserIdByRoleId(new SysUserRoleEnum[]{ORGAN_MANAGER}, studentPaymentOrder.getOrganId());
+			eduMap = new HashMap<>(integers.size());
 			if(!CollectionUtils.isEmpty(integers)){
 				for (Integer integer : integers) {
 					eduMap.put(integer,integer.toString());