PhotosController.php 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  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\BaseSettingsModel;
  7. use App\Models\ClassModel;
  8. use Illuminate\Http\Request as HttpRequest;
  9. use Request;
  10. use Storage;
  11. use File;
  12. use Auth;
  13. class PhotosController extends Controller
  14. {
  15. private $_serviceAttachment;
  16. public function __construct()
  17. {
  18. if( !$this->_serviceAttachment ) $this->_serviceAttachment = new Attachment();
  19. }
  20. public function index(HttpRequest $request)
  21. {
  22. $userAuth = Auth::guard('admin')->user();
  23. $classes = ClassModel::all();
  24. $a_class = $request->has('class') ? $request->input('class') : null;
  25. if ($userAuth->is_root == 1) {
  26. if (($a_class = ClassModel::find($a_class)) == null) {
  27. $a_class = ClassModel::first();
  28. }
  29. } else {
  30. if (($a_class = ClassModel::find($a_class)) == null) {
  31. $a_class = ClassModel::where('store_id', $this->getStoreId())->first();
  32. }
  33. }
  34. $photos = null;
  35. $status = 'normal';
  36. if ($request->has('search')) {
  37. $name = '%' . $request->input('search') . '%';
  38. if ($userAuth->is_root == 1) {
  39. $photos = BaseAttachmentModel::where([['name', 'like', $name]])->paginate(24);
  40. } else {
  41. $photos = BaseAttachmentModel::where([['name', 'like', $name],['store_id', $this->getStoreId()]])->paginate(24);
  42. }
  43. $status = 'search';
  44. } else {
  45. if ($a_class) {
  46. if ($userAuth->is_root == 1) {
  47. $photos = BaseAttachmentModel::where([['class', $a_class->class]])->paginate(24);
  48. } else {
  49. $photos = BaseAttachmentModel::where([['class', $a_class->class],['store_id', $this->getStoreId()]])->paginate(24);
  50. }
  51. }
  52. }
  53. dd($a_class);
  54. return view('admin.base.photos.index', compact('photos', 'classes', 'a_class', 'photos', 'status', 'photo_compress_quality'));
  55. }
  56. public function edit(HttpRequest $request)
  57. {
  58. if(Request::method() != 'POST') {
  59. return back();
  60. }
  61. if($request->has('img-name') && $request->has('img-id')) {
  62. $photo = BaseAttachmentModel::find($request->input('img-id'));
  63. $photo->name = $request->input('img-name');
  64. $photo->save();
  65. }
  66. return back();
  67. }
  68. public function move(HttpRequest $request)
  69. {
  70. if(Request::method() != 'POST') {
  71. return back();
  72. }
  73. $ids = explode(',', $request->input('ids'));
  74. $class = ClassModel::find($request->input('class'));
  75. BaseAttachmentModel::whereIn('id', $ids)->update(['class' => $class->class]);
  76. return back();
  77. }
  78. public function delete(HttpRequest $request)
  79. {
  80. if(Request::method() != 'POST') {
  81. return back();
  82. }
  83. $ids = explode(',', $request->input('ids'));
  84. $photos = BaseAttachmentModel::find($ids);
  85. foreach($photos as $photo) {
  86. File::delete($photo->path);
  87. $photo->delete();
  88. }
  89. return back();
  90. }
  91. public function crop(HttpRequest $request)
  92. {
  93. if(Request::method() != 'POST') {
  94. return back();
  95. }
  96. $this->_serviceAttachment->localUpload('file', $request->all());
  97. return response()->json(['status' => 'ok'], 200);
  98. }
  99. }