VideoGroupController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-12
  6. * Time: 9:35
  7. */
  8. namespace App\Http\Controllers\V2;
  9. use App\Http\Controllers\Controller;
  10. use App\Repositories\V2\VideoGroupRepository;
  11. use App\Transformers\DetailVideoGroupTansformer;
  12. use App\Transformers\VideoGroupTransformer;
  13. use Illuminate\Http\Request;
  14. use Illuminate\Support\Facades\Validator;
  15. use League\Fractal\Manager;
  16. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  17. use League\Fractal\Resource\Collection;
  18. use League\Fractal\Resource\Item;
  19. class VideoGroupController extends Controller {
  20. public function __construct(VideoGroupRepository $videoGroupRepository) {
  21. $this->videoGroupRepository = $videoGroupRepository;
  22. }
  23. //列表
  24. public function index(Request $request){
  25. $topicGroup = $this->videoGroupRepository->index($request->all());
  26. $fractal = new Manager();
  27. $resource = new Collection($topicGroup, new VideoGroupTransformer());
  28. $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
  29. $data = $fractal->createData($resource)->toArray();
  30. $data['extra'] = [
  31. 'filters' => [
  32. 'name',
  33. ],
  34. 'columns' => [
  35. 'id',
  36. 'name',
  37. 'video_count',
  38. 'created_at',
  39. ]
  40. ];
  41. return $data;
  42. }
  43. //创建
  44. public function create(Request $request){
  45. $data = $request->only('name');
  46. $validator = Validator::make($data, [
  47. 'name' => 'required|string|max:12',
  48. ]);
  49. if ($validator->fails()) {
  50. return $this->response->error($validator->errors()->first(), 500);
  51. }
  52. return $this->videoGroupRepository->create($data);
  53. }
  54. //详情
  55. public function view(Request $request){
  56. $data = $request->only('id');
  57. $validator = Validator::make($data, [
  58. 'id' => 'required|integer|max:12',
  59. ]);
  60. if ($validator->fails()) {
  61. return $this->response->error($validator->errors()->first(), 500);
  62. }
  63. $info = $this->videoGroupRepository->view($data);
  64. return $this->response->item($info, new DetailVideoGroupTansformer());
  65. }
  66. //设置排序
  67. public function edit(Request $request){
  68. $data = $request->only('name','name','info');
  69. $validator = Validator::make($data, [
  70. 'id' => 'required|integer|max:12',
  71. 'name' => 'required|string|max:12',
  72. 'info' => 'string'
  73. ]);
  74. if ($validator->fails()) {
  75. return $this->response->error($validator->errors()->first(), 500);
  76. }
  77. return $this->videoGroupRepository->edit($data);
  78. }
  79. //添加分组内容
  80. public function addVideoInfo(Request $request){
  81. $data = $request->only('video_group_id','post_id');
  82. $validator = Validator::make($data, [
  83. 'video_group_id' => 'required|integer|max:12',
  84. 'post_id' => 'required|integer|max:12',
  85. ]);
  86. if ($validator->fails()) {
  87. return $this->response->error($validator->errors()->first(), 500);
  88. }
  89. return $this->videoGroupRepository->addVideoInfo($data);
  90. }
  91. }