|
@@ -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)){
|