PhotosController.php 3.7 KB

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