OwnerContractController.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\OwnerContract;
  4. use App\UploadFile;
  5. use Faker\Provider\Uuid;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\Gate;
  9. class OwnerContractController extends Controller
  10. {
  11. public function store(Request $request)
  12. {
  13. if(!Gate::allows('客户-编辑')){ return ['success'=>false,"data"=>"无权操作"]; }
  14. $owner_id = $request->input("owner_id");
  15. $contract_number = $request->input("contract_number");
  16. if (!$owner_id || !$contract_number)return ["success"=>false,"data"=>"非法参数"];
  17. $remark = $request->input("remark");
  18. $contract = OwnerContract::query()->create([
  19. "owner_id" => $owner_id,
  20. "contract_number" => $contract_number,
  21. "salesman" => Auth::user()['name'],
  22. "remark" => $remark,
  23. ]);
  24. $files = $request->file("files");
  25. if ($files){
  26. $uploadFiles = [];
  27. foreach ($files as $file){
  28. $suffix = strtolower($file->getClientOriginalExtension());
  29. $path = $file->storeAs("contract",Uuid::uuid().".".$suffix);
  30. $uploadFiles[] = [
  31. "table_name" => "contracts",
  32. "table_id" => $contract->id,
  33. "url" => $path,
  34. "type" => $suffix,
  35. "file_name" => $file->getClientOriginalName(),
  36. ];
  37. }
  38. UploadFile::query()->insert($uploadFiles);
  39. }
  40. $contract->load(["owner","files"]);
  41. return ["success"=>true,"data"=>$contract];
  42. }
  43. }