OwnerContractController.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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. use Illuminate\Support\Facades\Storage;
  10. class OwnerContractController extends Controller
  11. {
  12. public function store(Request $request)
  13. {
  14. if(!Gate::allows('客户-编辑')){ return ['success'=>false,"data"=>"无权操作"]; }
  15. $owner_id = $request->input("owner_id");
  16. $contract_number = $request->input("contract_number");
  17. if (!$owner_id || !$contract_number)return ["success"=>false,"data"=>"非法参数"];
  18. $remark = $request->input("remark");
  19. $contract = OwnerContract::query()->create([
  20. "owner_id" => $owner_id,
  21. "contract_number" => $contract_number,
  22. "salesman" => Auth::user()['name'],
  23. "remark" => $remark,
  24. ]);
  25. $files = $request->file("files");
  26. if ($files){
  27. $uploadFiles = [];
  28. foreach ($files as $file){
  29. $suffix = strtolower($file->getClientOriginalExtension());
  30. $path = $file->storeAs("contract",Uuid::uuid().".".$suffix);
  31. $uploadFiles[] = [
  32. "table_name" => "contracts",
  33. "table_id" => $contract->id,
  34. "url" => $path,
  35. "type" => $suffix,
  36. "file_name" => $file->getClientOriginalName(),
  37. ];
  38. }
  39. UploadFile::query()->insert($uploadFiles);
  40. }
  41. $contract->load(["owner","files"]);
  42. return ["success"=>true,"data"=>$contract];
  43. }
  44. public function downFile(Request $request)
  45. {
  46. if(!Gate::allows('客户-查询'))return ['success'=>false,"data"=>"无权操作"];
  47. $file = $request->input("file");
  48. $name = $request->input("name");
  49. return Storage::download($file,$name);
  50. }
  51. }