Browse Source

盲票购买后发放关联商品

cup 2 years ago
parent
commit
9cfe48bf7a

+ 2 - 1
mp-common/src/main/java/com/qs/mp/common/enums/PrizeStorageInTypeEnum.java

@@ -13,7 +13,8 @@ public enum PrizeStorageInTypeEnum implements IEnum<Integer> {
 
   TICKET_CASHED(1, "盲票奖品"),
   COIN_EXCHANGE(2, "盲豆兑换"),
-  MARKETING(3, "营销活动");
+  MARKETING(3, "营销活动"),
+  TICKET_GOODS(4, "盲票购买");
 
 
   private final int value;

+ 1 - 1
mp-service/src/main/java/com/qs/mp/user/domain/UserPrizeStorage.java

@@ -88,7 +88,7 @@ public class UserPrizeStorage implements Serializable {
    */
   @TableField("in_type")
   @JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString)
-  @ApiModelProperty("入库类型;1盲票兑奖、2盲豆兑换,3营销活动")
+  @ApiModelProperty("入库类型;1盲票兑奖、2盲豆兑换,3营销活动,4盲票购买")
   private PrizeStorageInTypeEnum inType;
 
   /**

+ 32 - 0
mp-service/src/main/java/com/qs/mp/user/service/impl/UserTicketOrderServiceImpl.java

@@ -5,14 +5,19 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qs.mp.admin.domain.Goods;
 import com.qs.mp.admin.domain.Ticket;
 import com.qs.mp.admin.domain.TicketBox;
+import com.qs.mp.admin.domain.TicketBoxGoods;
 import com.qs.mp.admin.domain.TicketPackage;
 import com.qs.mp.admin.domain.param.IndexTicketBoxTopQueryParam;
 import com.qs.mp.admin.domain.param.IndexTicketSiteTopQueryParam;
 import com.qs.mp.admin.domain.param.UserTicketOrderQueryParam;
 import com.qs.mp.admin.domain.vo.*;
+import com.qs.mp.admin.service.IGoodsService;
+import com.qs.mp.admin.service.ITicketBoxGoodsService;
 import com.qs.mp.admin.service.ITicketBoxService;
 import com.qs.mp.admin.service.ITicketPackageService;
 import com.qs.mp.admin.service.ITicketService;
@@ -40,6 +45,7 @@ import com.qs.mp.user.domain.vo.UserCoupon4OrderVO;
 import com.qs.mp.user.domain.vo.UserShareVO;
 import com.qs.mp.user.mapper.UserTicketOrderMapper;
 import com.qs.mp.user.service.IUserCouponService;
+import com.qs.mp.user.service.IUserPrizeStorageService;
 import com.qs.mp.user.service.IUserTicketOrderItemService;
 import com.qs.mp.user.service.IUserTicketOrderService;
 
@@ -127,6 +133,15 @@ public class UserTicketOrderServiceImpl extends
     @Autowired
     private DistributedLocker distributedLocker;
 
+    @Autowired
+    private ITicketBoxGoodsService ticketBoxGoodsService;
+
+    @Autowired
+    private IUserPrizeStorageService userPrizeStorageService;
+
+    @Autowired
+    private IGoodsService goodsService;
+
     @Override
     public String submitOrder(Long userId, TicketOrderSettleVO orderSettleVO,
         UserShareVO userShareVO) {
@@ -482,6 +497,23 @@ public class UserTicketOrderServiceImpl extends
                     .eq(Ticket::getTicketId, ticket.getTicketId()));
             Assert.isTrue(rtn, "支付回调用户购票订单处理,更新盲票状态失败,ticketId:" + ticket.getTicketId());
 
+
+            // 如果为线上票则发送关联商品到用户仓库
+            TicketBox ticketBox = ticketBoxService.getById(ticketOrder.getBoxId());
+            if (TicketTypeEnum.ONLINE.equals(ticketBox.getType())) {
+                List<TicketBoxGoods> ticketBoxGoodsList = ticketBoxGoodsService.list(new LambdaQueryWrapper<TicketBoxGoods>()
+                    .eq(TicketBoxGoods::getBoxId, ticketBox.getBoxId()));
+                if (CollectionUtils.isNotEmpty(ticketBoxGoodsList)) {
+                    for (TicketBoxGoods ticketBoxGoods : ticketBoxGoodsList) {
+                        Goods goods = goodsService.getById(Long.valueOf(ticketBoxGoods.getRefId()));
+
+                        userPrizeStorageService.takeInStorage(orderItem.getUserId(),goods.getTitle(),goods.getPicUrl(),
+                            ticketBoxGoods.getRefId(),PrizeStorageInTypeEnum.TICKET_GOODS,orderItem.getItemId());
+
+                    }
+                }
+            }
+
         }
 
         // 更新订单状态为已完成