104 lines
3.1 KiB
PHP
104 lines
3.1 KiB
PHP
<?php
|
|
|
|
namespace app\admin\model;
|
|
|
|
use think\Db;
|
|
use think\Model;
|
|
|
|
class Agora extends Model
|
|
{
|
|
protected $insert = [
|
|
'add_time',
|
|
];
|
|
protected $update = ['update_time'];
|
|
|
|
|
|
protected function setAddTimeAttr()
|
|
{
|
|
return time();
|
|
}
|
|
|
|
protected function setUpdateTimeAttr()
|
|
{
|
|
return time();
|
|
}
|
|
|
|
|
|
//获取房间音乐列表
|
|
public function agora_song_list($aid, $song_name, $singer, $order, $sort, $page = 1, $limit = 20)
|
|
{
|
|
$map = [];
|
|
if (!empty($aid)) {
|
|
$map[] = ['aid', '=', $aid];
|
|
}
|
|
if (!empty($song_name)) {
|
|
$map[] = ['song_name', 'like', '%' . $song_name . '%'];
|
|
}
|
|
if (!empty($singer)) {
|
|
$map[] = ['singer', 'like', '%' . $singer . '%'];
|
|
}
|
|
|
|
$map[] = ['is_delete', '=', 1];
|
|
$song_list = db::name('agora_song')->where($map)->order($order, $sort)->page($page, $limit)->select();
|
|
$data = [];
|
|
$data['count'] = db::name('agora_song')->where($map)->count();
|
|
$data['list'] = $song_list;
|
|
return ['code' => 200, 'msg' => '获取成功', 'data' => $data];
|
|
}
|
|
|
|
//同步歌曲
|
|
public function synchro_song(){
|
|
//查看当前数据库存留歌曲
|
|
$song = db::name('agora_song')->where('is_delete',1)->order('aid desc')->limit(1)->find();
|
|
if(empty($song)){
|
|
$datas = model('api/Agora')->agora_song_list(0, 1000, 0);
|
|
}else{
|
|
$datas = model('api/Agora')->agora_song_list(0, 1000, $song['song_code']);
|
|
}
|
|
if(empty($datas['data']['list'])){
|
|
return ['code' => 201, 'msg' => '暂无更多歌曲', 'data' => null];
|
|
}
|
|
|
|
$data = [];
|
|
$data_array = [];
|
|
foreach ($datas['data']['list'] as $k => $v){
|
|
$data['song_code'] = $v['songCode'];
|
|
$data['song_name'] = $v['name'];
|
|
$data['singer'] = $v['singer'];
|
|
$data['poster'] = $v['poster'];
|
|
$data['duration'] = $v['duration'];
|
|
$data['type'] = $v['type'];
|
|
$data['release_time'] = strtotime($v['releaseTime']);
|
|
$data['status'] = $v['status'];
|
|
$data['add_time'] = time();
|
|
if(!empty($v['mv'])){
|
|
$data['mv'] = json_encode($v['mv'],true);
|
|
}
|
|
$data_array[] = $data;
|
|
}
|
|
// dump($data_array);exit;
|
|
$result = db::name('agora_song')->insertAll($data_array);
|
|
if($result){
|
|
return ['code' => 200, 'msg' => '更新成功', 'data' => null];
|
|
}else{
|
|
return ['code' => 201, 'msg' => '更新失败', 'data' => null];
|
|
}
|
|
}
|
|
|
|
|
|
//增量歌曲
|
|
public function increment_song(){
|
|
//查看当前数据库存留歌曲
|
|
$song = db::name('agora_song')->where('is_delete', 1)->order('aid desc')->limit(1)->find();
|
|
if(empty($song)){
|
|
return ['code' => 201, 'msg' => '请先去同步歌曲', 'data' => null];
|
|
}else{
|
|
$datas = model('api/Agora')->agora_new_song_list(1, 1000, $song['add_time']);
|
|
}
|
|
|
|
dump($datas);exit;
|
|
|
|
}
|
|
|
|
}
|