From 89d6277db38bbe94a4bc2286a979dd813b1ae940 Mon Sep 17 00:00:00 2001 From: weigang Date: Tue, 22 Sep 2020 15:14:51 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E6=8F=90=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Constants/v3/ErrorCode.php | 4 +- app/Controller/v3/OrderOnlineController.php | 2 +- app/Request/v3/OrderOnlineRequest.php | 2 +- .../Implementations/GoodsActivityService.php | 1 - .../v3/Implementations/OrderOnlineService.php | 38 ++++++++++--------- 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/app/Constants/v3/ErrorCode.php b/app/Constants/v3/ErrorCode.php index 45690fa..3343d46 100644 --- a/app/Constants/v3/ErrorCode.php +++ b/app/Constants/v3/ErrorCode.php @@ -292,7 +292,7 @@ class ErrorCode extends AbstractConstants /** * 订单中部分活动商品不可使用优惠券 - * @Message("订单中有不能使用优惠券的商品") + * @Message("订单中有不能使用的优惠券[商品不可用或优惠券失效]") */ const GOODS_ACTIVITY_CANNOT_USE_COUPON = 1156; @@ -300,7 +300,7 @@ class ErrorCode extends AbstractConstants * 活动商品不存在 * @Message("活动商品可能已下架") */ - const GOODS_ACTIVITY_NOT_EXISTS = 1156; + const GOODS_ACTIVITY_NOT_EXISTS = 1157; /************************************/ /* 优惠券相关 1201-1250 */ diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index eb475fe..bbf4726 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -197,7 +197,7 @@ class OrderOnlineController extends BaseController $data = $this->orderOnlineService->do( $params['market_id'], $params['user_id'], - $params['user_address_id'], + ($params['user_address_id'] ?? 0), json_decode($params['store_list']), $params['total_money'], $params['delivery_time_note'], diff --git a/app/Request/v3/OrderOnlineRequest.php b/app/Request/v3/OrderOnlineRequest.php index f8d0a76..d6d5683 100644 --- a/app/Request/v3/OrderOnlineRequest.php +++ b/app/Request/v3/OrderOnlineRequest.php @@ -24,7 +24,7 @@ class OrderOnlineRequest extends BaseFormRequest return [ 'market_id' => 'required|nonempty|integer', 'user_id' => 'required|nonempty|integer', - 'user_address_id' => 'required|nonempty|integer', + 'user_address_id' => 'required_unless:self_take,1|nonempty|integer', 'store_list' => 'required|nonempty|json_keys:store_id,note,cart_ids', 'delivery_time_note' => 'required|nonempty', 'total_money' => 'required|nonempty', diff --git a/app/Service/v3/Implementations/GoodsActivityService.php b/app/Service/v3/Implementations/GoodsActivityService.php index 7aba196..2eeb762 100644 --- a/app/Service/v3/Implementations/GoodsActivityService.php +++ b/app/Service/v3/Implementations/GoodsActivityService.php @@ -151,7 +151,6 @@ class GoodsActivityService implements GoodsActivityServiceInterface $redis = ApplicationContext::getContainer()->get(Redis::class); $activityTypeLimitNumsKey = 'activity_type_limit_nums'; $limitNums = $redis->hGetAll($activityTypeLimitNumsKey); - var_dump($limitNums); if (empty($limitNums)) { diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index 13fa0c6..f5415a7 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -133,18 +133,21 @@ class OrderOnlineService implements OrderOnlineServiceInterface $currentTime = time(); bcscale(6); - // 用户收货地址 - // 获取配送费用 - $userAddrAndDPrice = $this->userAddressService->getAddressAndDistributionPrice($userAddrId, $marketId); - $userAddr = $userAddrAndDPrice['address']['address']; - $deliveryAmount = $userAddrAndDPrice['distribution_price']; - $deliveryDistance = $userAddrAndDPrice['delivery_distance']; - - // 配送方式,默认是服务站配送 - $shippingType = Shipping::TYPE_LANZU; - - if ($selfTake == 1) { - $shippingType = Shipping::TYPE_SELF_TAKE; + + $userAddr = (object)[]; + $deliveryAmount = 0; + $deliveryDistance = 0; + $shippingType = Shipping::TYPE_SELF_TAKE; + + // 如果非自提,则通过用户地址计算相关数据和费用 + if ($selfTake != 1) { + // 用户收货地址 + // 获取配送费用 + $userAddrAndDPrice = $this->userAddressService->getAddressAndDistributionPrice($userAddrId, $marketId); + $userAddr = $userAddrAndDPrice['address']['address']; + $deliveryAmount = $userAddrAndDPrice['distribution_price']; + $deliveryDistance = $userAddrAndDPrice['delivery_distance']; + $shippingType = Shipping::TYPE_LANZU; } // 优惠券数据,当前订单可用个优惠券 @@ -190,7 +193,6 @@ class OrderOnlineService implements OrderOnlineServiceInterface $cartIds = explode(',', $storeItem->cart_ids); $carts = ShoppingCart::query()->whereIn('id', $cartIds)->where(['market_id' => $marketId, 'user_id' => $userId])->get(); foreach ($carts as $k => &$cart) { - // 查个商品,做商品有效的判断检查 $goods = []; if ($cart->activity_type == 1) { @@ -322,11 +324,11 @@ class OrderOnlineService implements OrderOnlineServiceInterface 'delivery_money' => $deliveryAmount, 'delivery_distance' => $deliveryDistance, 'state' => OrderState::UNPAID, - 'tel' => $userAddr->tel, - 'address' => $userAddr->address.$userAddr->doorplate, - 'lat' => $userAddr->lat, - 'lng' => $userAddr->lng, - 'name' => $userAddr->user_name, + 'tel' => $userAddr->tel ?? '', + 'address' => ($userAddr->address ?? '').($userAddr->doorplate ?? ''), + 'lat' => $userAddr->lat ?? '', + 'lng' => $userAddr->lng ?? '', + 'name' => $userAddr->user_name ?? '', 'plat' => $plat, 'delivery_time_note' => $deliveryTimeNote ];