123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019-06-12
- * Time: 9:35
- */
- namespace App\Http\Controllers\V2;
- use App\Http\Controllers\Controller;
- use App\Repositories\V2\VideoGroupRepository;
- use App\Transformers\DetailVideoGroupTansformer;
- use App\Transformers\VideoGroupInfoTransformer;
- use App\Transformers\VideoGroupTransformer;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Validator;
- use League\Fractal\Manager;
- use League\Fractal\Pagination\IlluminatePaginatorAdapter;
- use League\Fractal\Resource\Collection;
- use League\Fractal\Resource\Item;
- class VideoGroupController extends Controller {
- public function __construct(VideoGroupRepository $videoGroupRepository) {
- $this->videoGroupRepository = $videoGroupRepository;
- }
- //列表
- public function index(Request $request){
- $topicGroup = $this->videoGroupRepository->index($request->all());
- $fractal = new Manager();
- $resource = new Collection($topicGroup, new VideoGroupTransformer());
- $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
- $data = $fractal->createData($resource)->toArray();
- $data['extra'] = [
- 'filters' => [
- 'name',
- ],
- 'columns' => [
- 'id',
- 'name',
- 'video_count',
- 'created_at',
- ]
- ];
- return $data;
- }
- //创建
- public function create(Request $request){
- $data = $request->only('name');
- $validator = Validator::make($data, [
- 'name' => 'required|string|max:20',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->videoGroupRepository->create($data);
- }
- //详情
- public function view(Request $request){
- $data = $request->all();
- $validator = Validator::make($data, [
- 'id' => 'required|integer|max:12',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- $info = $this->videoGroupRepository->view($data);
- $videoInfo = $this->videoGroupRepository->VideoInfoIndex($data);
- $fractal = new Manager();
- $resource = new Collection($videoInfo, new VideoGroupInfoTransformer());
- $resource->setPaginator(new IlluminatePaginatorAdapter($videoInfo));
- $data = $fractal->createData($resource)->toArray();
- $data['extra'] = [
- 'filters' => [
- 'name',
- ],
- 'columns' => [
- 'post_id',
- 'username',
- 'topic',
- 'video',
- 'pv',
- 'praise_count',
- ],
- 'name'=>$info['name'],
- 'id'=>$info['id'],
- ];
- return $data;
- }
- //设置排序
- public function edit(Request $request){
- $data = $request->only('id','name','video_info');
- $validator = Validator::make($data, [
- 'id' => 'required|integer|max:12',
- 'name' => 'required|string|max:12',
- 'video_info' => 'string'
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->videoGroupRepository->edit($data);
- }
- //删除内容
- public function delete(Request $request){
- $data = $request->only('id');
- $validator = Validator::make($data, [
- 'id' => 'required|integer|max:12',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->videoGroupRepository->delete($data['id']);
- }
- //添加分组内容
- public function addVideoInfo(Request $request){
- $data = $request->only('video_group_id','post_id');
- $validator = Validator::make($data, [
- 'video_group_id' => 'required|integer',
- 'post_id' => 'required|integer',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->videoGroupRepository->addVideoInfo($data);
- }
- //删除内容
- public function deleteVideoInfo(Request $request){
- $data = $request->only('id');
- $validator = Validator::make($data, [
- 'id' => 'required|integer|max:12',
- ]);
- if ($validator->fails()) {
- return $this->response->error($validator->errors()->first(), 500);
- }
- return $this->videoGroupRepository->deleteVideoInfo($data['id']);
- }
- }
|