From a31880605881686064c89ea30f0e2eb1080eeb02 Mon Sep 17 00:00:00 2001
From: wuhui_zzw <1760308791@qq.com>
Date: Tue, 22 Aug 2023 19:08:04 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=EF=BC=9A=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E5=88=97=E8=A1=A8=E6=98=BE=E7=A4=BA=E9=A2=84=E8=AE=A1=E5=88=B0?=
=?UTF-8?q?=E8=BE=BE=E6=97=B6=E9=97=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
beike/Models/Order.php | 5 +++++
beike/Repositories/OrderRepo.php | 13 +++++++++++--
beike/Shop/Services/CheckoutService.php | 2 +-
resources/lang/en/order.php | 1 +
resources/lang/zh_cn/order.php | 2 +-
themes/default/account/order.blade.php | 12 +++++++++++-
6 files changed, 30 insertions(+), 5 deletions(-)
diff --git a/beike/Models/Order.php b/beike/Models/Order.php
index 2d09c4b6..1f51457c 100644
--- a/beike/Models/Order.php
+++ b/beike/Models/Order.php
@@ -16,6 +16,7 @@ use Beike\Notifications\UpdateOrderNotification;
use Beike\Services\StateMachineService;
use Illuminate\Database\Eloquent\Relations\BelongsTo;
use Illuminate\Database\Eloquent\Relations\HasMany;
+use Illuminate\Database\Eloquent\Relations\HasOne;
use Illuminate\Notifications\Notifiable;
class Order extends Base
@@ -64,6 +65,10 @@ class Order extends Base
return $this->hasMany(OrderPayment::class);
}
+ public function logistics(): HasOne{
+ return $this->hasOne(Logistics::class,'id','shipping_method_code');
+ }
+
public function subTotal()
{
$totals = $this->orderTotals;
diff --git a/beike/Repositories/OrderRepo.php b/beike/Repositories/OrderRepo.php
index 96a17d64..06e97e4a 100644
--- a/beike/Repositories/OrderRepo.php
+++ b/beike/Repositories/OrderRepo.php
@@ -13,6 +13,7 @@ namespace Beike\Repositories;
use Beike\Models\Address;
use Beike\Models\Customer;
+use Beike\Models\Logistics;
use Beike\Models\Order;
use Beike\Services\StateMachineService;
use Carbon\Carbon;
@@ -121,7 +122,9 @@ class OrderRepo
$builder->where('status', $status);
}
- $builder->with(['orderShipments']);
+ $builder->with(['orderShipments','logistics'=>function($query){
+ $query->select(['id','day_min','day_max']);
+ }]);
return $builder;
@@ -220,6 +223,12 @@ class OrderRepo
$currency = CurrencyRepo::findByCode($currencyCode);
$currencyValue = $currency->value ?? 1;
+ $shipping_method_name = trans($shippingMethodCode);
+ if(is_int($shippingMethodCode)) {
+ $logisticsName = Logistics::query()->where('id',$shippingMethodCode)->value('name');
+ $shipping_method_name = $logisticsName ?? $shipping_method_name;
+ }
+
$order = new Order([
'number' => self::generateOrderNumber(),
'customer_id' => $customer->id ?? 0,
@@ -238,7 +247,7 @@ class OrderRepo
'user_agent' => request()->userAgent(),
'status' => StateMachineService::CREATED,
'shipping_method_code' => $shippingMethodCode,
- 'shipping_method_name' => trans($shippingMethodCode),
+ 'shipping_method_name' => $shipping_method_name,
'shipping_customer_name' => $shippingAddress->name,
'shipping_calling_code' => $shippingAddress->calling_code ?? 0,
'shipping_telephone' => $shippingAddress->phone ?? '',
diff --git a/beike/Shop/Services/CheckoutService.php b/beike/Shop/Services/CheckoutService.php
index 9abbe15f..0f0f8a70 100644
--- a/beike/Shop/Services/CheckoutService.php
+++ b/beike/Shop/Services/CheckoutService.php
@@ -174,7 +174,7 @@ class CheckoutService
}
$shippingMethodCode = $current['shipping_method_code'];
- if (! PluginRepo::shippingEnabled($shippingMethodCode)) {
+ if (! PluginRepo::shippingEnabled($shippingMethodCode) && !is_int($shippingMethodCode)) {
throw new \Exception(trans('shop/carts.invalid_shipping_method'));
}
diff --git a/resources/lang/en/order.php b/resources/lang/en/order.php
index 32799ca5..54c41eb3 100644
--- a/resources/lang/en/order.php
+++ b/resources/lang/en/order.php
@@ -23,6 +23,7 @@ return [
'total' => 'Total',
'express_number' => 'Express Number',
'express_company' => 'Express Company',
+ 'expected_arrival' => 'Expected to arrive between :start_time and :end_time',
'order_shipments' => 'shipment information',
'address_info' => 'Address Information',
diff --git a/resources/lang/zh_cn/order.php b/resources/lang/zh_cn/order.php
index 6db1d3ec..1e044102 100644
--- a/resources/lang/zh_cn/order.php
+++ b/resources/lang/zh_cn/order.php
@@ -23,7 +23,7 @@ return [
'total' => '订单总额',
'express_number' => '快递单号',
'express_company' => '快递公司',
-
+ 'expected_arrival' => '预计在:start_time 至 :end_time到达',
'order_shipments' => '发货信息',
'address_info' => '地址信息',
diff --git a/themes/default/account/order.blade.php b/themes/default/account/order.blade.php
index 68447308..ddf875b8 100644
--- a/themes/default/account/order.blade.php
+++ b/themes/default/account/order.blade.php
@@ -38,7 +38,17 @@
{{--物流信息--}}
@if ($order->orderShipments->count() > 0)
{{ __('order.express_company') }}:{{ $order->orderShipments[0]->express_company }}
- {{ __('order.express_number') }}:{{ $order->orderShipments[0]->express_number }}
+ {{ __('order.express_number') }}:{{ $order->orderShipments[0]->express_number }}
+ @if($order->logistics)
+ @php
+ $created_at = strtotime($order->orderShipments[0]->created_at);
+ $day_min = $order->logistics->day_min;
+ $day_max = $order->logistics->day_max;
+ $startTime = date('Y-m-d',strtotime("+{$day_min} day", $created_at));
+ $endTime = date('Y-m-d',strtotime("+{$day_max} day", $created_at));
+ @endphp
+ {{ __('order.expected_arrival',['start_time'=>$startTime,'end_time'=>$endTime]) }}
+ @endif
@endif