Files
mier-php/application/admin/model/Agora.php
2025-08-11 10:22:05 +08:00

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;
}
}