Просмотр исходного кода

优化用户下单方法-进行中

sunxbiao 1 год назад
Родитель
Сommit
c10e574c38
1 измененных файлов с 44 добавлено и 6 удалено
  1. 44 6
      app/common/repositories/store/order/StoreOrderRepository.php

+ 44 - 6
app/common/repositories/store/order/StoreOrderRepository.php

@@ -10662,7 +10662,7 @@ class StoreOrderRepository extends BaseRepository
10662
         // 商品属性
10662
         // 商品属性
10663
         /** @var ProductAttrValueRepository $productAttrValueRepository */
10663
         /** @var ProductAttrValueRepository $productAttrValueRepository */
10664
         $productAttrValueRepository = app()->make(ProductAttrValueRepository::class);
10664
         $productAttrValueRepository = app()->make(ProductAttrValueRepository::class);
10665
-        // 目前还未搞清这个表的意义
10665
+        //
10666
         /** @var SeckillRepository $seckillRepository */
10666
         /** @var SeckillRepository $seckillRepository */
10667
         $seckillRepository = app()->make(SeckillRepository::class);
10667
         $seckillRepository = app()->make(SeckillRepository::class);
10668
         // 商户设置秒杀商品关联表
10668
         // 商户设置秒杀商品关联表
@@ -10691,8 +10691,13 @@ class StoreOrderRepository extends BaseRepository
10691
         // 获取  商品 对应的 运费模板 de 配送区域表
10691
         // 获取  商品 对应的 运费模板 de 配送区域表
10692
         /** @var ShippingTemplateRegionRepository $shippingTemplateRegionRepository */
10692
         /** @var ShippingTemplateRegionRepository $shippingTemplateRegionRepository */
10693
         $shippingTemplateRegionRepository = app()->make(ShippingTemplateRegionRepository::class);
10693
         $shippingTemplateRegionRepository = app()->make(ShippingTemplateRegionRepository::class);
10694
+
10694
         /** @var UserRepository $UserRepository */
10695
         /** @var UserRepository $UserRepository */
10695
-        $UserRepository = app()->make(UserRepository::class);
10696
+        $userRepository = app()->make(UserRepository::class);
10697
+        /** @var StoreOrderRepository $storeOrderRepository */
10698
+        $storeOrderRepository = app()->make(StoreOrderRepository::class);
10699
+        /** @var StoreGroupOrderRepository $storeGroupOrderRepository */
10700
+        $storeGroupOrderRepository = app()->make(StoreGroupOrderRepository::class);
10696
 
10701
 
10697
         // 记录 用户 在指定商家的 优惠券
10702
         // 记录 用户 在指定商家的 优惠券
10698
         $storeCouponUserEntityListByMerIdMap = [];
10703
         $storeCouponUserEntityListByMerIdMap = [];
@@ -10976,8 +10981,10 @@ class StoreOrderRepository extends BaseRepository
10976
                 ->setDouhuomallStatus(StoreOrderEnum::DOHUOMALL_STATUS['NotSubmittedToWeiweiBao']['code'])
10981
                 ->setDouhuomallStatus(StoreOrderEnum::DOHUOMALL_STATUS['NotSubmittedToWeiweiBao']['code'])
10977
                 ->setFzonePaytype($storeOrderCreateRequestEntity->getFzonePayType())
10982
                 ->setFzonePaytype($storeOrderCreateRequestEntity->getFzonePayType())
10978
                 ->setConPri($serviceMoney);
10983
                 ->setConPri($serviceMoney);
10984
+            $storeOrderEntityList[] = $storeOrderEntity;
10979
         }
10985
         }
10980
 
10986
 
10987
+        // 验证支付方式
10981
         /** @var FzonePayTypeEntity $fzonePayTypeEntity */
10988
         /** @var FzonePayTypeEntity $fzonePayTypeEntity */
10982
         $fzonePayTypeEntity = FzonePayTypeEntity::newInstance($storeOrderCreateRequestEntity->getFzonePayType());
10989
         $fzonePayTypeEntity = FzonePayTypeEntity::newInstance($storeOrderCreateRequestEntity->getFzonePayType());
10983
         if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B1-VR+Score']['code']) {
10990
         if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B1-VR+Score']['code']) {
@@ -10985,7 +10992,37 @@ class StoreOrderRepository extends BaseRepository
10985
                 throw new ValidateException('支付失败,VR或积分不足!');
10992
                 throw new ValidateException('支付失败,VR或积分不足!');
10986
             }
10993
             }
10987
         } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B2-Cash+Score']['code']) {
10994
         } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B2-Cash+Score']['code']) {
10995
+            if ($fzonePayTypeEntity->getOther() > $userEntity->getScore()) {
10996
+                throw new ValidateException('支付失败,积分不足!');
10997
+            }
10998
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B3-VR+Jingdou']['code']) {
10999
+            if ($fzonePayTypeEntity->getPrice() > $userEntity->getVr() || $fzonePayTypeEntity->getOther() > $userEntity->getJingdou()) {
11000
+                throw new ValidateException('支付失败,VR或京豆不足!');
11001
+            }
11002
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B4-Cash+Jingdou']['code']) {
11003
+            if ($fzonePayTypeEntity->getPrice() > $userEntity->getVr() || $fzonePayTypeEntity->getOther() > $userEntity->getJingdou()) {
11004
+                throw new ValidateException('支付失败,京豆不足!');
11005
+            }
11006
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['B5-VR']['code']) {
11007
+            if ($fzonePayTypeEntity->getPrice() > $userEntity->getVr()) {
11008
+                throw new ValidateException('支付失败,VR不足!');
11009
+            }
11010
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['A1-VR']['code']) {
11011
+            if ($fzonePayTypeEntity->getPrice() > $userEntity->getVr()) {
11012
+                throw new ValidateException('支付失败,VR不足!');
11013
+            }
11014
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['A2-Cash']['code']) {
10988
 
11015
 
11016
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['A3-Cash+VR']['code']) {
11017
+            if ($fzonePayTypeEntity->getOther() > $userEntity->getVr()) {
11018
+                throw new ValidateException('支付失败,VR不足!');
11019
+            }
11020
+        } else if ($fzonePayTypeEntity->getType() == StoreOrderEnum::FZONE_PAY_TYPE['C1-Fugou']['code']) {
11021
+            if ($fzonePayTypeEntity->getOther() > $userEntity->getFugou()) {
11022
+                throw new ValidateException('支付失败,复购金不足!');
11023
+            }
11024
+        } else {
11025
+            throw new ValidateException('支付失败,支付方式错误!');
10989
         }
11026
         }
10990
 
11027
 
10991
         /** @var StoreGroupOrderEntity $storeGroupOrderEntity */
11028
         /** @var StoreGroupOrderEntity $storeGroupOrderEntity */
@@ -11003,11 +11040,12 @@ class StoreOrderRepository extends BaseRepository
11003
             ->setCost($totalCost)
11040
             ->setCost($totalCost)
11004
             ->setPayType($storeOrderCreateRequestEntity->getPayType())
11041
             ->setPayType($storeOrderCreateRequestEntity->getPayType())
11005
             ->setFzonePaytype($storeOrderCreateRequestEntity->getFzonePayType());
11042
             ->setFzonePaytype($storeOrderCreateRequestEntity->getFzonePayType());
11043
+        $storeGroupOrderCreateResultModel = $storeGroupOrderRepository->create($storeGroupOrderEntity->toUnderlineArray());
11044
+        $storeGroupOrderEntity->setGroupOrderId($storeGroupOrderCreateResultModel->group_order_id);
11006
 
11045
 
11007
-        // TODO 保存后 将保存后的ID 存入到订单表中
11008
-        // foreach ($storeOrderEntityList as $storeOrderEntity) {
11009
-        //     $storeOrderEntity->setGroupOrderId();
11010
-        // }
11046
+        foreach ($storeOrderEntityList as $storeOrderEntity) {
11047
+             $storeOrderEntity->setGroupOrderId($storeGroupOrderEntity->getGroupOrderId());
11048
+         }
11011
 
11049
 
11012
 
11050
 
11013
 
11051