128 lines
3.4 KiB
PHP
128 lines
3.4 KiB
PHP
<?php
|
|
|
|
namespace app\api\controller;
|
|
|
|
use app\api\exception\ApiException;
|
|
use app\api\service\PlayService;
|
|
use app\api\validate\PlayValidate;
|
|
use app\common\exception\EnumCode;
|
|
use think\Hook;
|
|
use think\Request;
|
|
|
|
class Play
|
|
{
|
|
|
|
protected $playService;
|
|
protected $playValidate;
|
|
|
|
public function __construct(PlayService $playService, PlayValidate $playValidate)
|
|
{
|
|
$this->playService = $playService;
|
|
$this->playValidate = $playValidate;
|
|
}
|
|
|
|
/**
|
|
* 视频列表 function
|
|
*
|
|
* @author dotdotdot <6383846@qq.com>
|
|
* @date 2022-08-15
|
|
* @param Request $request
|
|
* @return array
|
|
*/
|
|
public function list(Request $request)
|
|
{
|
|
$params = [
|
|
'uid' => getDecodeTokenData()['uid'],
|
|
'sid' => $request->param('sid'),
|
|
'page' => $request->param('page', 1),
|
|
'limit' => $request->param('limit', 20)
|
|
];
|
|
|
|
if (!$this->playValidate->scene('list')->check($params)) {
|
|
throw new ApiException((string)$this->playValidate->getError(), EnumCode::ValidateError);
|
|
}
|
|
|
|
$data = $this->playService->list($params);
|
|
|
|
return json(['code' => EnumCode::Success, 'msg' => 'ok', 'data' => $data]);
|
|
}
|
|
|
|
/**
|
|
* 视频解锁单集或全集 function
|
|
*
|
|
* @author dotdotdot <6383846@qq.com>
|
|
* @date 2022-08-16
|
|
* @param Request $request
|
|
* @return array
|
|
*/
|
|
public function videoUnlock(Request $request)
|
|
{
|
|
$params = [
|
|
'uid' => getDecodeTokenData()['uid'],
|
|
'id' => $request->param('id'),
|
|
'sid' => $request->param('sid')
|
|
];
|
|
|
|
if (!$this->playValidate->scene('videoUnlock')->check($params)) {
|
|
throw new ApiException((string)$this->playValidate->getError(), EnumCode::ValidateError);
|
|
}
|
|
|
|
$this->playService->videoUnlock($params);
|
|
|
|
return json(['code' => EnumCode::Success, 'msg' => 'ok']);
|
|
}
|
|
|
|
/**
|
|
* 播放 function
|
|
*
|
|
* @author dotdotdot <6383846@qq.com>
|
|
* @date 2022-08-22
|
|
* @param Request $request
|
|
* @return array
|
|
*/
|
|
public function videoPlay(Request $request)
|
|
{
|
|
$params = [
|
|
'uid' => getDecodeTokenData()['uid'],
|
|
'sid' => $request->param('sid'),
|
|
'id' => $request->param('id')
|
|
];
|
|
|
|
if (!$this->playValidate->scene('videoPlay')->check($params)) {
|
|
throw new ApiException((string)$this->playValidate->getError(), EnumCode::ValidateError);
|
|
}
|
|
|
|
$data = $this->playService->videoPlay($params);
|
|
|
|
return json(['code' => EnumCode::Success, 'msg' => 'ok', 'data' => [$data]]);
|
|
}
|
|
|
|
/**
|
|
* 追剧 function
|
|
*
|
|
* @author dotdotdot <6383846@qq.com>
|
|
* @date 2022-08-22
|
|
* @param Request $request
|
|
* @return array
|
|
*/
|
|
public function bingeWatching(Request $request)
|
|
{
|
|
$actionAllowed = ['method' => 'binge_watching_', 'key' => getDecodeTokenData()['uid'], 'period' => 1];
|
|
|
|
Hook::listen('action_allowed', $actionAllowed);
|
|
|
|
$params = [
|
|
'uid' => getDecodeTokenData()['uid'],
|
|
'sid' => $request->param('sid')
|
|
];
|
|
|
|
if (!$this->playValidate->scene('bingeWatching')->check($params)) {
|
|
throw new ApiException((string)$this->playValidate->getError(), EnumCode::ValidateError);
|
|
}
|
|
|
|
$this->playService->bingeWatching($params);
|
|
|
|
return json(['code' => EnumCode::Success, 'msg' => 'ok']);
|
|
}
|
|
}
|