Quellcode durchsuchen

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

支付后建立用户和推广员的关系

See merge request quanshu/mp-server!982
jiang hao vor 2 Jahren
Ursprung
Commit
13d0ae827c

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

@@ -59,6 +59,8 @@ import java.util.List;
 import java.util.Objects;
 import java.util.concurrent.TimeUnit;
 
+import org.apache.http.util.Asserts;
+import org.apache.poi.ss.formula.functions.T;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.aop.framework.AopContext;
@@ -150,6 +152,10 @@ public class UserTicketOrderServiceImpl extends
     @Autowired
     private ICouponPkgService couponPkgService;
 
+
+    @Autowired
+    private IPromoterUserService promoterUserService;
+
     @Override
     public String submitOrder(Long userId, TicketOrderSettleVO orderSettleVO,
         UserShareVO userShareVO) {
@@ -512,6 +518,30 @@ public class UserTicketOrderServiceImpl extends
 
         }
 
+        // 绑定用户和推广员的关系
+        if (ticketOrder.getPromoterId() != null) {
+            int count = promoterUserService.count(new LambdaQueryWrapper<PromoterUser>()
+                .eq(PromoterUser::getUserId, ticketOrder.getUserId())
+                .eq(PromoterUser::getChannelId, ticketOrder.getChannelId()));
+
+            if (count > 0) {
+                // 清除原来的关系
+                boolean remove = promoterUserService.remove(new LambdaUpdateWrapper<PromoterUser>()
+                    .eq(PromoterUser::getUserId, ticketOrder.getUserId())
+                    .eq(PromoterUser::getChannelId, ticketOrder.getChannelId()));
+                if (!remove) {
+                    throw new ServiceException("支付回调清除用户和原推广员的关系失败,orderId:" + ticketOrder.getOrderId());
+                }
+            }
+
+            PromoterUser promoterUser = new PromoterUser();
+            promoterUser.setPromoterId(ticketOrder.getPromoterId());
+            promoterUser.setUserId(ticketOrder.getUserId());
+            promoterUser.setChannelId(ticketOrder.getChannelId());
+            Assert.isTrue(promoterUserService.save(promoterUser), "支付回调,保存用户和推广员关系失败,orderId:" + ticketOrder.getOrderId());
+        }
+
+
         // 更新订单状态为已完成
         boolean updateRst = update(
             new LambdaUpdateWrapper<UserTicketOrder>().set(UserTicketOrder::getStatus,