diff --git a/CHANGELOG.md b/CHANGELOG.md index 1065dd5a..9d97dff2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +### [v1.6.2](https://gitee.com/koogua/course-tencent-cloud/releases/v1.6.1)(2023-01-12) + +- 增加ServerMonitor监控指标配置 +- 同步更新腾讯云短信内容规则 +- 文章和问答增加评论开关属性 +- 修正视频记忆播放无效问题 +- 升级composer包版本 +- 优化Repo查询默认排序 +- 优化管理后台细节 +- 优化二维码输出 +- 优化评分检查 + ### [v1.6.1](https://gitee.com/koogua/course-tencent-cloud/releases/v1.6.1)(2022-12-12) - 富文本编辑器增加粘贴图片和远程图片本地化 diff --git a/app/Console/Tasks/ServerMonitorTask.php b/app/Console/Tasks/ServerMonitorTask.php index 1ac2e14b..8f054931 100644 --- a/app/Console/Tasks/ServerMonitorTask.php +++ b/app/Console/Tasks/ServerMonitorTask.php @@ -53,7 +53,9 @@ class ServerMonitorTask extends Task $load = sys_getloadavg(); - if ($load[1] > $cpuCount * 0.8) { + $limit = $this->getConfig()->path('server_monitor.cpu', 0.8); + + if ($load[1] > $cpuCount * $limit) { return sprintf("cpu负载超过%s", $load[1]); } @@ -82,7 +84,9 @@ class ServerMonitorTask extends Task $left = 100 * ($available / $total); - if ($left < 20) { + $limit = $this->getConfig()->path('server_monitor.memory', 10); + + if ($left < $limit) { return sprintf("memory剩余不足%s%%", round($left)); } @@ -96,7 +100,9 @@ class ServerMonitorTask extends Task $left = 100 * $free / $total; - if ($left < 20) { + $limit = $this->getConfig()->path('server_monitor.disk', 20); + + if ($left < $limit) { return sprintf("disk剩余不足%s%%", round($left)); } diff --git a/app/Console/Tasks/SyncLearningTask.php b/app/Console/Tasks/SyncLearningTask.php index a1b9dbe0..c8a86463 100644 --- a/app/Console/Tasks/SyncLearningTask.php +++ b/app/Console/Tasks/SyncLearningTask.php @@ -48,10 +48,12 @@ class SyncLearningTask extends Task */ protected function handleLearning($itemKey) { + $cache = $this->getCache(); + /** * @var LearningModel $cacheLearning */ - $cacheLearning = $this->cache->get($itemKey); + $cacheLearning = $cache->get($itemKey); if (!$cacheLearning) return; @@ -76,7 +78,7 @@ class SyncLearningTask extends Task $this->updateChapterUser($dbLearning); } - $this->cache->delete($itemKey); + $cache->delete($itemKey); } /** @@ -111,7 +113,12 @@ class SyncLearningTask extends Task $progress = floor(100 * $chapterUser->duration / $duration); - $chapterUser->position = floor($learning->position); + /** + * 过于接近结束位置当作已结束处理,播放位置为起点0 + */ + $playPosition = $duration - $learning->position > 10 ? floor($learning->position) : 0; + + $chapterUser->position = $playPosition; $chapterUser->progress = $progress < 100 ? $progress : 100; $chapterUser->consumed = $chapterUser->duration > 0.3 * $duration ? 1 : 0; diff --git a/app/Http/Admin/Services/Topic.php b/app/Http/Admin/Services/Topic.php index 55c2b581..23195a4b 100644 --- a/app/Http/Admin/Services/Topic.php +++ b/app/Http/Admin/Services/Topic.php @@ -87,7 +87,6 @@ class Topic extends Service $data = []; $data['title'] = $validator->checkTitle($post['title']); - $data['summary'] = $validator->checkSummary($post['summary']); $topic = new TopicModel(); diff --git a/app/Http/Admin/Views/setting/sms.volt b/app/Http/Admin/Views/setting/sms.volt index 547d9626..f2d8b7a4 100644 --- a/app/Http/Admin/Views/setting/sms.volt +++ b/app/Http/Admin/Views/setting/sms.volt @@ -64,7 +64,7 @@ - + 复制 @@ -84,7 +84,7 @@ - + 复制 diff --git a/app/Http/Admin/Views/topic/add.volt b/app/Http/Admin/Views/topic/add.volt index e470d1cb..573ba53a 100644 --- a/app/Http/Admin/Views/topic/add.volt +++ b/app/Http/Admin/Views/topic/add.volt @@ -12,12 +12,6 @@ -
- -
- -
-
diff --git a/app/Http/Home/Controllers/PublicController.php b/app/Http/Home/Controllers/PublicController.php index 9e3b3876..a79a0dc2 100644 --- a/app/Http/Home/Controllers/PublicController.php +++ b/app/Http/Home/Controllers/PublicController.php @@ -73,18 +73,19 @@ class PublicController extends \Phalcon\Mvc\Controller { $text = $this->request->getQuery('text', 'string'); $size = $this->request->getQuery('size', 'int', 320); + $margin = $this->request->getQuery('margin', 'int', 10); $text = urldecode($text); $qrCode = new QrCode($text); $qrCode->setSize($size); + $qrCode->setMargin($margin); - $qrCode->getContentType(); + $this->response->setContentType('image/png'); + $this->response->setContent($qrCode->writeString()); - echo $qrCode->writeString(); - - exit; + return $this->response; } /** diff --git a/app/Library/AppInfo.php b/app/Library/AppInfo.php index 1242f294..70774c80 100644 --- a/app/Library/AppInfo.php +++ b/app/Library/AppInfo.php @@ -16,7 +16,7 @@ class AppInfo protected $link = 'https://www.koogua.com'; - protected $version = '1.6.1'; + protected $version = '1.6.2'; public function __get($name) { @@ -28,6 +28,8 @@ class AppInfo if (isset($this->{$name})) { return $this->{$name}; } + + return null; } } \ No newline at end of file diff --git a/app/Repos/Answer.php b/app/Repos/Answer.php index 0ce29044..0cb6f54a 100644 --- a/app/Repos/Answer.php +++ b/app/Repos/Answer.php @@ -61,6 +61,9 @@ class Answer extends Repository case 'accepted': $orderBy = 'accepted DESC, like_count DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Article.php b/app/Repos/Article.php index edd513a7..56b58923 100644 --- a/app/Repos/Article.php +++ b/app/Repos/Article.php @@ -112,6 +112,9 @@ class Article extends Repository case 'popular': $orderBy = 'score DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/ArticleFavorite.php b/app/Repos/ArticleFavorite.php index ec43be57..b6591218 100644 --- a/app/Repos/ArticleFavorite.php +++ b/app/Repos/ArticleFavorite.php @@ -35,6 +35,9 @@ class ArticleFavorite extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Audit.php b/app/Repos/Audit.php index 7530db31..5d6fd238 100644 --- a/app/Repos/Audit.php +++ b/app/Repos/Audit.php @@ -51,6 +51,9 @@ class Audit extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Chapter.php b/app/Repos/Chapter.php index e98fcc62..8f1e63e1 100644 --- a/app/Repos/Chapter.php +++ b/app/Repos/Chapter.php @@ -99,6 +99,9 @@ class Chapter extends Repository */ public function findByFileId($fileId) { + /** + * @var ChapterVodModel $vod + */ $vod = ChapterVodModel::findFirst([ 'conditions' => 'file_id = :file_id:', 'bind' => ['file_id' => $fileId], diff --git a/app/Repos/ChapterLive.php b/app/Repos/ChapterLive.php index a947274e..83eb5da8 100644 --- a/app/Repos/ChapterLive.php +++ b/app/Repos/ChapterLive.php @@ -15,7 +15,7 @@ use Phalcon\Mvc\Model; class ChapterLive extends Repository { - public function paginate($where = [], $sort = 'latest', $page = 1, $limit = 15) + public function paginate($where = [], $sort = 'oldest', $page = 1, $limit = 15) { $builder = $this->modelsManager->createBuilder(); @@ -44,6 +44,9 @@ class ChapterLive extends Repository } switch ($sort) { + case 'latest': + $orderBy = 'cl.start_time DESC'; + break; default: $orderBy = 'cl.start_time ASC'; break; diff --git a/app/Repos/Comment.php b/app/Repos/Comment.php index 92923892..d2431c02 100644 --- a/app/Repos/Comment.php +++ b/app/Repos/Comment.php @@ -68,6 +68,9 @@ class Comment extends Repository case 'popular': $orderBy = 'like_count DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Consult.php b/app/Repos/Consult.php index a95dcfed..c1a87dda 100644 --- a/app/Repos/Consult.php +++ b/app/Repos/Consult.php @@ -65,6 +65,9 @@ class Consult extends Repository case 'priority': $orderBy = 'priority ASC, id DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Course.php b/app/Repos/Course.php index 93693f75..2188992e 100644 --- a/app/Repos/Course.php +++ b/app/Repos/Course.php @@ -127,6 +127,9 @@ class Course extends Repository case 'popular': $orderBy = 'user_count DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/CourseFavorite.php b/app/Repos/CourseFavorite.php index cfa69092..9915136f 100644 --- a/app/Repos/CourseFavorite.php +++ b/app/Repos/CourseFavorite.php @@ -35,6 +35,9 @@ class CourseFavorite extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/CourseTopic.php b/app/Repos/CourseTopic.php index 4d6aa10b..32bf4b64 100644 --- a/app/Repos/CourseTopic.php +++ b/app/Repos/CourseTopic.php @@ -34,6 +34,9 @@ class CourseTopic extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/CourseUser.php b/app/Repos/CourseUser.php index 3afa19bf..613d1b2f 100644 --- a/app/Repos/CourseUser.php +++ b/app/Repos/CourseUser.php @@ -45,6 +45,9 @@ class CourseUser extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Danmu.php b/app/Repos/Danmu.php index 18c50f5b..d5b03c93 100644 --- a/app/Repos/Danmu.php +++ b/app/Repos/Danmu.php @@ -49,6 +49,9 @@ class Danmu extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/FlashSale.php b/app/Repos/FlashSale.php index 639b718d..f17085ea 100644 --- a/app/Repos/FlashSale.php +++ b/app/Repos/FlashSale.php @@ -66,6 +66,9 @@ class FlashSale extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Learning.php b/app/Repos/Learning.php index 1dd79739..b526a70d 100644 --- a/app/Repos/Learning.php +++ b/app/Repos/Learning.php @@ -39,6 +39,9 @@ class Learning extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Order.php b/app/Repos/Order.php index ea2b0dbd..0e670e03 100644 --- a/app/Repos/Order.php +++ b/app/Repos/Order.php @@ -78,6 +78,9 @@ class Order extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Package.php b/app/Repos/Package.php index cac9bf52..bf560860 100644 --- a/app/Repos/Package.php +++ b/app/Repos/Package.php @@ -43,6 +43,9 @@ class Package extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Page.php b/app/Repos/Page.php index b5355bef..90d1c1ab 100644 --- a/app/Repos/Page.php +++ b/app/Repos/Page.php @@ -37,6 +37,9 @@ class Page extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/PointGift.php b/app/Repos/PointGift.php index c0c75279..f57ad4f7 100644 --- a/app/Repos/PointGift.php +++ b/app/Repos/PointGift.php @@ -52,6 +52,9 @@ class PointGift extends Repository case 'popular': $orderBy = 'redeem_count DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/PointGiftRedeem.php b/app/Repos/PointGiftRedeem.php index c73d5cb7..9aa39b33 100644 --- a/app/Repos/PointGiftRedeem.php +++ b/app/Repos/PointGiftRedeem.php @@ -39,6 +39,9 @@ class PointGiftRedeem extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/PointHistory.php b/app/Repos/PointHistory.php index 8bb0f619..c5a54d14 100644 --- a/app/Repos/PointHistory.php +++ b/app/Repos/PointHistory.php @@ -41,6 +41,9 @@ class PointHistory extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Question.php b/app/Repos/Question.php index 7b3d29ff..610a5899 100644 --- a/app/Repos/Question.php +++ b/app/Repos/Question.php @@ -105,6 +105,9 @@ class Question extends Repository case 'score': $orderBy = 'score DESC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/QuestionFavorite.php b/app/Repos/QuestionFavorite.php index e0834171..f4d64f3d 100644 --- a/app/Repos/QuestionFavorite.php +++ b/app/Repos/QuestionFavorite.php @@ -35,6 +35,9 @@ class QuestionFavorite extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Refund.php b/app/Repos/Refund.php index 3c1e0315..bc18f914 100644 --- a/app/Repos/Refund.php +++ b/app/Repos/Refund.php @@ -53,6 +53,9 @@ class Refund extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Report.php b/app/Repos/Report.php index 3d11b26a..b0b9942c 100644 --- a/app/Repos/Report.php +++ b/app/Repos/Report.php @@ -49,6 +49,9 @@ class Report extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Review.php b/app/Repos/Review.php index 6c76c05b..42b9424e 100644 --- a/app/Repos/Review.php +++ b/app/Repos/Review.php @@ -64,6 +64,9 @@ class Review extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Tag.php b/app/Repos/Tag.php index 9d9b9b32..0d53979c 100644 --- a/app/Repos/Tag.php +++ b/app/Repos/Tag.php @@ -50,6 +50,9 @@ class Tag extends Repository case 'priority': $orderBy = 'priority ASC, id ASC'; break; + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/TagFollow.php b/app/Repos/TagFollow.php index e572a82a..03ce2731 100644 --- a/app/Repos/TagFollow.php +++ b/app/Repos/TagFollow.php @@ -32,6 +32,9 @@ class TagFollow extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/TeacherConsult.php b/app/Repos/TeacherConsult.php index a53fc888..cc9025e2 100644 --- a/app/Repos/TeacherConsult.php +++ b/app/Repos/TeacherConsult.php @@ -41,6 +41,9 @@ class TeacherConsult extends Repository $builder->andWhere('c.deleted = 0'); switch ($sort) { + case 'oldest': + $orderBy = 'c.id ASC'; + break; default: $orderBy = 'c.id DESC'; break; diff --git a/app/Repos/Topic.php b/app/Repos/Topic.php index c6e80a91..3ab32d11 100644 --- a/app/Repos/Topic.php +++ b/app/Repos/Topic.php @@ -43,6 +43,9 @@ class Topic extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/Trade.php b/app/Repos/Trade.php index 9debebc0..1dfd7470 100644 --- a/app/Repos/Trade.php +++ b/app/Repos/Trade.php @@ -69,6 +69,9 @@ class Trade extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Repos/User.php b/app/Repos/User.php index 75cf7d0d..c2a3e908 100644 --- a/app/Repos/User.php +++ b/app/Repos/User.php @@ -69,6 +69,9 @@ class User extends Repository } switch ($sort) { + case 'oldest': + $orderBy = 'id ASC'; + break; default: $orderBy = 'id DESC'; break; diff --git a/app/Services/DingTalkNotice.php b/app/Services/DingTalkNotice.php index 1fc06a4d..713f6115 100644 --- a/app/Services/DingTalkNotice.php +++ b/app/Services/DingTalkNotice.php @@ -170,7 +170,7 @@ class DingTalkNotice extends Service $result = $content['errcode'] == 0; - if ($result == false) { + if (!$result) { $this->logger->error('Send Message Failed ' . kg_json_encode($content)); } diff --git a/app/Services/Smser.php b/app/Services/Smser.php index 8d470a08..e13fb608 100644 --- a/app/Services/Smser.php +++ b/app/Services/Smser.php @@ -91,7 +91,7 @@ abstract class Smser extends Service $result = $sendStatus->getCode() == 'Ok'; - if ($result == false) { + if (!$result) { $this->logger->error('Send Message Failed ' . $response->toJsonString()); } diff --git a/app/Services/Throttle.php b/app/Services/Throttle.php index 63dd715c..77bc8cbc 100644 --- a/app/Services/Throttle.php +++ b/app/Services/Throttle.php @@ -14,7 +14,7 @@ class Throttle extends Service { $config = $this->getConfig(); - if ($config->path('throttle.enabled') == false) { + if (!$config->path('throttle.enabled')) { return true; } diff --git a/app/Services/WeChatNotice.php b/app/Services/WeChatNotice.php index a6304ac3..7af1a140 100644 --- a/app/Services/WeChatNotice.php +++ b/app/Services/WeChatNotice.php @@ -70,7 +70,7 @@ abstract class WeChatNotice extends Service $result = $response['errcode'] == 0; - if ($result == false) { + if (!$result) { $this->logger->error('Send Template Message Failed ' . kg_json_encode($response)); } diff --git a/app/Validators/Review.php b/app/Validators/Review.php index 56a7f096..b5faf25f 100644 --- a/app/Validators/Review.php +++ b/app/Validators/Review.php @@ -54,7 +54,7 @@ class Review extends Validator public function checkRating($rating) { - if (!in_array($rating, [1, 2, 3, 4, 5])) { + if ($rating < 1 || $rating > 5) { throw new BadRequestException('review.invalid_rating'); } diff --git a/composer.lock b/composer.lock index cc68e67a..2fffa2d1 100644 --- a/composer.lock +++ b/composer.lock @@ -2366,16 +2366,16 @@ }, { "name": "qcloud/cos-sdk-v5", - "version": "v2.5.6", + "version": "v2.6.1", "source": { "type": "git", "url": "https://github.com/tencentyun/cos-php-sdk-v5.git", - "reference": "607ee49d372a799964206b6ae0a9eb2816201c42" + "reference": "d367ba8d0305b83364b64055594a0ac22b1cefd8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/607ee49d372a799964206b6ae0a9eb2816201c42", - "reference": "607ee49d372a799964206b6ae0a9eb2816201c42", + "url": "https://api.github.com/repos/tencentyun/cos-php-sdk-v5/zipball/d367ba8d0305b83364b64055594a0ac22b1cefd8", + "reference": "d367ba8d0305b83364b64055594a0ac22b1cefd8", "shasum": "", "mirrors": [ { @@ -2433,9 +2433,9 @@ ], "support": { "issues": "https://github.com/tencentyun/cos-php-sdk-v5/issues", - "source": "https://github.com/tencentyun/cos-php-sdk-v5/tree/v2.5.6" + "source": "https://github.com/tencentyun/cos-php-sdk-v5/tree/v2.6.1" }, - "time": "2022-06-07T14:49:19+00:00" + "time": "2023-02-07T09:49:12+00:00" }, { "name": "ralouphie/getallheaders", @@ -2489,16 +2489,16 @@ }, { "name": "robmorgan/phinx", - "version": "0.12.12", + "version": "0.12.13", "source": { "type": "git", "url": "https://github.com/cakephp/phinx.git", - "reference": "9a6ce1e7fdf0fa4e602ba5875b5bc9442ccaa115" + "reference": "6eb0f295e140ed2804d93396755f0ce9ada4ec07" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/cakephp/phinx/zipball/9a6ce1e7fdf0fa4e602ba5875b5bc9442ccaa115", - "reference": "9a6ce1e7fdf0fa4e602ba5875b5bc9442ccaa115", + "url": "https://api.github.com/repos/cakephp/phinx/zipball/6eb0f295e140ed2804d93396755f0ce9ada4ec07", + "reference": "6eb0f295e140ed2804d93396755f0ce9ada4ec07", "shasum": "", "mirrors": [ { @@ -2575,9 +2575,9 @@ ], "support": { "issues": "https://github.com/cakephp/phinx/issues", - "source": "https://github.com/cakephp/phinx/tree/0.12.12" + "source": "https://github.com/cakephp/phinx/tree/0.12.13" }, - "time": "2022-07-09T18:53:51+00:00" + "time": "2022-10-03T04:57:40+00:00" }, { "name": "swiftmailer/swiftmailer", @@ -4910,16 +4910,16 @@ }, { "name": "tencentcloud/tencentcloud-sdk-php", - "version": "3.0.731", + "version": "3.0.824", "source": { "type": "git", "url": "https://github.com/TencentCloud/tencentcloud-sdk-php.git", - "reference": "a247a556c120dd7dd95db40035edcde7271fe40d" + "reference": "1d85da7e51ba02defe33fbae0b6dbae0f1d7caf5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/TencentCloud/tencentcloud-sdk-php/zipball/a247a556c120dd7dd95db40035edcde7271fe40d", - "reference": "a247a556c120dd7dd95db40035edcde7271fe40d", + "url": "https://api.github.com/repos/TencentCloud/tencentcloud-sdk-php/zipball/1d85da7e51ba02defe33fbae0b6dbae0f1d7caf5", + "reference": "1d85da7e51ba02defe33fbae0b6dbae0f1d7caf5", "shasum": "", "mirrors": [ { @@ -4957,9 +4957,9 @@ "homepage": "https://github.com/TencentCloud/tencentcloud-sdk-php", "support": { "issues": "https://github.com/TencentCloud/tencentcloud-sdk-php/issues", - "source": "https://github.com/TencentCloud/tencentcloud-sdk-php/tree/3.0.731" + "source": "https://github.com/TencentCloud/tencentcloud-sdk-php/tree/3.0.824" }, - "time": "2022-09-21T00:09:54+00:00" + "time": "2023-02-15T00:03:58+00:00" }, { "name": "webmozart/assert", @@ -5097,16 +5097,16 @@ }, { "name": "workerman/gateway-worker", - "version": "v3.0.25", + "version": "v3.0.27", "source": { "type": "git", "url": "https://github.com/walkor/GatewayWorker.git", - "reference": "5b47eb9a90c6b2afc25327979e41de352cb3c286" + "reference": "c0cae6c0e69288ab7dcc8b25599d3b9e4f4441d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/walkor/GatewayWorker/zipball/5b47eb9a90c6b2afc25327979e41de352cb3c286", - "reference": "5b47eb9a90c6b2afc25327979e41de352cb3c286", + "url": "https://api.github.com/repos/walkor/GatewayWorker/zipball/c0cae6c0e69288ab7dcc8b25599d3b9e4f4441d2", + "reference": "c0cae6c0e69288ab7dcc8b25599d3b9e4f4441d2", "shasum": "", "mirrors": [ { @@ -5116,7 +5116,7 @@ ] }, "require": { - "workerman/workerman": "^4.0.30" + "workerman/workerman": "^4.0.0 || ^5.0.0" }, "type": "library", "autoload": { @@ -5135,7 +5135,7 @@ ], "support": { "issues": "https://github.com/walkor/GatewayWorker/issues", - "source": "https://github.com/walkor/GatewayWorker/tree/v3.0.25" + "source": "https://github.com/walkor/GatewayWorker/tree/v3.0.27" }, "funding": [ { @@ -5147,7 +5147,7 @@ "type": "patreon" } ], - "time": "2022-09-19T09:59:56+00:00" + "time": "2023-02-09T09:16:04+00:00" }, { "name": "workerman/gatewayclient", @@ -5306,16 +5306,16 @@ }, { "name": "yansongda/pay", - "version": "v2.10.4", + "version": "v2.10.5", "source": { "type": "git", "url": "https://github.com/yansongda/pay.git", - "reference": "e378f43800f867d53ce35ee90aa17f0c3b7b5838" + "reference": "f7d93ed784de4ca09d3386d28139c724ddd526fc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/yansongda/pay/zipball/e378f43800f867d53ce35ee90aa17f0c3b7b5838", - "reference": "e378f43800f867d53ce35ee90aa17f0c3b7b5838", + "url": "https://api.github.com/repos/yansongda/pay/zipball/f7d93ed784de4ca09d3386d28139c724ddd526fc", + "reference": "f7d93ed784de4ca09d3386d28139c724ddd526fc", "shasum": "", "mirrors": [ { @@ -5366,7 +5366,7 @@ "issues": "https://github.com/yansongda/pay/issues", "source": "https://github.com/yansongda/pay" }, - "time": "2022-03-10T01:27:10+00:00" + "time": "2022-12-03T13:44:53+00:00" }, { "name": "yansongda/supports", diff --git a/config/config.default.php b/config/config.default.php index 41836295..2ee61586 100644 --- a/config/config.default.php +++ b/config/config.default.php @@ -172,4 +172,19 @@ $config['websocket']['connect_address'] = 'your_domain.com:8282'; */ $config['websocket']['register_address'] = '127.0.0.1:1238'; +/** + * 资源监控: CPU负载(0.1-1.0) + */ +$config['server_monitor']['cpu'] = 0.8; + +/** + * 资源监控: 内存剩余占比(10-100)% + */ +$config['server_monitor']['memory'] = 10; + +/** + * 资源监控: 磁盘剩余占比(10-100)% + */ +$config['server_monitor']['disk'] = 20; + return $config; diff --git a/public/static/home/js/chapter.vod.player.js b/public/static/home/js/chapter.vod.player.js index 9db67992..0af43dbc 100644 --- a/public/static/home/js/chapter.vod.player.js +++ b/public/static/home/js/chapter.vod.player.js @@ -7,6 +7,7 @@ layui.use(['jquery', 'helper'], function () { var intervalTime = 15000; var userId = window.user.id; var requestId = helper.getRequestId(); + var chapterId = $('input[name="chapter.id"]').val(); var planId = $('input[name="chapter.plan_id"]').val(); var lastPosition = $('input[name="chapter.position"]').val(); var learningUrl = $('input[name="chapter.learning_url"]').val(); @@ -59,15 +60,30 @@ layui.use(['jquery', 'helper'], function () { player.toggle(); }); - var position = parseInt(lastPosition); + var position = getLastPosition(); /** - * 过于接近结束位置当作已结束处理 + * 上次播放位置 */ - if (position > 0 && player.video.duration - position > 10) { + if (position > 0) { player.seek(position); } + function getPositionKey() { + return 'chapter:' + chapterId + ':position'; + } + + function getLastPosition() { + var key = getPositionKey(); + var value = localStorage.getItem(key); + return value != null ? parseInt(value) : lastPosition; + } + + function setLastPosition(value) { + var key = getPositionKey(); + localStorage.setItem(key, value); + } + function clearLearningInterval() { if (interval != null) { clearInterval(interval); @@ -91,11 +107,13 @@ layui.use(['jquery', 'helper'], function () { } function ended() { - clearLearningInterval(); learning(); + setLastPosition(0); + clearLearningInterval(); } function learning() { + setLastPosition(player.video.currentTime); if (userId !== '0' && planId !== '0') { $.ajax({ type: 'POST',