Procházet zdrojové kódy

直播活动,商品新增买一增2

zouxuan před 3 roky
rodič
revize
d092da227d

+ 35 - 32
mec-biz/src/main/java/com/ym/mec/biz/service/impl/MemberRankSettingServiceImpl.java

@@ -243,7 +243,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         String activeConfig = sysConfigDao.findConfigValue("cloud_teacher_active_config");
         List<Cloud2022ActivityDto> cloud2022ActivityDtos = JSONArray.parseArray(activeConfig, Cloud2022ActivityDto.class);
         List<Cloud2022ActivityDto> activityDtos = cloud2022ActivityDtos.stream().
-                filter(e -> Arrays.stream(e.getOrganId().split(",")).collect(Collectors.toList()).contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
+                filter(e -> Arrays.stream(e.getOrganId().split(",")).collect(Collectors.toList()).
+                        contains(sysUser.getOrganId().toString())).collect(Collectors.toList());
         if(CollectionUtils.isEmpty(activityDtos)){
             throw new BizException("当前分部暂未开通活动");
         }
@@ -251,7 +252,7 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         Integer activityId = null;
         //判断当前商品是否可以购买(库存、上架状态、是否购买过)
         //如果是云教练商品,那么只能购买一次、如果是免费直播课,那么每次上架只能买一次,总共只能买2次
-        if(memberPayParamDto.getLiveGoodsId() == 1){
+        if(memberPayParamDto.getLiveGoodsId() == 1 || memberPayParamDto.getLiveGoodsId() == 5){
             //判断用户是否已存在订单
             List<StudentPaymentOrder> memberIngOrders = studentPaymentOrderService.queryByCondition(GroupType.LIVE_BUY,null,student.getUserId(), DealStatusEnum.ING,OrderTypeEnum.LIVE_BUY);
             if (CollectionUtils.isNotEmpty(memberIngOrders)) {
@@ -262,8 +263,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 //还原库存
                 liveGoodsService.addGoodsStock(memberPayParamDto.getLiveGoodsId(),memberPayParamDto.getLiveId());
             }
+            if(memberPayParamDto.getLiveGoodsId() == 1){
+                activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
+            }else {
+                activityId = Integer.parseInt(activityDtos.get(1).getActivityId());
+            }
             //是否还有购买资格
-            activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
             VipGroupActivity vipGroupActivity = Optional.ofNullable(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
             if(vipGroupActivity.getStudentMaxUsedTimes() != -1){
                 //获取活动购买次数
@@ -286,11 +291,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             if(list.contains(sysUser.getId())){
                 throw new BizException("您已领取过本轮免费直播课");
             }
-            //购买次数是否超过2次
-//            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
-//            if(count >= 2){
-//                throw new BizException("免费直播课已达到领取次数上限");
-//            }
             //保存购买记录
             tempBuyFreeLiveTheoryCourseDao.insert(
                     new TempBuyFreeLiveTheoryCourse(sysUser.getId(),memberPayParamDto.getLiveId(),memberPayParamDto.getLiveGoodsId()));
@@ -314,6 +314,8 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
         studentPaymentOrder.setActivityId(activityId.toString());
         studentPaymentOrder.setActivityBuyNum(1);
         studentPaymentOrder.setMusicGroupId(memberPayParamDto.getLiveId());
+        //保存商品编号
+        studentPaymentOrder.setClassGroupId(memberPayParamDto.getLiveGoodsId());
         Map<String, Object> result = getMap(memberPayParamDto.getAmount(), memberPayParamDto.getUseBalancePayment(),studentPaymentOrder);
         return BaseController.succeed(result);
     }
@@ -332,9 +334,12 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             succeed.setMsg("当前分部暂未开通活动");
             return succeed;
         }
-        if(memberPayParamDto.getLiveGoodsId() == 1){
+        if(memberPayParamDto.getLiveGoodsId() == 1 || memberPayParamDto.getLiveGoodsId() == 5){
             //是否还有购买资格
             Integer activityId = Integer.parseInt(activityDtos.get(0).getActivityId());
+            if(memberPayParamDto.getLiveGoodsId() == 5){
+                activityId = Integer.parseInt(activityDtos.get(1).getActivityId());
+            }
             VipGroupActivity vipGroupActivity = Optional.ofNullable(vipGroupActivityDao.get(activityId)).orElseThrow(()-> new BizException("活动不存在"));
             if(vipGroupActivity.getStudentMaxUsedTimes() != -1){
                 //获取活动购买次数
@@ -356,12 +361,6 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
                 succeed.setMsg("您已领取过本轮免费直播课");
                 return succeed;
             }
-            //购买次数是否超过2次
-//            int count = tempBuyFreeLiveTheoryCourseDao.countByUserId(sysUser.getId());
-//            if(count >= 2){
-//                succeed.setMsg("免费直播课已达到领取次数上限");
-//                return succeed;
-//            }
         }else {
             succeed.setMsg("当前商品不可购买");
             return succeed;
@@ -631,27 +630,31 @@ public class MemberRankSettingServiceImpl extends BaseServiceImpl<Integer, Membe
             cloudTeacherOrder.setOrganId(studentPaymentOrder.getOrganId());
             cloudTeacherOrder.setAmount(studentPaymentOrder.getExpectAmount());
             cloudTeacherOrderService.save(cloudTeacherOrder,tenantConfigService.autoActivationFlag(cloudTeacherOrder.getTenantId()));
-            //赠送陪练课
-            ActivityUserMapper activityUserMapper = new ActivityUserMapper();
-            activityUserMapper.setTeacherId(student.getTeacherId());
-            activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
-            activityUserMapper.setUserId(studentPaymentOrder.getUserId());
-            activityUserMapper.setActivityId(activity.getId());
-            activityUserMapper.setActualPrice(BigDecimal.ZERO);
-            activityUserMapper.setGivePracticeFlag(1);
-            activityUserMapper.setReturnFee(false);
-            activityUserMapperDao.insert(activityUserMapper);
-            //赠送训练营
-            TempLittleArtistTrainingCampUserRelation tempLittleArtistTrainingCamp = new TempLittleArtistTrainingCampUserRelation();
-            tempLittleArtistTrainingCamp.setUserId(studentPaymentOrder.getUserId());
-            tempLittleArtistTrainingCamp.setState("NOT_APPLY");
-            tempLittleArtistTrainingCamp.setCreateTime(nowDate);
-            tempLittleArtistTrainingCampUserRelationDao.insert(tempLittleArtistTrainingCamp);
+
+            //如果是买的商品1那么赠送陪练课和训练营
+            if(Objects.equals(studentPaymentOrder.getClassGroupId(),1)){
+                //赠送陪练课
+                ActivityUserMapper activityUserMapper = new ActivityUserMapper();
+                activityUserMapper.setTeacherId(student.getTeacherId());
+                activityUserMapper.setPaymentOrderId(studentPaymentOrder.getId());
+                activityUserMapper.setUserId(studentPaymentOrder.getUserId());
+                activityUserMapper.setActivityId(activity.getId());
+                activityUserMapper.setActualPrice(BigDecimal.ZERO);
+                activityUserMapper.setGivePracticeFlag(1);
+                activityUserMapper.setReturnFee(false);
+                activityUserMapperDao.insert(activityUserMapper);
+                //赠送训练营
+                TempLittleArtistTrainingCampUserRelation tempLittleArtistTrainingCamp = new TempLittleArtistTrainingCampUserRelation();
+                tempLittleArtistTrainingCamp.setUserId(studentPaymentOrder.getUserId());
+                tempLittleArtistTrainingCamp.setState("NOT_APPLY");
+                tempLittleArtistTrainingCamp.setCreateTime(nowDate);
+                tempLittleArtistTrainingCampUserRelationDao.insert(tempLittleArtistTrainingCamp);
+            }
             //生成订单详情
             StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail();
             studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId());
             studentPaymentOrderDetail.setType(OrderDetailTypeEnum.CLOUD_TEACHER);
-            studentPaymentOrderDetail.setGoodsIdList("1");
+            studentPaymentOrderDetail.setGoodsIdList(studentPaymentOrder.getClassGroupId().toString());
             studentPaymentOrderDetail.setPrice(studentPaymentOrder.getExpectAmount());
             studentPaymentOrderDetail.setRemitFee(studentPaymentOrder.getCouponRemitFee());
             studentPaymentOrderDetail.setTenantId(studentPaymentOrder.getTenantId());

+ 1 - 0
mec-student/src/main/java/com/ym/mec/student/controller/StudentOrderController.java

@@ -275,6 +275,7 @@ public class StudentOrderController extends BaseController {
             }
         } else if (orderByOrderNo.getGroupType().equals(GroupType.LIVE_BUY)) {
             orderDetail.put("detail", vipGroupActivityDao.queryByIds(orderByOrderNo.getActivityId()));
+            orderDetail.put("goodsId",orderByOrderNo.getClassGroupId());
         }
         return succeed(orderDetail);
     }