123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- <?php
- /**
- * Created by PhpStorm.
- * User: Administrator
- * Date: 2019-06-12
- * Time: 10:10
- */
- namespace App\Repositories\V2;
- use App\Models\VideoGroup;
- use App\Models\VideoGroupInfo;
- use Dingo\Api\Http\Response;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Database\QueryException;
- use Illuminate\Support\Facades\Log;
- class VideoGroupRepository {
- public function __construct(VideoGroup $videoGroup,VideoGroupInfo $videoGroupInfo) {
- $this->videoGroup = $videoGroup;
- $this->videoGroupInfo = $videoGroupInfo;
- }
- //列表
- public function index($request){
- $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
- $where = [];
- if(isset($request['name'])){
- $where[] = ['name', 'like', "%{$request['name']}%"];
- }
- return $this->videoGroup->where($where)->paginate($perPage);
- }
- //详情
- public function view($request){
- return $this->videoGroup->where(['id'=>$request['id']])->first();
- }
- //创建
- public function create($request){
- $videoGroup = $this->videoGroup->where(['name'=>$request['name']])->first();
- if($videoGroup){
- return Response::create([
- 'message' => '该分组已存在',
- 'status_code' => 500
- ]);
- }
- $data = [
- 'name' => $request['name'],
- 'status' => 1,
- ];
- DB::beginTransaction();
- try{
- $this->videoGroup->create($data);
- DB::commit();
- return Response::create();
- }catch (QueryException $exception){
- DB::rollBack();
- Log::debug('新增热门视频分组:'.$exception->getMessage());
- return Response::create([
- 'message' => '新增热门视频失败,请重试',
- 'error' => $exception->getMessage(),
- 'status_code' => 500
- ]);
- }
- }
- //编辑
- public function edit($request){
- $videoGroup = $this->videoGroup->where(['id'=>$request['id']])->first();
- if(!$videoGroup){
- return Response::create([
- 'message' => '该分组不存在',
- 'status_code' => 500
- ]);
- }
- $videoGroup->name = $request['name'];
- $videoGroup->save();
- }
- //视频详情
- public function videoList($video_group_id){
- return $this->videoGroupInfo->where(['video_group_id'=>$video_group_id])->get();
- }
- //添加分组视频
- public function addVideoInfo($request){
- $videoGroup = $this->videoGroup->where(['video_group_id'=>$request['video_group_id']])->first();
- if(!$videoGroup){
- return Response::create([
- 'message' => '该分组不存在',
- 'status_code' => 500
- ]);
- }
- $data = [
- 'video_group_id'=>$request['video_group_id'],
- 'post_id'=>$request['post_id']
- ];
- return $this->videoGroupInfo->create($data);
- }
- }
|