From ba1e07bb6fd1779eb55ce55e9136fd5cbfe5eeaa Mon Sep 17 00:00:00 2001 From: monanxiao Date: Thu, 9 Mar 2023 09:51:26 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=BB=84?= =?UTF-8?q?=E9=87=87=E8=B4=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controller/api/store/order/StoreCartDg.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controller/api/store/order/StoreCartDg.php b/app/controller/api/store/order/StoreCartDg.php index c317dc92..81f08cbd 100644 --- a/app/controller/api/store/order/StoreCartDg.php +++ b/app/controller/api/store/order/StoreCartDg.php @@ -106,7 +106,7 @@ class StoreCartDg extends BaseController $data['product_id'] = $result['product']['product_id']; break; case 99: //小组代购 - $result = app()->make(ProductGroupRepository::class)->cartCheck($data,$this->request->userInfo()); + $result = app()->make(ProductDgRepository::class)->cartCheck($data,$this->request->userInfo()); $data['source'] = $data['product_type']; $data['source_id'] = $data['group_buying_id']; $data['product_id'] = $result['product']['product_id']; From 811d4c48c3eab84ada888f6d76f7754b9b4de997 Mon Sep 17 00:00:00 2001 From: monanxiao Date: Thu, 9 Mar 2023 17:51:56 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=9A=E4=BD=A3=E9=87=91=E3=80=81=E5=88=86=E7=B1=BB=E3=80=81?= =?UTF-8?q?=E6=8F=90=E7=8E=B0=E5=8C=BA=E5=88=86=E4=BE=9B=E5=BA=94=E9=93=BE?= =?UTF-8?q?=E3=80=81=E4=BB=A5=E5=8F=8A=E6=99=AE=E9=80=9A=E8=B4=AD=E7=89=A9?= =?UTF-8?q?=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 7 ++ app/common/model/store/StoreCategory.php | 3 + app/common/model/store/product/Spu.php | 11 +++ app/common/model/system/merchant/Merchant.php | 24 ++++++- .../model/system/supplychain/SupplyChain.php | 45 ++++++++++++ .../supplychain/SupplyChainLinkMerchant.php | 65 ++++++++++++++++++ .../store/product/SpuRepository.php | 9 ++- .../api/store/order/StoreCartDg.php | 2 +- .../api/store/product/StoreCategory.php | 5 +- app/controller/api/store/product/StoreSpu.php | 5 +- basic/BaseAuth.php | Bin 0 -> 86816 bytes basic/BaseController.php | Bin 0 -> 27824 bytes basic/BaseManager.php | Bin 0 -> 46408 bytes basic/BaseMessage.php | Bin 0 -> 23104 bytes basic/BaseStorage.php | Bin 0 -> 9768 bytes basic/BaseUpload.php | Bin 0 -> 48176 bytes crmeb/traits/CategoresDao.php | 27 +++++++- crmeb/traits/CategoresRepository.php | 4 +- index.html | 39 +++++++++++ public/nginx.htaccess | 0 20 files changed, 234 insertions(+), 12 deletions(-) create mode 100644 404.html create mode 100644 app/common/model/system/supplychain/SupplyChain.php create mode 100644 app/common/model/system/supplychain/SupplyChainLinkMerchant.php create mode 100644 basic/BaseAuth.php create mode 100644 basic/BaseController.php create mode 100644 basic/BaseManager.php create mode 100644 basic/BaseMessage.php create mode 100644 basic/BaseStorage.php create mode 100644 basic/BaseUpload.php create mode 100644 index.html create mode 100644 public/nginx.htaccess diff --git a/404.html b/404.html new file mode 100644 index 00000000..6f17eaf5 --- /dev/null +++ b/404.html @@ -0,0 +1,7 @@ + +404 Not Found + +

404 Not Found

+
nginx
+ + \ No newline at end of file diff --git a/app/common/model/store/StoreCategory.php b/app/common/model/store/StoreCategory.php index 1b565c50..5e325c2a 100644 --- a/app/common/model/store/StoreCategory.php +++ b/app/common/model/store/StoreCategory.php @@ -19,6 +19,9 @@ use think\Model; class StoreCategory extends BaseModel { + // 设置当前模型的数据库连接 + protected $connection = 'mysql'; + /** * @return string * @author xaboy diff --git a/app/common/model/store/product/Spu.php b/app/common/model/store/product/Spu.php index 16c03d90..f2df5a5f 100644 --- a/app/common/model/store/product/Spu.php +++ b/app/common/model/store/product/Spu.php @@ -17,6 +17,7 @@ use app\common\model\BaseModel; use app\common\model\store\coupon\StoreCouponProduct; use app\common\model\store\StoreSeckillActive; use app\common\model\system\merchant\Merchant; +use app\common\model\system\supplychain\SupplyChainLinkMerchant; use think\db\BaseQuery; class Spu extends BaseModel @@ -163,6 +164,16 @@ class Spu extends BaseModel { return $this->hasOne(Merchant::class,'mer_id','mer_id'); } + + /** + * 供应链中间件 + * + */ + public function supplyChainLink() + { + return $this->hasOne(SupplyChainLinkMerchant::class, 'mer_id', 'eb_merchant_id'); + } + public function issetCoupon() { return $this->hasOne(StoreCouponProduct::class, 'product_id', 'product_id')->alias('A') diff --git a/app/common/model/system/merchant/Merchant.php b/app/common/model/system/merchant/Merchant.php index 688a4a45..f9314245 100644 --- a/app/common/model/system/merchant/Merchant.php +++ b/app/common/model/system/merchant/Merchant.php @@ -24,6 +24,8 @@ use app\common\model\system\config\SystemConfigValue; use app\common\model\system\financial\Financial; use app\common\model\system\serve\ServeOrder; use app\common\repositories\store\StoreActivityRepository; +use app\common\model\system\supplychain\SupplyChain; +use app\common\model\system\supplychain\SupplyChainLinkMerchant; class Merchant extends BaseModel { @@ -53,7 +55,7 @@ class Merchant extends BaseModel if (!$value) return []; return explode(',',$value); } - + public function product() { return $this->hasMany(Product::class, 'mer_id', 'mer_id'); @@ -64,6 +66,7 @@ class Merchant extends BaseModel return $this->hasMany(SystemConfigValue::class, 'mer_id', 'mer_id'); } + public function showProduct() { return $this->hasMany(Product::class, 'mer_id', 'mer_id') @@ -181,6 +184,25 @@ class Merchant extends BaseModel return $this->merchantType()->bind(['type_name']); } + /** + * 供应链中间件 + * + */ + public function SupplyChainLink() + { + return $this->hasOne(SupplyChainLinkMerchant::class, 'eb_merchant_id', 'mer_id'); + } + + /** + * + * 关联供应链 + * + */ + public function supplyChain() + { + return $this->hasOneThrough(SupplyChain::class, SupplyChainLinkMerchant::class, 'eb_merchant_id', 'id', 'mer_id', 'fa_supply_chain_id'); + } + public function getMerCommissionRateAttr() { return $this->commission_rate > 0 ? $this->commission_rate : bcmul($this->merchantCategory->commission_rate, 100, 4); diff --git a/app/common/model/system/supplychain/SupplyChain.php b/app/common/model/system/supplychain/SupplyChain.php new file mode 100644 index 00000000..70139318 --- /dev/null +++ b/app/common/model/system/supplychain/SupplyChain.php @@ -0,0 +1,45 @@ + +// +---------------------------------------------------------------------- + + +namespace app\common\model\system\supplychain; + + +use app\common\model\BaseModel; + +class SupplyChain extends BaseModel +{ + + // 设置当前模型的数据库连接 + protected $connection = 'nongke'; + + /** + * @return string + * @author xaboy + * @day 2020-03-30 + */ + public static function tablePk(): string + { + return 'id'; + } + + /** + * @return string + * @author xaboy + * @day 2020-03-30 + */ + public static function tableName(): string + { + return 'fa_supply_chain'; + } + +} diff --git a/app/common/model/system/supplychain/SupplyChainLinkMerchant.php b/app/common/model/system/supplychain/SupplyChainLinkMerchant.php new file mode 100644 index 00000000..1461e960 --- /dev/null +++ b/app/common/model/system/supplychain/SupplyChainLinkMerchant.php @@ -0,0 +1,65 @@ + +// +---------------------------------------------------------------------- + + +namespace app\common\model\system\supplychain; + + +use app\common\model\BaseModel; +use app\common\model\store\StoreCategory; + +class SupplyChainLinkMerchant extends BaseModel +{ + + // 设置当前模型的数据库连接 + protected $connection = 'nongke'; + + /** + * @return string + * @author xaboy + * @day 2020-03-30 + */ + public static function tablePk(): string + { + return 'id'; + } + + /** + * @return string + * @author xaboy + * @day 2020-03-30 + */ + public static function tableName(): string + { + return 'fa_supply_chain_link_merchant'; + } + + /** + * 所属供应链 + * 一对一 + * + */ + public function supplyChain() + { + return $this->hasOne(SupplyChain::class, 'id', 'fa_supply_chain_id'); + } + + /** + * + * 商户下的分类 + * + */ + public function category() + { + return $this->hasMany(StoreCategory::class, 'mer_id', 'eb_merchant_id'); + } +} diff --git a/app/common/repositories/store/product/SpuRepository.php b/app/common/repositories/store/product/SpuRepository.php index e4935d9d..7f7ac641 100644 --- a/app/common/repositories/store/product/SpuRepository.php +++ b/app/common/repositories/store/product/SpuRepository.php @@ -118,11 +118,12 @@ class SpuRepository extends BaseRepository * @param $page * @param $limit * @param $userInfo + * @param $source 请求来源 * @return array * @author Qinii * @day 12/18/20 */ - public function getApiSearch($where, $page, $limit, $userInfo = null) + public function getApiSearch($where, $page, $limit, $userInfo = null, $source = 2) { if (isset($where['keyword']) && !empty($where['keyword'])) { if (preg_match('/^(\/@[1-9]{1}).*\*\//', $where['keyword'])) { @@ -137,14 +138,16 @@ class SpuRepository extends BaseRepository } $where['spu_status'] = 1; $where['mer_status'] = 1; + $query = $this->dao->search($where); $query->with([ - 'merchant' => function ($query) { + 'merchant.supplyChain' => function ($query) { $query->field($this->merchantFiled)->with(['type_name']); }, - 'issetCoupon', + 'issetCoupon' ]); + $productMake = app()->make(ProductRepository::class); $count = $query->count(); diff --git a/app/controller/api/store/order/StoreCartDg.php b/app/controller/api/store/order/StoreCartDg.php index c317dc92..81f08cbd 100644 --- a/app/controller/api/store/order/StoreCartDg.php +++ b/app/controller/api/store/order/StoreCartDg.php @@ -106,7 +106,7 @@ class StoreCartDg extends BaseController $data['product_id'] = $result['product']['product_id']; break; case 99: //小组代购 - $result = app()->make(ProductGroupRepository::class)->cartCheck($data,$this->request->userInfo()); + $result = app()->make(ProductDgRepository::class)->cartCheck($data,$this->request->userInfo()); $data['source'] = $data['product_type']; $data['source_id'] = $data['group_buying_id']; $data['product_id'] = $result['product']['product_id']; diff --git a/app/controller/api/store/product/StoreCategory.php b/app/controller/api/store/product/StoreCategory.php index ff461403..931f6e7f 100644 --- a/app/controller/api/store/product/StoreCategory.php +++ b/app/controller/api/store/product/StoreCategory.php @@ -38,8 +38,11 @@ class StoreCategory extends BaseController */ public function lst() { + $source = $this->request->param('source'); // 1 小组服务 2 普通来源 + $data = $this->repository->getHot(0); - $list = $this->repository->getApiFormatList(0,1); + $list = $this->repository->getApiFormatList(0, 1, $source); + $ret =[]; foreach ($list as $key => $value) { if (isset($value['children'])) { diff --git a/app/controller/api/store/product/StoreSpu.php b/app/controller/api/store/product/StoreSpu.php index 13529971..e92d93a9 100644 --- a/app/controller/api/store/product/StoreSpu.php +++ b/app/controller/api/store/product/StoreSpu.php @@ -60,11 +60,14 @@ class StoreSpu extends BaseController 'merchant_category_id', 'is_good' ]); + + // return json($where);; $where['is_gift_bag'] = 0; $where['product_type'] = 0; $where['order'] = $where['order'] ?: 'star'; + $source = $this->request->param('source'); // 1 小组服务 2 普通来源 if ($where['is_trader'] != 1) unset($where['is_trader']); - $data = $this->repository->getApiSearch($where, $page, $limit, $this->userInfo); + $data = $this->repository->getApiSearch($where, $page, $limit, $this->userInfo, $source); return app('json')->success($data); } diff --git a/basic/BaseAuth.php b/basic/BaseAuth.php new file mode 100644 index 0000000000000000000000000000000000000000..f67c68d6509027e98f62220af92249dbc3ae6b94 GIT binary patch literal 86816 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 literal 0 HcmV?d00001 diff --git a/basic/BaseController.php b/basic/BaseController.php new file mode 100644 index 0000000000000000000000000000000000000000..3c71dd1aecdaa8b46db4d5edddc39ac894dcfb79 GIT binary patch literal 27824 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 QzXCh|?*I;U@Y_}Y4-NBNH2?qr literal 0 HcmV?d00001 diff --git a/basic/BaseManager.php b/basic/BaseManager.php new file mode 100644 index 0000000000000000000000000000000000000000..cbd1b23ffa37cfd21b1192ed3b3e7d6ef64b83d5 GIT binary patch literal 46408 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 B%8CF0 literal 0 HcmV?d00001 diff --git a/basic/BaseMessage.php b/basic/BaseMessage.php new file mode 100644 index 0000000000000000000000000000000000000000..152f72653cb90becaa7b5427e3b4e15ed58da416 GIT binary patch literal 23104 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 H>i)j~a$5P2 literal 0 HcmV?d00001 diff --git a/basic/BaseStorage.php b/basic/BaseStorage.php new file mode 100644 index 0000000000000000000000000000000000000000..1beb82b2e7ffd66e367acf986e84b530c125d51b GIT binary patch literal 9768 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 Ti7t>&q6~xnO-@8dy86EXPi7{w literal 0 HcmV?d00001 diff --git a/basic/BaseUpload.php b/basic/BaseUpload.php new file mode 100644 index 0000000000000000000000000000000000000000..9bf89f71588e945b5ae156c24d05d164ac0508dc GIT binary patch literal 48176 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 C+jr3b literal 0 HcmV?d00001 diff --git a/crmeb/traits/CategoresDao.php b/crmeb/traits/CategoresDao.php index b456c8dd..b9e972df 100644 --- a/crmeb/traits/CategoresDao.php +++ b/crmeb/traits/CategoresDao.php @@ -12,6 +12,9 @@ namespace crmeb\traits; +use app\common\model\system\supplychain\SupplyChainLinkMerchant; + + trait CategoresDao { public $path = 'path'; @@ -79,11 +82,29 @@ trait CategoresDao * @return mixed * @author Qinii */ - public function getAll($mer_id = 0,$status = null) - { - return $this->getModel()::getDB()->where('mer_id', $mer_id)->when(($status !== null),function($query)use($status){ + public function getAll($mer_id = 0,$status = null, $source = 2) + { + // 验证来源 1 小组服务 2 普通来源 + if($source == 1) + { + // 获取供应链商户ID + $MerList = SupplyChainLinkMerchant::with(['supplyChain', 'category']) + ->hasWhere('supplyChain', ['status' => 1]) // 启用的供应链团队 + ->group('eb_merchant_id') // 以分类分组 + ->column('eb_merchant_id'); + + // 获取供应链商户共同拥有的分类 + return $this->getModel()::getDB()->whereIn('mer_id', $MerList)->when(($status !== null),function($query)use($status){ $query->where($this->getStatus(),$status); })->order('sort DESC,'.$this->getPk().' DESC')->select(); + + }else{ + \think\facade\Log::record('普通访问'); + return $this->getModel()::getDB()->where('mer_id', $mer_id)->when(($status !== null),function($query)use($status){ + $query->where($this->getStatus(),$status); + })->order('sort DESC,'.$this->getPk().' DESC')->select(); + } + } /** diff --git a/crmeb/traits/CategoresRepository.php b/crmeb/traits/CategoresRepository.php index 8631f0b4..60c85d1e 100644 --- a/crmeb/traits/CategoresRepository.php +++ b/crmeb/traits/CategoresRepository.php @@ -33,8 +33,8 @@ trait CategoresRepository * @param null $status * @return array */ - public function getApiFormatList($merID,$status = null) - { + public function getApiFormatList($merID,$status = null, $source = 2) + { return formatCategory($this->dao->getAll($merID,$status)->hidden(['path','level','mer_id','create_time'])->toArray(), $this->dao->getPk()); } diff --git a/index.html b/index.html new file mode 100644 index 00000000..86aeca22 --- /dev/null +++ b/index.html @@ -0,0 +1,39 @@ + + + + + 恭喜,站点创建成功! + + + +

+

恭喜, 站点创建成功!

+

这是默认index.html,本页面由系统自动生成

+
    +
  • 本页面在FTP根目录下的index.html
  • +
  • 您可以修改、删除或覆盖本页面
  • +
  • FTP相关信息,请到“面板系统后台 > FTP” 查看
  • +
+
+ + \ No newline at end of file diff --git a/public/nginx.htaccess b/public/nginx.htaccess new file mode 100644 index 00000000..e69de29b From 2b936eab2963bc2da811735c1b9077ae490691c2 Mon Sep 17 00:00:00 2001 From: monanxiao Date: Fri, 10 Mar 2023 11:33:32 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=B0=8F=E7=BB=84?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E4=B8=8B=E5=8D=95=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?source=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/order/StoreOrderCreateRepository.php | 3 ++- .../store/product/SpuRepository.php | 17 ++++++++++++++++- app/controller/api/store/order/StoreCart.php | 4 ++-- app/controller/api/store/order/StoreOrder.php | 5 +++-- app/controller/api/store/product/StoreSpu.php | 1 - 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 1ea7ac87..9b59018f 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -895,8 +895,9 @@ class StoreOrderCreateRepository extends StoreOrderRepository ) + ['allow_address' => !$allow_no_address, 'order_delivery_status' => $orderDeliveryStatus]; } - public function v2CreateOrder(int $pay_type, $user, array $cartId, array $extend, array $mark, array $receipt_data, array $takes = null, array $useCoupon = null, bool $useIntegral = false, int $addressId = null, array $post) + public function v2CreateOrder(int $pay_type, $user, array $cartId, array $extend, array $mark, array $receipt_data, array $takes = null, array $useCoupon = null, bool $useIntegral = false, int $addressId = null, array $post, int $source) { + $uid = $user->uid; $orderInfo = $this->v2CartIdByOrderInfo($user, $cartId, $takes, $useCoupon, $useIntegral, $addressId, true); $order_model = $orderInfo['order_model']; diff --git a/app/common/repositories/store/product/SpuRepository.php b/app/common/repositories/store/product/SpuRepository.php index 7f7ac641..1b9877e5 100644 --- a/app/common/repositories/store/product/SpuRepository.php +++ b/app/common/repositories/store/product/SpuRepository.php @@ -25,6 +25,7 @@ use app\common\dao\store\product\SpuDao; use app\common\repositories\store\StoreCategoryRepository; use app\common\repositories\store\StoreSeckillActiveRepository; use app\common\repositories\user\UserVisitRepository; +use app\common\model\system\supplychain\SupplyChainLinkMerchant; use think\facade\Queue; class SpuRepository extends BaseRepository @@ -142,12 +143,25 @@ class SpuRepository extends BaseRepository $query = $this->dao->search($where); $query->with([ - 'merchant.supplyChain' => function ($query) { + 'merchant' => function ($query) { $query->field($this->merchantFiled)->with(['type_name']); }, 'issetCoupon' ]); + // 假如是小组服务采购商品,则增加供应链商品的筛选,只获取已入驻商户的商品 + if($source == 1) + { + // 获取供应链商户ID + $MerListId = SupplyChainLinkMerchant::with(['supplyChain', 'category']) + ->hasWhere('supplyChain', ['status' => 1]) // 启用的供应链团队 + ->group('eb_merchant_id') // 以分类分组 + ->column('eb_merchant_id'); + + // 只获取当前供应链内商户的商品 + $query->whereIn('S.mer_id', $MerListId); + } + $productMake = app()->make(ProductRepository::class); $count = $query->count(); @@ -157,6 +171,7 @@ class SpuRepository extends BaseRepository $append[] = 'max_extension'; $list->append($append); $list = $this->getBorderList($list); + return compact('count', 'list'); } diff --git a/app/controller/api/store/order/StoreCart.php b/app/controller/api/store/order/StoreCart.php index a956b9ca..6a2323cf 100644 --- a/app/controller/api/store/order/StoreCart.php +++ b/app/controller/api/store/order/StoreCart.php @@ -68,7 +68,7 @@ class StoreCart extends BaseController { $data = $this->checkParams($validate); - if(!in_array($data['product_type'],[0,1,2,3,4])) return app('json')->fail('商品类型错误'); + if(!in_array($data['product_type'],[0,1,2,3,4,99])) return app('json')->fail('商品类型错误'); if ($data['cart_num'] <= 0) return app('json')->fail('购买数量有误'); $user = $this->request->userInfo(); event('user.cart.before',compact('user','data')); @@ -103,7 +103,7 @@ class StoreCart extends BaseController $data['product_id'] = $result['product']['product_id']; break; case 99: //小组代购 - $result = app()->make(ProductGroupRepository::class)->cartCheck($data,$this->request->userInfo()); + $result = app()->make(ProductRepository::class)->cartCheck($data,$this->request->userInfo()); $data['source'] = $data['product_type']; $data['source_id'] = $data['group_buying_id']; $data['product_id'] = $result['product']['product_id']; diff --git a/app/controller/api/store/order/StoreOrder.php b/app/controller/api/store/order/StoreOrder.php index a0bda7be..57a687aa 100644 --- a/app/controller/api/store/order/StoreOrder.php +++ b/app/controller/api/store/order/StoreOrder.php @@ -88,6 +88,7 @@ class StoreOrder extends BaseController $payType = $this->request->param('pay_type'); $post = (array)$this->request->param('post'); $is_dg = $this->request->param('is_dg',0); + $source = (int)$this->request->param('source'); // 1 小组服务 2 普通来源 $isPc = $payType === 'pc'; if ($isPc) { $payType = 'balance'; @@ -115,8 +116,8 @@ class StoreOrder extends BaseController // if (!$addressId) // return app('json')->fail('请选择地址'); - $groupOrder = app()->make(LockService::class)->exec('order.create', function () use ($orderCreateRepository, $receipt_data, $mark, $extend, $cartId, $payType, $takes, $couponIds, $useIntegral, $addressId, $post) { - return $orderCreateRepository->v2CreateOrder(array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post); + $groupOrder = app()->make(LockService::class)->exec('order.create', function () use ($orderCreateRepository, $receipt_data, $mark, $extend, $cartId, $payType, $takes, $couponIds, $useIntegral, $addressId, $post,$source) { + return $orderCreateRepository->v2CreateOrder(array_search($payType, StoreOrderRepository::PAY_TYPE), $this->request->userInfo(), $cartId, $extend, $mark, $receipt_data, $takes, $couponIds, $useIntegral, $addressId, $post,$source); }); if ($groupOrder['pay_price'] == 0) { diff --git a/app/controller/api/store/product/StoreSpu.php b/app/controller/api/store/product/StoreSpu.php index e92d93a9..22bc1a6c 100644 --- a/app/controller/api/store/product/StoreSpu.php +++ b/app/controller/api/store/product/StoreSpu.php @@ -61,7 +61,6 @@ class StoreSpu extends BaseController 'is_good' ]); - // return json($where);; $where['is_gift_bag'] = 0; $where['product_type'] = 0; $where['order'] = $where['order'] ?: 'star';