ReceiveRecordController.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Components\AsyncResponse;
  4. use App\Exceptions\Exception;
  5. use App\Logistic;
  6. use App\ReceiveRecord;
  7. use App\Services\LogisticService;
  8. use Illuminate\Database\QueryException;
  9. use Illuminate\Support\Facades\Log;
  10. class ReceiveRecordController extends Controller
  11. {
  12. use AsyncResponse;
  13. public function receive()
  14. {
  15. $logisticNumber = \request("logisticNumber");
  16. if (!$logisticNumber)$this->error("非法单号");
  17. /** @var LogisticService $service */
  18. $service = app("LogisticService");
  19. $name = $service->assertExpressCompany($logisticNumber);
  20. if ($name){
  21. $logistic = Logistic::query()->select("id","name")->where("name","like","%{$name}%")->first();
  22. $logisticId = $logistic ? $logistic->id : 0;
  23. } else $logisticId = 0;
  24. try {
  25. $dateTime = now()->toDateTimeString();
  26. ReceiveRecord::query()->create([
  27. "logistic_number" => $logisticNumber,
  28. "logistic_id" => $logisticId,
  29. "record_at" => $dateTime,
  30. ]);
  31. $this->success(["recordAt"=>$dateTime,"logistic"=>$logistic->name??"未知"]);
  32. }catch(QueryException $qe){
  33. if ($qe->getCode()=='23000')$this->error("unique");
  34. else $this->error("数据异常");
  35. }catch (Exception $e){
  36. $this->error("处理异常");
  37. }
  38. }
  39. }