初始化项目:添加后端代码、ThinkPHP框架、前端资源
This commit is contained in:
@@ -0,0 +1,120 @@
|
||||
<?php
|
||||
|
||||
namespace app\admin\model\live;
|
||||
|
||||
use think\Model;
|
||||
use fast\Random;
|
||||
use app\admin\model\live\Room;
|
||||
class Config extends Model
|
||||
{
|
||||
|
||||
/**
|
||||
* 适用于单独调整的配置名称
|
||||
* @var \string[][]
|
||||
*/
|
||||
protected $adjustConfigField = [
|
||||
'play_back'=>['play_back','play_back_type','play_back_validity_time','play_back_save_type','play_back_record'],
|
||||
'operate'=>['notice','views','bullet_screen','comment_audit','like','discuss_public','goods','bantalk','gift'],
|
||||
];
|
||||
|
||||
|
||||
/**
|
||||
* 向新建的课程同步全局配置
|
||||
* @param $courseId
|
||||
* @return array 合并后的配置
|
||||
*/
|
||||
public function syncConfig($courseId){
|
||||
|
||||
$data = \app\common\model\app\Config::getConfig('live');
|
||||
|
||||
if(!$data){
|
||||
return new \app\common\exception\Exception('请先进行通用设置');
|
||||
}
|
||||
|
||||
$adjustConfigField = array_merge($this->adjustConfigField['play_back'],$this->adjustConfigField['operate']);
|
||||
|
||||
$config = [];
|
||||
|
||||
foreach ($data as $key => $item){
|
||||
if(in_array($key,$adjustConfigField)){
|
||||
$config[$key] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
$parseConfig = json_encode($config,true);
|
||||
|
||||
Room::where([
|
||||
'course_id'=>$courseId,
|
||||
])->update([
|
||||
'config'=>$parseConfig
|
||||
]);
|
||||
|
||||
return $config;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 单独调整配置
|
||||
* 用于课程的独立设置
|
||||
* @return void
|
||||
*/
|
||||
public function adjustConfig($courseId,$config){
|
||||
$courseConfig = $this->getCourseConfig($courseId);
|
||||
if(isset($courseConfig['play_back_record']) && isset($config['play_back_record']) && $courseConfig['play_back_record'] != $config['play_back_record']){
|
||||
if($config['play_back_record'] == 1){
|
||||
(new \app\admin\model\live\Playback)->openLiveRecord($courseId,$config);
|
||||
}else{
|
||||
(new \app\admin\model\live\Playback)->closeLiveRecord($courseId);
|
||||
}
|
||||
}
|
||||
|
||||
if(isset($config['play_back_record']) && $config['play_back_record'] == 1){
|
||||
if(isset($courseConfig['play_back_save_type']) && $courseConfig['play_back_save_type'] != $config['play_back_save_type']){
|
||||
(new \app\admin\model\live\Playback)->closeLiveRecord($courseId);
|
||||
(new \app\admin\model\live\Playback)->openLiveRecord($courseId,$config);
|
||||
}
|
||||
}
|
||||
$courseConfig = array_merge($courseConfig,$config);
|
||||
$config = json_encode($courseConfig);
|
||||
|
||||
Room::where([
|
||||
'course_id'=>$courseId,
|
||||
])->cache(\app\common\constant\cache\Keys::LIVE_ROOM_CONFIG.$courseId)->update([
|
||||
'config'=>$config
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定课程的指定配置
|
||||
* @param $courseId
|
||||
* @param $type 配置类型
|
||||
* @return void
|
||||
*/
|
||||
public function getCourseConfig($courseId,$type = null){
|
||||
|
||||
|
||||
$row = Room::where([
|
||||
'course_id'=>$courseId,
|
||||
])->field('config')->find();
|
||||
|
||||
if(!$row){
|
||||
return new \app\common\exception\Exception('获取失败');
|
||||
}
|
||||
|
||||
$data = [];
|
||||
|
||||
$config = json_decode($row['config'],true);
|
||||
|
||||
if($type){
|
||||
foreach ($config as $name => $val){
|
||||
if(in_array($name,$this->adjustConfigField[$type])){
|
||||
$data[$name] = $val;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$data = $config;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user