Przeglądaj źródła

Merge branch 'dev' into 'mp-server-test'

关联奖品发放移到异步任务中

See merge request quanshu/mp-server!953
jiang hao 2 lat temu
rodzic
commit
af80640a9a

+ 51 - 0
mp-service/src/main/java/com/qs/mp/framework/service/impl/AsyncTaskServiceImpl.java

@@ -4,11 +4,17 @@ 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.qs.mp.admin.domain.Goods;
 import com.qs.mp.admin.domain.GoodsCard;
 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.service.ICouponPkgService;
+import com.qs.mp.admin.service.ICouponService;
 import com.qs.mp.admin.service.IGoodsCardService;
+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;
@@ -31,6 +37,8 @@ import com.qs.mp.user.domain.UserTicketOrderItem;
 import com.qs.mp.user.service.IUserDeliverOrderItemCardService;
 import com.qs.mp.user.service.IUserDeliverOrderItemService;
 import com.qs.mp.user.service.IUserDeliverOrderService;
+import com.qs.mp.user.service.IUserHitPrizeService;
+import com.qs.mp.user.service.IUserPrizeStorageService;
 import com.qs.mp.user.service.IUserTicketOrderItemService;
 import com.qs.mp.user.service.IUserTicketOrderService;
 import java.util.ArrayList;
@@ -95,6 +103,22 @@ public class AsyncTaskServiceImpl extends ServiceImpl<AsyncTaskMapper, AsyncTask
     @Autowired
     private IUserDeliverOrderItemCardService userDeliverOrderItemCardService;
 
+    @Autowired
+    private ITicketBoxGoodsService ticketBoxGoodsService;
+
+    @Autowired
+    private ICouponService couponService;
+
+    @Autowired
+    private ICouponPkgService couponPkgService;
+
+    @Autowired
+    private IGoodsService goodsService;
+
+    @Autowired
+    private IUserPrizeStorageService userPrizeStorageService;
+
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public boolean insertAsyncTask(AsyncTaskTypeEnum taskType, String bizId) {
@@ -164,6 +188,33 @@ public class AsyncTaskServiceImpl extends ServiceImpl<AsyncTaskMapper, AsyncTask
         }
         userTicketOrderService.commToChannel(orderId, ChannelCommissionResourceEnum.USER.getValue());
 
+
+        // 关联奖品发放
+        List<UserTicketOrderItem> userTicketOrderItemList = userTicketOrderItemService.list(
+            new LambdaQueryWrapper<UserTicketOrderItem>().eq(UserTicketOrderItem::getOrderId, orderId));
+        for (UserTicketOrderItem orderItem : userTicketOrderItemList) {
+            Ticket ticket = ticketService.getById(orderItem.getTicketId());
+            // TODO: 线上和线下票如果有关联商品,都要发送关联商品到用户的仓库中
+            List<TicketBoxGoods> ticketBoxGoodsList = ticketBoxGoodsService.list(new LambdaQueryWrapper<TicketBoxGoods>()
+                .eq(TicketBoxGoods::getBoxId, ticketOrder.getBoxId()));
+            if (CollectionUtils.isNotEmpty(ticketBoxGoodsList)) {
+                // 发送关联商品
+                for (TicketBoxGoods ticketBoxGoods : ticketBoxGoodsList) {
+                    if (TicketBoxGoodsTypeEnum.GOODS.equals(ticketBoxGoods.getType())) {
+                        Goods goods = goodsService.getById(Long.valueOf(ticketBoxGoods.getRefId()));
+                        userPrizeStorageService.takeInStorage(orderItem.getUserId(),goods.getTitle(),goods.getPicUrl(),
+                            ticketBoxGoods.getRefId(),PrizeStorageInTypeEnum.TICKET_GOODS,orderItem.getItemId());
+                    } else if (TicketBoxGoodsTypeEnum.COUPON.equals(ticketBoxGoods.getType())) {
+                        couponService.distribute(ticket, orderItem.getUserId(), ticketBoxGoods.getRefId());
+                    } else if (TicketBoxGoodsTypeEnum.COUPON_PKG.equals(ticketBoxGoods.getType())) {
+                        couponPkgService.distribute(ticket, orderItem.getUserId(), ticketBoxGoods.getRefId());
+                    }
+                }
+            }
+        }
+
+
+
     }
 
 

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

@@ -506,26 +506,6 @@ public class UserTicketOrderServiceImpl extends
                     .eq(Ticket::getTicketId, ticket.getTicketId()));
             Assert.isTrue(rtn, "支付回调用户购票订单处理,更新盲票状态失败,ticketId:" + ticket.getTicketId());
 
-
-            // TODO: 线上和线下票如果有关联商品,都要发送关联商品到用户的仓库中
-            List<TicketBoxGoods> ticketBoxGoodsList = ticketBoxGoodsService.list(new LambdaQueryWrapper<TicketBoxGoods>()
-                .eq(TicketBoxGoods::getBoxId, ticketOrder.getBoxId()));
-            if (CollectionUtils.isNotEmpty(ticketBoxGoodsList)) {
-                // 发送关联商品
-                for (TicketBoxGoods ticketBoxGoods : ticketBoxGoodsList) {
-
-                    if (TicketBoxGoodsTypeEnum.GOODS.equals(ticketBoxGoods.getType())) {
-                        Goods goods = goodsService.getById(Long.valueOf(ticketBoxGoods.getRefId()));
-                        userPrizeStorageService.takeInStorage(orderItem.getUserId(),goods.getTitle(),goods.getPicUrl(),
-                            ticketBoxGoods.getRefId(),PrizeStorageInTypeEnum.TICKET_GOODS,orderItem.getItemId());
-                    } else if (TicketBoxGoodsTypeEnum.COUPON.equals(ticketBoxGoods.getType())) {
-                        couponService.distribute(ticket, orderItem.getUserId(), ticketBoxGoods.getRefId());
-                    } else if (TicketBoxGoodsTypeEnum.COUPON_PKG.equals(ticketBoxGoods.getType())) {
-                        couponPkgService.distribute(ticket, orderItem.getUserId(), ticketBoxGoods.getRefId());
-                    }
-                }
-            }
-
         }
 
         // 更新订单状态为已完成