|
|
@@ -0,0 +1,207 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+
|
|
|
+namespace Tests\Services\LogisticSFService;
|
|
|
+
|
|
|
+
|
|
|
+use App\OrderPackage;
|
|
|
+use App\Services\LogisticSFService;
|
|
|
+use Tests\TestCase;
|
|
|
+
|
|
|
+class SetExceptionStatusTest extends TestCase
|
|
|
+{
|
|
|
+ /**
|
|
|
+ * @var LogisticSFService $service
|
|
|
+ */
|
|
|
+ private $service;
|
|
|
+
|
|
|
+ protected function setUp(): void
|
|
|
+ {
|
|
|
+ parent::setUp(); // TODO: Change the autogenerated stub
|
|
|
+ $this->service = app('LogisticSFService');
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_单号异常()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263_1')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263_1",
|
|
|
+ "status" => "已签收",
|
|
|
+ "received_at" => "2021-09-09 12:11:03",
|
|
|
+ "transfer_status" => [
|
|
|
+ ["accept_time" => "2021-09-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-09-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-09-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-09-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => "生成订单",
|
|
|
+ 'exception_status' => "单号异常",
|
|
|
+ 'logistic_number' => 'SF1332897469263_1',
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263_1')->delete();
|
|
|
+ $this->assertEquals($data, $response);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_延迟发货_16()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263",
|
|
|
+ "status" => "已签收",
|
|
|
+ "received_at" => "2021-09-09 12:11:03",
|
|
|
+ "transfer_status" => [],
|
|
|
+ ];
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => "生成订单",
|
|
|
+ 'logistic_number' => 'SF1332897469263',
|
|
|
+ 'transfer_status' => null,
|
|
|
+ 'sent_at' => null,
|
|
|
+ 'created_at' => now()->subDays(3),
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $this->assertEquals('延迟发货', $response['exception_status']);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_疑似库内丢件()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263",
|
|
|
+ "status" => "已签收",
|
|
|
+ "received_at" => "2021-09-09 12:11:03",
|
|
|
+ "transfer_status" => [],
|
|
|
+ ];
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => "生成订单",
|
|
|
+ 'logistic_number' => 'SF1332897469263',
|
|
|
+ 'transfer_status' => null,
|
|
|
+ 'sent_at' => now()->subDays(3),
|
|
|
+ 'created_at' => now()->subDays(3),
|
|
|
+ 'weighed_at' => null,
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $this->assertEquals('疑似库内丢件', $response['exception_status']);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_揽件异常()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263",
|
|
|
+ "status" => "已签收",
|
|
|
+ "received_at" => "2021-09-09 12:11:03",
|
|
|
+ "transfer_status" => [],
|
|
|
+ ];
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => "生成订单",
|
|
|
+ 'logistic_number' => 'SF1332897469263',
|
|
|
+ 'transfer_status' => null,
|
|
|
+ 'sent_at' => now()->subDays(3),
|
|
|
+ 'created_at' => now()->subDays(3),
|
|
|
+ 'weighed_at' => now()->subDays(2),
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $this->assertEquals('揽件异常', $response['exception_status']);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function test_在途异常大于3上海()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263",
|
|
|
+ "status" => "在途",
|
|
|
+ "received_at" => null,
|
|
|
+ "transfer_status" => [
|
|
|
+ ["accept_time" => "2021-09-06 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-09-07 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-09-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => now()->subHours(25)->toDateTimeString(), "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ //最近一条是在24h前
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ $order = factory(\App\Order::class)->create([
|
|
|
+ 'province' =>'上海'
|
|
|
+ ]);
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => "生成订单",
|
|
|
+ 'logistic_number' => 'SF1332897469263',
|
|
|
+ 'transfer_status' => OrderPackage::switchStatus('在途'),
|
|
|
+ 'sent_at' => now()->subDays(3),
|
|
|
+ 'created_at' => now()->subDays(3),
|
|
|
+ 'weighed_at' => now()->subDays(2),
|
|
|
+ 'order_id' =>$order->id,
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $this->assertEquals('在途异常', $response['exception_status']);
|
|
|
+ }
|
|
|
+ public function test_在途异常小于3上海()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263",
|
|
|
+ "status" => "在途",
|
|
|
+ "received_at" => null,
|
|
|
+ "transfer_status" => [
|
|
|
+ ["accept_time" => "2021-09-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => now()->subHours(25)->toDateTimeString(), "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ //最近一条是在24h前
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ $order = factory(\App\Order::class)->create([
|
|
|
+ 'province' =>'上海'
|
|
|
+ ]);
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => "生成订单",
|
|
|
+ 'logistic_number' => 'SF1332897469263',
|
|
|
+ 'transfer_status' => OrderPackage::switchStatus('在途'),
|
|
|
+ 'sent_at' => now()->subDays(3),
|
|
|
+ 'created_at' => now()->subDays(3),
|
|
|
+ 'weighed_at' => now()->subDays(2),
|
|
|
+ 'order_id' =>$order->id,
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $this->assertEquals('在途异常', $response['exception_status']);
|
|
|
+ }
|
|
|
+ public function test_在途异常大于3黑龙江()
|
|
|
+ {
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $data = [
|
|
|
+ "logistic_number" => "SF1332897469263",
|
|
|
+ "status" => "在途",
|
|
|
+ "received_at" => null,
|
|
|
+ "transfer_status" => [
|
|
|
+ ["accept_time" => "2021-08-06 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-08-07 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => "2021-08-08 19:25:42", "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ ["accept_time" => now()->subHours(73)->toDateTimeString(), "accept_address" => "上海市", "remark" => "顺丰速运 已收取快件",],
|
|
|
+ //最近一条是在24h前
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+ $order = factory(\App\Order::class)->create([
|
|
|
+ 'province' =>'黑龙江省'
|
|
|
+ ]);
|
|
|
+ factory(OrderPackage::class)->create([
|
|
|
+ 'status' => OrderPackage::switchStatus('在途'),
|
|
|
+ 'logistic_number' => 'SF1332897469263',
|
|
|
+ 'transfer_status' => [],
|
|
|
+ 'sent_at' => now()->subDays(3),
|
|
|
+ 'created_at' => now()->subDays(3),
|
|
|
+ 'weighed_at' => now()->subDays(2),
|
|
|
+ 'order_id' =>$order->id,
|
|
|
+ ]);
|
|
|
+ $response = $this->service->setExceptionStatus($data);
|
|
|
+ OrderPackage::query()->where('logistic_number', 'SF1332897469263')->delete();
|
|
|
+ $this->assertEquals('在途异常', $response['exception_status']);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|