1
0
mirror of https://gitee.com/koogua/course-tencent-cloud.git synced 2025-06-23 03:50:56 +08:00
2020-09-17 21:29:29 +08:00

60 lines
1.5 KiB
PHP

<?php
namespace App\Services\Logic\Danmu;
use App\Models\Danmu as DanmuModel;
use App\Models\User as UserModel;
use App\Services\Logic\ChapterTrait;
use App\Services\Logic\Service;
use App\Validators\Danmu as DanmuValidator;
use App\Validators\UserLimit as UserLimitValidator;
class DanmuCreate extends Service
{
use ChapterTrait;
public function handle()
{
$post = $this->request->getPost();
$user = $this->getLoginUser();
$chapter = $this->checkChapter($post['chapter_id']);
$validator = new UserLimitValidator();
$validator->checkDailyDanmuLimit($user);
$validator = new DanmuValidator();
$danmu = new DanmuModel();
$data = [];
$data['text'] = $validator->checkText($post['text']);
$data['position'] = $validator->checkPosition($post['position']);
$data['color'] = $validator->checkColor($post['color']);
$data['size'] = $validator->checkSize($post['size']);
$data['time'] = $validator->checkTime($post['time']);
$data['course_id'] = $chapter->course_id;
$data['chapter_id'] = $chapter->id;
$data['owner_id'] = $user->id;
$data['published'] = 1;
$danmu->create($data);
$this->incrUserDailyDanmuCount($user);
return $danmu;
}
protected function incrUserDailyDanmuCount(UserModel $user)
{
$this->eventsManager->fire('userDailyCounter:incrDanmuCount', $this, $user);
}
}