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']); } }