diff --git a/app/Controller/v3/OrderOnlineController.php b/app/Controller/v3/OrderOnlineController.php index 5a5b89e..b068658 100644 --- a/app/Controller/v3/OrderOnlineController.php +++ b/app/Controller/v3/OrderOnlineController.php @@ -110,9 +110,9 @@ class OrderOnlineController extends BaseController $deliveryDistance = config('distance.delivery_distance'); if(isset($distance) && $distance < $deliveryDistance){ if($distance >= 1000){ - $distance_text = '距 ' . bcdiv($distance,1000,2) . 'km'; + $distance_text = '距你收货地址 ' . bcdiv($distance,1000,2) . 'km'; }else{ - $distance_text = '距 ' . $distance . 'm'; + $distance_text = '距你收货地址 ' . $distance . 'm'; } $distributionPrice = $this->distributionPriceService->do($distance); $res['location'] = [ @@ -120,7 +120,8 @@ class OrderOnlineController extends BaseController 'distribution_price' => $distributionPrice, 'distance' => $distance, 'within' => true, - 'distribution_text' => '¥ '.$distributionPrice .'(' .$distance_text .')' + // 'distribution_text' => '¥ '.$distributionPrice .'(' .$distance_text .')' + 'distribution_text' => $distance_text ]; }else{ $res['location'] = [ @@ -132,13 +133,16 @@ class OrderOnlineController extends BaseController ]; } //返回预约送达时间 数组 - $ret = $this->appointmentTimeService->get($shopcartIds); + $ret = $retSelfTake = $this->appointmentTimeService->get($shopcartIds); array_unshift($ret,['title'=>'尽快送达','value'=>'尽快送达']); $res['appointment_time'] = $ret; + + array_unshift($retSelfTake,['title'=>'尽快取货','value'=>'尽快取货']); + $res['appointment_time_self_take'] = $retSelfTake; $res['store_list'] = $this->shopCartService->getGoodsByShopcartId($shopcartIds); //获取用户优惠券 - $coupons = $this->couponRecService->allForOnlineOrderAvailable($userId, $marketId, explode(',', $shopcartIds)); + $coupons = $this->couponRecService->allForOnlineOrderAvailable($userId, $marketId); $res['coupon'] = [ 'available' => [], 'not_available' => [], @@ -170,6 +174,10 @@ class OrderOnlineController extends BaseController $total = bcadd($total,$res['value_added_service']['price'],2); $total = bcadd($total,$res['location']['distribution_price'],2); $res['total'] = $total; + + // 新增返回市场信息 + $res['market'] = $market; + return $this->success($res); } diff --git a/app/Service/v3/Implementations/OrderOnlineService.php b/app/Service/v3/Implementations/OrderOnlineService.php index dd7cdec..605e4ee 100644 --- a/app/Service/v3/Implementations/OrderOnlineService.php +++ b/app/Service/v3/Implementations/OrderOnlineService.php @@ -14,6 +14,7 @@ use App\Exception\ErrorCodeException; use App\Model\v3\Coupon; use App\Model\v3\Goods; use App\Model\v3\GoodsActivity; +use App\Model\v3\Market; use App\Model\v3\Order; use App\Model\v3\OrderGoods; use App\Model\v3\OrderMain; @@ -140,18 +141,21 @@ class OrderOnlineService implements OrderOnlineServiceInterface $shippingType = Shipping::TYPE_SELF_TAKE; // 如果非自提,则通过用户地址计算相关数据和费用 - // if ($selfTake != 1) { + 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; - // } - - if ($selfTake != 1) { $shippingType = Shipping::TYPE_LANZU; + } else { + $market = Market::query()->find($marketId); + $userAddr->tel = $market->tel; + $userAddr->address = $market->address ; + $userAddr->user_name = $market->name; + $userAddr->lat = $market->lat; + $userAddr->lng = $market->lng; } // 优惠券数据,当前订单可用个优惠券 @@ -175,7 +179,6 @@ class OrderOnlineService implements OrderOnlineServiceInterface $dataOrderGoods = []; # 订单商品 $storeTypeIds = []; # 订单中的商户类型,用于校验红包 $activityGoodsIds = []; # 活动商品IDs - $shopcartIds = []; foreach ($storeList as $key => &$storeItem) { @@ -196,7 +199,6 @@ class OrderOnlineService implements OrderOnlineServiceInterface // 用户购物车数据 $cartIds = explode(',', $storeItem->cart_ids); - $shopcartIds = array_merge($shopcartIds, $cartIds); $carts = ShoppingCart::query()->whereIn('id', $cartIds)->where(['market_id' => $marketId, 'user_id' => $userId])->get(); foreach ($carts as $k => &$cart) { // 查个商品,做商品有效的判断检查 @@ -391,7 +393,7 @@ class OrderOnlineService implements OrderOnlineServiceInterface } // 清除购物车 - $this->shopCartUpdateService->doClear($userId, $marketId, $shopcartIds); + $this->shopCartUpdateService->doClear($userId, $marketId); // 记录badge $this->badgeService->doByOrder($userId, array_values(array_column($dataChildren, 'store_id')), $orderMain->global_order_id, OrderState::UNPAID); diff --git a/app/Service/v3/Implementations/UserAddressService.php b/app/Service/v3/Implementations/UserAddressService.php index 3a158df..bea6852 100644 --- a/app/Service/v3/Implementations/UserAddressService.php +++ b/app/Service/v3/Implementations/UserAddressService.php @@ -99,14 +99,15 @@ class UserAddressService implements UserAddressServiceInterface $distance = $this->locationService->getDistanceByTencent($market->lng,$market->lat,$address['address']->lng,$address['address']->lat); $distributionPrice = $this->distributionPriceService->do($distance); if($distance >= 1000){ - $distance_text = '距 ' . bcdiv($distance,1000,2) . 'km'; + $distance_text = '距你收货地址 ' . bcdiv($distance,1000,2) . 'km'; }else{ - $distance_text = '距 ' . $distance . 'm'; + $distance_text = '距你收货地址 ' . $distance . 'm'; } $res['address'] = $address; $res['delivery_distance'] = $distance; $res['distribution_price'] = $distributionPrice; - $res['distribution_text'] = '¥ '.$distributionPrice .'(' .$distance_text .')'; + // $res['distribution_text'] = '¥ '.$distributionPrice .'(' .$distance_text .')'; + $res['distribution_text'] = $distance_text; return $res; }