feat: add kuaidi100 logistics sync
This commit is contained in:
@@ -3,8 +3,9 @@
|
||||
namespace app\controller\admin;
|
||||
|
||||
use app\support\AppraisalEvidenceService;
|
||||
use app\support\MessageDispatcher;
|
||||
use app\support\EnterpriseWebhookService;
|
||||
use app\support\MessageDispatcher;
|
||||
use app\support\OrderLogisticsSyncService;
|
||||
use app\support\WarehouseService;
|
||||
use support\Request;
|
||||
use support\think\Db;
|
||||
@@ -292,6 +293,17 @@ class OrdersController
|
||||
->select()
|
||||
->toArray();
|
||||
}
|
||||
$syncService = new OrderLogisticsSyncService();
|
||||
$sendSyncStatus = $sendLogistics ? $syncService->formatSyncStatus((int)$sendLogistics['id']) : [
|
||||
'provider_status_text' => '',
|
||||
'sync_status_text' => '未同步',
|
||||
'sync_error' => '',
|
||||
];
|
||||
$returnSyncStatus = $returnLogistics ? $syncService->formatSyncStatus((int)$returnLogistics['id']) : [
|
||||
'provider_status_text' => '',
|
||||
'sync_status_text' => '未同步',
|
||||
'sync_error' => '',
|
||||
];
|
||||
|
||||
return api_success([
|
||||
'order_info' => [
|
||||
@@ -376,23 +388,14 @@ class OrdersController
|
||||
'tracking_no' => $sendLogistics['tracking_no'],
|
||||
'tracking_status' => $sendLogistics['tracking_status'],
|
||||
'tracking_status_text' => $this->trackingStatusText($sendLogistics['tracking_status'], 'send_to_center'),
|
||||
'latest_desc' => $this->formatAdminLogisticsDesc(
|
||||
'send_to_center',
|
||||
$sendLogistics['tracking_status'],
|
||||
$sendLogistics['express_company'],
|
||||
$sendLogistics['tracking_no'],
|
||||
$sendLogistics['latest_desc']
|
||||
),
|
||||
'provider_status_text' => $sendSyncStatus['provider_status_text'],
|
||||
'sync_status_text' => $sendSyncStatus['sync_status_text'],
|
||||
'sync_error' => $sendSyncStatus['sync_error'],
|
||||
'latest_desc' => (string)($sendLogistics['latest_desc'] ?? ''),
|
||||
'latest_time' => $sendLogistics['latest_time'],
|
||||
'nodes' => array_map(fn (array $item) => [
|
||||
'node_time' => $item['node_time'],
|
||||
'node_desc' => $this->formatAdminLogisticsDesc(
|
||||
'send_to_center',
|
||||
$sendLogistics['tracking_status'],
|
||||
$sendLogistics['express_company'],
|
||||
$sendLogistics['tracking_no'],
|
||||
$item['node_desc']
|
||||
),
|
||||
'node_desc' => $item['node_desc'],
|
||||
'node_location' => $item['node_location'],
|
||||
], $logisticsNodes),
|
||||
] : null,
|
||||
@@ -402,23 +405,14 @@ class OrdersController
|
||||
'tracking_no' => $returnLogistics['tracking_no'],
|
||||
'tracking_status' => $returnLogistics['tracking_status'],
|
||||
'tracking_status_text' => $this->trackingStatusText($returnLogistics['tracking_status'], 'return_to_user'),
|
||||
'latest_desc' => $this->formatAdminLogisticsDesc(
|
||||
'return_to_user',
|
||||
$returnLogistics['tracking_status'],
|
||||
$returnLogistics['express_company'],
|
||||
$returnLogistics['tracking_no'],
|
||||
$returnLogistics['latest_desc']
|
||||
),
|
||||
'provider_status_text' => $returnSyncStatus['provider_status_text'],
|
||||
'sync_status_text' => $returnSyncStatus['sync_status_text'],
|
||||
'sync_error' => $returnSyncStatus['sync_error'],
|
||||
'latest_desc' => (string)($returnLogistics['latest_desc'] ?? ''),
|
||||
'latest_time' => $returnLogistics['latest_time'],
|
||||
'nodes' => array_map(fn (array $item) => [
|
||||
'node_time' => $item['node_time'],
|
||||
'node_desc' => $this->formatAdminLogisticsDesc(
|
||||
'return_to_user',
|
||||
$returnLogistics['tracking_status'],
|
||||
$returnLogistics['express_company'],
|
||||
$returnLogistics['tracking_no'],
|
||||
$item['node_desc']
|
||||
),
|
||||
'node_desc' => $item['node_desc'],
|
||||
'node_location' => $item['node_location'],
|
||||
], $returnLogisticsNodes),
|
||||
] : null,
|
||||
@@ -833,6 +827,7 @@ class OrdersController
|
||||
'tracking_no' => $trackingNo,
|
||||
'shipped_at' => $now,
|
||||
]);
|
||||
(new OrderLogisticsSyncService())->subscribeAsync($logisticsId);
|
||||
|
||||
return api_success([
|
||||
'id' => $id,
|
||||
|
||||
Reference in New Issue
Block a user