diff --git a/app/common/dao/store/order/StoreCartDao.php b/app/common/dao/store/order/StoreCartDao.php index 839a280f..e6c79202 100644 --- a/app/common/dao/store/order/StoreCartDao.php +++ b/app/common/dao/store/order/StoreCartDao.php @@ -29,6 +29,7 @@ class StoreCartDao extends BaseDao const SOURCE_STORE_CLOUD = 101; //店铺内云商品 const SOURCE_CLOUD = 102; //云仓内店铺商品 + const CITY_CLOUD = 103; //市级云仓商品 const SOURCE_COMMUNITY_RESALE = 201; //转售商品 const SOURCE_COMMUNITY_ENTRUST = 202; //委托商品 diff --git a/app/common/repositories/store/order/StoreOrderCreateRepository.php b/app/common/repositories/store/order/StoreOrderCreateRepository.php index 946bfd57..97725600 100644 --- a/app/common/repositories/store/order/StoreOrderCreateRepository.php +++ b/app/common/repositories/store/order/StoreOrderCreateRepository.php @@ -63,6 +63,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository $svip_integral_rate = $svip_status ? app()->make(MemberinterestsRepository::class)->getSvipInterestVal(MemberinterestsRepository::HAS_TYPE_PAY) : 0; //订单活动类型 $order_type = 0; + $source = 2; //虚拟订单 $order_model = 0; //虚拟订单自定义数据 @@ -84,7 +85,10 @@ class StoreOrderCreateRepository extends StoreOrderRepository throw new ValidateException('[超出限购总数:'. $cart['product']['once_max_count'].']'.mb_substr($cart['product']['store_name'],0,10).'...'); } } - if ($cart['product_type'] > 0) $order_type = $cart['product_type']; + if ($cart['product_type'] > 0){ + $order_type = $cart['product_type']; + $source = $cart['source']; + } if ($cart['product_type']<=97 &&$cart['product_type'] > 0 && (($cart['product_type'] != 10 && count($merchantCart['list']) != 1) || count($merchantCartList) != 1)) { throw new ValidateException('活动商品必须单独购买'); } @@ -900,7 +904,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository $order_total_price = bcadd($order_total_price, $merchantCart['order']['svip_discount'], 2); } unset($merchantCart); - $status = ($address || $order_model || $allow_no_address) ? ($noDeliver ? 'noDeliver' : 'finish') : 'noAddress'; $order = $merchantCartList; $total_price = $order_total_price; @@ -908,6 +911,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository $total_coupon = bcadd($order_svip_discount, bcadd(bcadd($total_platform_coupon_price, $order_coupon_price, 2), $order_total_integral_price, 2), 2); return compact( 'order_type', + 'source', 'order_model', 'order_extend', 'order_total_postage', @@ -1105,6 +1109,7 @@ class StoreOrderCreateRepository extends StoreOrderRepository $_order = [ 'cartInfo' => $merchantCart, 'activity_type' => $orderInfo['order_type'], + 'source' => $orderInfo['source']??2, 'commission_rate' => (float)$rate, 'order_type' => $merchantCart['order']['isTake'] ? 1 : 0, 'is_virtual' => $order_model ? 1 : 0, @@ -1309,7 +1314,6 @@ class StoreOrderCreateRepository extends StoreOrderRepository ]; foreach ($cartInfo['list'] as $cart) { - $productPrice = $cart['true_price']; $extension_one = $cart['extension_one']; $extension_two = $cart['extension_two']; diff --git a/app/common/repositories/store/order/StoreOrderRepository.php b/app/common/repositories/store/order/StoreOrderRepository.php index 54fb4984..e5707842 100644 --- a/app/common/repositories/store/order/StoreOrderRepository.php +++ b/app/common/repositories/store/order/StoreOrderRepository.php @@ -11,6 +11,7 @@ // +---------------------------------------------------------------------- namespace app\common\repositories\store\order; +use app\common\dao\store\order\StoreCartDao; use app\common\dao\store\order\StoreOrderDao; use app\common\model\store\order\StoreGroupOrder; use app\common\model\store\order\StoreOrder; diff --git a/app/controller/api/store/order/StoreCart.php b/app/controller/api/store/order/StoreCart.php index 4613787a..e2d88180 100644 --- a/app/controller/api/store/order/StoreCart.php +++ b/app/controller/api/store/order/StoreCart.php @@ -93,8 +93,12 @@ class StoreCart extends BaseController case 99: //委托商品 $result = app()->make(ProductRepository::class)->cartCheck($data,$this->request->userInfo()); [$source, $sourceId, $pid] = explode(':', $this->request->param('source', '0'), 3) + ['', '', '']; - $data['source'] = (in_array($source, [0, 1]) && $pid == $data['product_id']) ? $source : 0; - if ($data['source'] > 0) $data['source_id'] = intval($sourceId); + if($source==StoreCartDao::CITY_CLOUD){ + $data['source'] = $source; + }else{ + $data['source'] = (in_array($source, [0, 1]) && $pid == $data['product_id']) ? $source : 0; + if ($data['source'] > 0) $data['source_id'] = intval($sourceId); + } break; case 1: //秒杀商品 $result = app()->make(ProductRepository::class)->cartSeckillCheck($data,$this->request->userInfo()); diff --git a/app/controller/api/store/order/StoreOrder.php b/app/controller/api/store/order/StoreOrder.php index d5114008..10de3c70 100644 --- a/app/controller/api/store/order/StoreOrder.php +++ b/app/controller/api/store/order/StoreOrder.php @@ -95,7 +95,6 @@ class StoreOrder extends BaseController if (!is_array($receipt)) throw new ValidateException('发票信息有误'); $validate->check($receipt); } - $uid = $this->request->uid(); // halt(count($cartId), count($cartRepository->validIntersection($cartId, $uid))); if (!($count = count($cartId)) || $count != count($cartRepository->validIntersection($cartId, $uid)))