Pārlūkot izejas kodu

创建订单-修复下单问题

sunxbiao 5 mēneši atpakaļ
vecāks
revīzija
3f86ee11c0

+ 18 - 12
app/common/repositories/store/order/StoreGroupOrderRepository.php

@@ -418,18 +418,6 @@ class StoreGroupOrderRepository extends BaseRepository
418 418
             throw new ValidateException('地址需要选择4级地址!请修改地址!');
419 419
         }
420 420
 
421
-        /** 验证分享信息 分享 */
422
-        /** @var ShareEntity $shareEntity */
423
-        $shareEntity = ShareEntity::newInstance();
424
-        if (!empty($storeOrderCreateRequestEntity->getShareId())) {
425
-            /** @var ShareRepository $shareRepository */
426
-            $shareRepository = app()->make(ShareRepository::class);
427
-            $shareEntity = $shareRepository->getShareEntityByShareId($storeOrderCreateRequestEntity->getShareId());
428
-            if (empty($shareEntity->getId())) {
429
-                throw new ValidateException('无效的分享信息');
430
-            }
431
-        }
432
-
433 421
         /** 验证 购物车信息 */
434 422
         // 目前购物车只能添加一件商品,据了解之前 写的购物车,添加多件商品组合支付时计算的 金额和 VR 积分之类的会有问题
435 423
         /** @var StoreCartRepository $storeCartRepository */
@@ -563,6 +551,24 @@ class StoreGroupOrderRepository extends BaseRepository
563 551
             }
564 552
         }
565 553
 
554
+        /** 验证分享信息 分享 */
555
+        /** @var ShareEntity $shareEntity */
556
+        $shareEntity = ShareEntity::newInstance();
557
+        if (!empty($storeOrderCreateRequestEntity->getShareId())) {
558
+            /** @var ShareRepository $shareRepository */
559
+            $shareRepository = app()->make(ShareRepository::class);
560
+            $shareEntity = $shareRepository->getShareEntityByShareId($storeOrderCreateRequestEntity->getShareId());
561
+            if (empty($shareEntity->getId())) {
562
+                throw new ValidateException('无效的分享信息');
563
+            } else if ($shareEntity->getUid() == $userEntity->getUid()) {
564
+                // 如果分享人是自己,则分享数据无效
565
+                $shareEntity = ShareEntity::newInstance();
566
+            } else if (!in_array($shareEntity->getProductId(), $productIdList)) {
567
+                // 如果分享的商品 不是下单的商品则分享无效
568
+                $shareEntity = ShareEntity::newInstance();
569
+            }
570
+        }
571
+
566 572
         return [
567 573
             'userEntity' => $userEntity,
568 574
             'cartEntityList' => $cartEntityList,