PrintPartImageController.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\PrintPartImage;
  4. use App\Services\PrintPartImageService;
  5. use App\UploadFile;
  6. use Illuminate\Http\Request;
  7. class PrintPartImageController extends Controller
  8. {
  9. public function index(Request $request)
  10. {
  11. $printPartImages = PrintPartImage::query()->with('file')->paginate($request['paginate'] ?? 50);
  12. return view('maintenance.expressPrinting.image.index', compact('printPartImages'));
  13. }
  14. /**
  15. * 保存图片
  16. * @param Request $request
  17. * @param PrintPartImageService $service
  18. * @return array
  19. */
  20. public function saveFileApi(Request $request, PrintPartImageService $service): array
  21. {
  22. $file = $request->file('file');
  23. /** @var PrintPartImage $printPartImage */
  24. $printPartImage = PrintPartImage::query()->with('file')->where('name', $request['name'])->first();
  25. if (!$printPartImage) $printPartImage = PrintPartImage::query()->firstOrCreate(['name' => $request['name']]);
  26. if ($printPartImage['file']) return ['success' => false, 'message' => '该需求已有描述图片'];
  27. return $service->saveFile($printPartImage, $file);
  28. }
  29. /**
  30. * 修改图片
  31. * @param Request $request
  32. * @param PrintPartImageService $service
  33. * @return array
  34. */
  35. public function updateFileApi(Request $request, PrintPartImageService $service): array
  36. {
  37. $file = $request->file('file');
  38. /** @var PrintPartImage $printPartImage */
  39. $printPartImage = PrintPartImage::query()->with('file')->where('name', $request['name'])->first();
  40. return $service->updateFile($printPartImage, $file);
  41. }
  42. /**
  43. * 删除图片
  44. * @param $id
  45. * @param PrintPartImageService $service
  46. * @return bool[]
  47. * @throws \Exception
  48. */
  49. public function destroyApi($id, PrintPartImageService $service): array
  50. {
  51. $item = PrintPartImage::query()->with('file')->find($id);
  52. UploadFile::query()->where(['table_name' => (new PrintPartImage())->getTable(), 'table_id' => $item['id']])->delete();
  53. $item->delete();
  54. return ['success' => true];
  55. }
  56. }