WaybillDispatch.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Requests\Api;
  3. use App\Http\Requests\AndroidGateRequest;
  4. use Illuminate\Contracts\Validation\Validator;
  5. use Illuminate\Validation\Rule;
  6. use Illuminate\Validation\ValidationException;
  7. class WaybillDispatch extends AndroidGateRequest
  8. {
  9. public function rules():array
  10. {
  11. return [
  12. "id" => ["required","integer"],
  13. "carrier_bill" => ["required","string","max:50"],
  14. "inquire_tel" => ["required","string","max:20"],
  15. "amount" => ["required","integer","min:1"],
  16. "amount_unit_name" => ["required",Rule::in(["件","托"])],
  17. "carrier_weight_other" => ["required_without_all:carrier_weight,carrier_weight_other","numeric","min:0.01"],
  18. "carrier_weight" => ["required_without_all:carrier_weight,carrier_weight_other","numeric","min:0.01"],
  19. "subjoin_fee" => ["nullable","string"],
  20. ];
  21. }
  22. public function attributes():array
  23. {
  24. return [
  25. "carrier_bill" => "物流单号",
  26. "inquire_tel" => "查件电话",
  27. "amount" => "数量",
  28. "amount_unit_name" => "数量单位",
  29. "carrier_weight_other" => "重量",
  30. "carrier_weight" => "体积",
  31. "subjoin_fee" => "附加费",
  32. ];
  33. }
  34. /**
  35. * Handle a failed validation attempt.
  36. *
  37. * @param Validator $validator
  38. * @return void
  39. */
  40. protected function failedValidation(Validator $validator)
  41. {
  42. $this->response($validator->errors(),400,"数据校验失败");
  43. }
  44. /**
  45. * @throws ValidationException
  46. */
  47. public function validated():array
  48. {
  49. $param = $this->validator->validated();
  50. $unit = app("UnitService")->getUnit($param["amount_unit_name"]);
  51. $param["amount_unit_id"] = $unit->id;
  52. unset($param["amount_unit_name"]);
  53. unset($param["id"]);
  54. return $param;
  55. }
  56. }