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';