1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-29 13:51:37 +08:00

优化点播直播部分代码

This commit is contained in:
xiaochong0302 2020-11-11 20:39:49 +08:00
parent f4dda5a58c
commit 3ce6897de1
8 changed files with 21 additions and 23 deletions

View File

@ -38,13 +38,13 @@ class Learning extends Service
$data['position'] = $validator->checkPosition($post['position']); $data['position'] = $validator->checkPosition($post['position']);
} }
$interval = $validator->checkInterval($post['interval']); $intervalTime = $validator->checkIntervalTime($post['interval_time']);
$learning = new LearningModel($data); $learning = new LearningModel($data);
$sync = new LearningSyncService(); $sync = new LearningSyncService();
$sync->addItem($learning, $interval); $sync->addItem($learning, $intervalTime);
} }
} }

View File

@ -49,7 +49,7 @@ class CourseList extends Service
$courses = $builder->getCourses($relations); $courses = $builder->getCourses($relations);
$pager->items = $courses; $pager->items = array_values($courses);
return $pager; return $pager;
} }

View File

@ -18,9 +18,9 @@ class Learning extends Service
/** /**
* @param LearningModel $learning * @param LearningModel $learning
* @param int $interval * @param int $intervalTime
*/ */
public function addItem(LearningModel $learning, $interval = 10) public function addItem(LearningModel $learning, $intervalTime = 10)
{ {
$cache = $this->getCache(); $cache = $this->getCache();
@ -37,14 +37,14 @@ class Learning extends Service
$learning->client_type = $this->getClientType(); $learning->client_type = $this->getClientType();
$learning->client_ip = $this->getClientIp(); $learning->client_ip = $this->getClientIp();
$learning->duration = $interval; $learning->duration = $intervalTime;
$learning->active_time = time(); $learning->active_time = time();
$cache->save($itemKey, $learning, $this->lifetime); $cache->save($itemKey, $learning, $this->lifetime);
} else { } else {
$cacheLearning->duration += $interval; $cacheLearning->duration += $intervalTime;
$cacheLearning->position = $learning->position; $cacheLearning->position = $learning->position;
$cacheLearning->active_time = time(); $cacheLearning->active_time = time();

View File

@ -26,9 +26,9 @@ class Learning extends Validator
return $requestId; return $requestId;
} }
public function checkInterval($interval) public function checkIntervalTime($intervalTime)
{ {
$value = $this->filter->sanitize($interval, ['trim', 'int']); $value = $this->filter->sanitize($intervalTime, ['trim', 'int']);
/** /**
* 兼容秒和毫秒 * 兼容秒和毫秒
@ -38,7 +38,7 @@ class Learning extends Validator
} }
if ($value < 5) { if ($value < 5) {
throw new BadRequestException('learning.invalid_interval'); throw new BadRequestException('learning.invalid_interval_time');
} }
return $value; return $value;

View File

@ -108,7 +108,12 @@ class Refund extends Validator
public function checkIfAllowCancel(RefundModel $refund) public function checkIfAllowCancel(RefundModel $refund)
{ {
if ($refund->status != RefundModel::STATUS_PENDING) { $scopes = [
RefundModel::STATUS_PENDING,
RefundModel::STATUS_APPROVED,
];
if (!in_array($refund->status, $scopes)) {
throw new BadRequestException('refund.cancel_not_allowed'); throw new BadRequestException('refund.cancel_not_allowed');
} }
} }

View File

@ -321,8 +321,8 @@ $error['course_query.invalid_sort'] = '无效的排序类别';
*/ */
$error['learning.invalid_plan_id'] = '无效的计划编号'; $error['learning.invalid_plan_id'] = '无效的计划编号';
$error['learning.invalid_request_id'] = '无效的请求编号'; $error['learning.invalid_request_id'] = '无效的请求编号';
$error['learning.invalid_interval_time'] = '无效的间隔时间';
$error['learning.invalid_position'] = '无效的播放位置'; $error['learning.invalid_position'] = '无效的播放位置';
$error['learning.invalid_interval'] = '无效的间隔时间';
/** /**
* 即时通讯 * 即时通讯

View File

@ -6,7 +6,6 @@ layui.use(['jquery', 'helper'], function () {
var interval = null; var interval = null;
var intervalTime = 15000; var intervalTime = 15000;
var userId = window.user.id; var userId = window.user.id;
var chapterId = $('input[name="chapter.id"]').val();
var planId = $('input[name="chapter.plan_id"]').val(); var planId = $('input[name="chapter.plan_id"]').val();
var learningUrl = $('input[name="chapter.learning_url"]').val(); var learningUrl = $('input[name="chapter.learning_url"]').val();
var playUrls = JSON.parse($('input[name="chapter.play_urls"]').val()); var playUrls = JSON.parse($('input[name="chapter.play_urls"]').val());
@ -17,7 +16,7 @@ layui.use(['jquery', 'helper'], function () {
autoplay: true, autoplay: true,
h5_flv: true, h5_flv: true,
width: 760, width: 760,
height: 428 height: 428,
}; };
var formats = ['rtmp', 'flv', 'm3u8']; var formats = ['rtmp', 'flv', 'm3u8'];
@ -32,14 +31,12 @@ layui.use(['jquery', 'helper'], function () {
}); });
}); });
console.log(options);
options.listener = function (msg) { options.listener = function (msg) {
if (msg.type === 'play') { if (msg.type === 'play') {
start(); start();
} else if (msg.type === 'pause') { } else if (msg.type === 'pause') {
stop(); stop();
} else if (msg.type === 'end') { } else if (msg.type === 'ended') {
stop(); stop();
} }
}; };
@ -68,10 +65,8 @@ layui.use(['jquery', 'helper'], function () {
url: learningUrl, url: learningUrl,
data: { data: {
plan_id: planId, plan_id: planId,
chapter_id: chapterId,
request_id: requestId, request_id: requestId,
interval: intervalTime, interval: intervalTime,
position: player.currentTime(),
} }
}); });
} }

View File

@ -7,7 +7,6 @@ layui.use(['jquery', 'helper'], function () {
var intervalTime = 15000; var intervalTime = 15000;
var userId = window.user.id; var userId = window.user.id;
var requestId = helper.getRequestId(); var requestId = helper.getRequestId();
var chapterId = $('input[name="chapter.id"]').val();
var planId = $('input[name="chapter.plan_id"]').val(); var planId = $('input[name="chapter.plan_id"]').val();
var lastPosition = $('input[name="chapter.position"]').val(); var lastPosition = $('input[name="chapter.position"]').val();
var learningUrl = $('input[name="chapter.learning_url"]').val(); var learningUrl = $('input[name="chapter.learning_url"]').val();
@ -16,7 +15,7 @@ layui.use(['jquery', 'helper'], function () {
var options = { var options = {
autoplay: false, autoplay: false,
width: 760, width: 760,
height: 428 height: 428,
}; };
if (playUrls.hasOwnProperty('od')) { if (playUrls.hasOwnProperty('od')) {
@ -84,10 +83,9 @@ layui.use(['jquery', 'helper'], function () {
url: learningUrl, url: learningUrl,
data: { data: {
plan_id: planId, plan_id: planId,
chapter_id: chapterId,
request_id: requestId, request_id: requestId,
interval: intervalTime, interval: intervalTime,
position: player.currentTime() position: player.currentTime(),
} }
}); });
} }