yangdamao 2 سال پیش
والد
کامیت
19efa07117

+ 0 - 13
zhongzheng-admin/src/main/java/com/zhongzheng/controller/order/OrderController.java

@@ -151,19 +151,6 @@ public class OrderController extends BaseController {
     @PostMapping("/inputOrder")
     public AjaxResult addInputOrder(@RequestBody OrderAddBo bo) {
         LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
-        if (ObjectUtils.isNotNull(bo.getOpenQuestionSign()) && bo.getOpenQuestionSign() == 1){
-            //新B端外部题库开通
-            QuestionOpenBo questionOpenBo = new QuestionOpenBo();
-            questionOpenBo.setCreateSysUserId(loginUser.getUser().getUserId());
-            questionOpenBo.setCreateBy(SecurityUtils.getUsername());
-            questionOpenBo.setGoodsId(bo.getGoodsList().get(0).getGoodsId());
-            UserSubscribe userSubscribe = iUserSubscribeService.getOne(new LambdaQueryWrapper<UserSubscribe>()
-                    .eq(UserSubscribe::getUserId, bo.getUserId())
-                    .eq(UserSubscribe::getOrderGoodsId, bo.getGoodsList().get(0).getSubOrderGoodsId())
-                    .last("limit 1"));
-            questionOpenBo.setUserSubscribeIds(Arrays.asList(userSubscribe.getSubscribeId()));
-            return AjaxResult.success(iOrderService.questionGoodsOpen(questionOpenBo));
-        }
         if(Validator.isEmpty(bo.getCreateUsername())){
             bo.setCreateSysUserId(loginUser.getUser().getUserId());
             bo.setCreateBy(SecurityUtils.getUsername());

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/bo/OrderAddBo.java

@@ -109,6 +109,6 @@ public class OrderAddBo {
     /** 培训计划ID */
     @ApiModelProperty("计划ID")
     private Integer planId;
-    @ApiModelProperty("新B端题库开通标识")
+    @ApiModelProperty("新B端考试订单标识:1题库开通 2补冲考是标识")
     private Integer openQuestionSign;
 }

+ 3 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/domain/OrderGoods.java

@@ -108,5 +108,8 @@ private static final long serialVersionUID=1L;
     @TableField(exist = false)
     private Long subOrderGoodsId;
 
+    @TableField(exist = false)
+    @ApiModelProperty("新B端考试订单标识:1题库开通 2补冲考是标识")
+    private Integer openQuestionSign;
 
 }

+ 57 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/order/service/impl/OrderServiceImpl.java

@@ -691,6 +691,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             if (ObjectUtils.isNotNull(g.getSubOrderGoodsId())){
                 //补充考试次数订单商品ID
                 orderGoods.setSubOrderGoodsId(g.getSubOrderGoodsId());
+                orderGoods.setOpenQuestionSign(bo.getOpenQuestionSign());
             }
             //订单标准价格不计算优惠
             totalPrice = totalPrice.add(goods.getStandPrice());
@@ -857,7 +858,10 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         iWxPayService.joinLockGrade(order.getOrderSn(), orderGoods.getGoodsId(), orderGoods.getOrderGoodsId());
         //商品是否关联第三方题库商品
         Goods goods = iGoodsService.getById(orderGoods.getGoodsId());
-        if (ObjectUtils.isNotNull(goods.getQuestionGoodsId())){
+        if (ObjectUtils.isNotNull(orderGoods.getOpenQuestionSign()) && orderGoods.getOpenQuestionSign() == 1){
+            //开通题库
+            questionHandleTwo(orderGoods,goods);
+        }else if (ObjectUtils.isNotNull(goods.getQuestionGoodsId())){
             questionGoodsHandle(orderGoods,goods);
         }
 //        //商品是否有活动模考
@@ -905,6 +909,58 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
         iGoodsQuestionRelService.save(rel);
     }
 
+
+    private void questionHandleTwo(OrderGoods orderGoods,Goods goods) {
+        //第三方题库商品
+        Goods questionGoods = iGoodsService.getById(goods.getGoodsId());
+        if (ObjectUtils.isNull(questionGoods) || questionGoods.getGoodsType() != 9){
+            //商品类型不符合
+            return;
+        }
+        //添加第三方关联记录
+        QuestionMerchant merchant = iQuestionMerchantService.getById(questionGoods.getQuestionMerchantId());
+        if (ObjectUtils.isNull(merchant)){
+            //商家不存在
+            return;
+        }
+        //服务有效期
+        OrderGoods orderGoodsTwo = setQuestionServiceTimeTwo(orderGoods, orderGoods.getSubOrderGoodsId());
+        iOrderGoodsService.updateById(orderGoodsTwo);
+
+        GoodsQuestionRel rel = new GoodsQuestionRel();
+        rel.setOrderGoodsId(orderGoodsTwo.getOrderGoodsId());
+        rel.setQuestionGoodsId(orderGoods.getGoodsId());
+        rel.setQsOrderGoodsId(orderGoods.getOrderGoodsId());
+        rel.setStatus(1);
+        rel.setQuestionDoNum(merchant.getDoNum());
+        rel.setCreateTime(DateUtils.getNowTime());
+        rel.setUpdateTime(DateUtils.getNowTime());
+        iGoodsQuestionRelService.save(rel);
+    }
+
+    private OrderGoods setQuestionServiceTimeTwo(OrderGoods add,Long subOrderGoodsId) {
+        Order one = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, add.getOrderSn()));
+        if (Objects.isNull(one)){
+            return null;
+        }
+        UserSubscribe subscribe = iUserSubscribeService.getOne(new LambdaQueryWrapper<UserSubscribe>()
+                .eq(UserSubscribe::getUserId, one.getUserId())
+                .eq(UserSubscribe::getOrderGoodsId, subOrderGoodsId)
+                .eq(UserSubscribe::getSubscribeStatus, 1)
+                .eq(UserSubscribe::getExamStatus,0)
+                .last("limit 1"));
+        if (ObjectUtils.isNull(subscribe)){
+            return add;
+        }
+        //考试日期
+        Long examTime = subscribe.getApplySiteExamTime();
+        //前推8天
+        Long dayBefore = DateUtils.getDayBefore(examTime, 8);
+        add.setServiceStartTime(dayBefore);
+        add.setServiceEndTime(examTime);
+        return add;
+    }
+
     private OrderGoods setQuestionServiceTime(OrderGoods add,OrderGoods orderGoods) {
         Order one = getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderSn, orderGoods.getOrderSn()));
         if (Objects.isNull(one)){

+ 2 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/service/impl/WxPayServiceImpl.java

@@ -1081,7 +1081,8 @@ public class WxPayServiceImpl implements IWxPayService {
         }
         //增加考试次数
         if (goodsVo.getGoodsType().equals(3)) {
-            if (ObjectUtils.isNotNull(goodsVo.getUnifySign()) && goodsVo.getUnifySign() == 1 && ObjectUtils.isNotNull(g.getSubOrderGoodsId())){
+            if (ObjectUtils.isNotNull(goodsVo.getUnifySign()) && goodsVo.getUnifySign() == 1
+                    && ObjectUtils.isNotNull(g.getSubOrderGoodsId())){
                 //统一补考商品标识 补充考试次数
                 UserExamGoods examGoods = userExamGoodsService
                         .getOne(new LambdaQueryWrapper<UserExamGoods>()