PhotosController.php 4.0 KB

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