PhotosController.php 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. namespace App\Http\Controllers\Admin\Base;
  3. use App\Http\Controllers\Admin\Controller;
  4. use App\Services\Base\Attachment;
  5. use App\Models\BaseAttachmentModel;
  6. use App\Models\ClassModel;
  7. use Illuminate\Http\Request as HttpRequest;
  8. use Request;
  9. use File;
  10. class PhotosController extends Controller
  11. {
  12. private $_serviceAttachment;
  13. public function __construct()
  14. {
  15. if( !$this->_serviceAttachment ) $this->_serviceAttachment = new Attachment();
  16. }
  17. public function index(HttpRequest $request)
  18. {
  19. $classes = ClassModel::all();
  20. $a_class = $request->has('class') ? $request->input('class') : null;
  21. if(($a_class = ClassModel::find($a_class)) == null) {
  22. $a_class = ClassModel::first();
  23. }
  24. $photos = null;
  25. $status = 'normal';
  26. if($request->has('search')) {
  27. $name = '%' . $request->input('search') . '%';
  28. $photos = BaseAttachmentModel::where('name', 'like', $name)->get();
  29. $status = 'search';
  30. } else {
  31. if($a_class){
  32. $photos = BaseAttachmentModel::where('class', $a_class->class)->get();
  33. }
  34. }
  35. return view('admin.base.photos.index', compact('photos', 'classes', 'a_class', 'photos', 'status', 'photo_compress_quality'));
  36. }
  37. public function edit(HttpRequest $request)
  38. {
  39. if(Request::method() != 'POST') {
  40. return back();
  41. }
  42. if($request->has('img-name') && $request->has('img-id')) {
  43. $photo = BaseAttachmentModel::find($request->input('img-id'));
  44. $photo->name = $request->input('img-name');
  45. $photo->save();
  46. }
  47. return back();
  48. }
  49. public function move(HttpRequest $request)
  50. {
  51. if(Request::method() != 'POST') {
  52. return back();
  53. }
  54. $ids = explode(',', $request->input('ids'));
  55. $class = ClassModel::find($request->input('class'));
  56. BaseAttachmentModel::whereIn('id', $ids)->update(['class' => $class->class]);
  57. return back();
  58. }
  59. public function delete(HttpRequest $request)
  60. {
  61. if(Request::method() != 'POST') {
  62. return back();
  63. }
  64. $ids = explode(',', $request->input('ids'));
  65. $photos = BaseAttachmentModel::find($ids);
  66. foreach($photos as $photo) {
  67. File::delete($photo->path);
  68. $photo->delete();
  69. }
  70. return back();
  71. }
  72. public function crop(HttpRequest $request)
  73. {
  74. if(Request::method() != 'POST') {
  75. return back();
  76. }
  77. $this->_serviceAttachment->localUpload('file', $request->all());
  78. return response()->json(['status' => 'ok'], 200);
  79. }
  80. }