Files
2025-08-11 10:22:05 +08:00

192 lines
6.1 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\controller;
use think\Controller;
class Agora extends Common
{
protected function initialize()
{
$validate_action_list = ['get_code',"get_sstoken",'update_sstoken','get_user_info','report_game_info'];
$action = request()->action();
if(!in_array($action, $validate_action_list)) {
parent::initialize();
}
}
//---------------------游戏相关服务-------------------------------------------
/**
* 登录接口获取针对当前用户UID的短期令牌Code
* 调用方APP端
*/
public function get_code(){
$uid = input('uid', 0);
$reslut = model('AgoraAuth')->get_code($uid);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
/**
* 短期令牌Code更换长期令牌SSToken
* 调用方:游戏服务
*
*/
public function get_sstoken(){
// $code = input('code', '');
$data = input('post.');
$reslut = model('AgoraAuth')->get_sstoken($data);
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
return json($reslut);
}
/**
* 刷新长期令牌
* 调用方:游戏服务
*
*/
public function update_sstoken(){
// $token = input('ss_token', '');
$data = input('post.');
$reslut = model('AgoraAuth')->update_sstoken($data);
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
return json($reslut);
}
/**
* 获取用户信息
* 调用方:游戏服务
*
*/
public function get_user_info(){
// $token = input('ss_token', '');
$data = input('post.');
$reslut = model('AgoraAuth')->get_user_info($data);
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
return json($reslut);
}
/**
* 游戏服务端上报游戏接入方的游戏的数据
* 调用方:游戏服务
*
*/
public function report_game_info(){
// $report_type = input('report_type', '');
// $report_msg = input('report_msg', '');
// $uid = input('uid', 0);
// $ss_token = input('ss_token', '');
// $reslut = model('AgoraAuth')->report_game_info($report_type, $report_msg, $uid, $ss_token);
$data = input('post.');
$reslut = model('AgoraAuth')->report_game_info($data);
// return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
return json($reslut);
}
//获取歌曲列表
public function agora_song_list(){
// dump(111);exit;
$page = input('page',0);
$song_code = input('song_code',0);
$page_limit = input('page_limit',20);
$key_name = "api:agora:agora_song_list:".$song_code;
redis_lock_exit($key_name);
$reslut = model('Agora')->agora_song_list($page,$page_limit,$song_code);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//获取增量歌曲列表
public function agora_new_song_list(){
$page = input('page', 0);
$page_limit = input('page_limit',20);
$add_time = input('add_time', 0);
$reslut = model('Agora')->agora_new_song_list($page, $page_limit, $add_time);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//获取指定歌曲详情
public function agora_song_info(){
$song_code = input('song_code',0);
$lyric_type = input('lyric_type',0);
$key_name = "api:agora:agora_song_info:".$song_code;
redis_lock_exit($key_name);
$reslut = model('Agora')->agora_song_info($song_code, $lyric_type);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
/**********************************************分 割 线***********************************************************/
//同步热门歌曲
public function synchro_hot_song(){
$hot_type = input('hot_type', 1);
$key_name = "api:agora:synchro_hot_song";
redis_lock_exit($key_name);
$reslut = model('Agora')->synchro_hot_song($hot_type);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//获取热门歌曲列表
public function hot_song_list(){
$page = input('page', 1);
$page_limit = input('page_limit', 20);
$reslut = model('Agora')->hot_song_list($page, $page_limit);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//获得歌曲列表
public function song_list(){
$name = input('name','');
$page = input('page', 1);
$page_limit = input('page_limit', 20);
$reslut = model('Agora')->song_list($name, $page, $page_limit);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//点歌
public function dot_song(){
$rid = input('rid', 0);
$song_code = input('song_code', '');
$is_accapella = input('is_accapella', 2);
$key_name = "api:agora:dot_song:".$this->uid;
redis_lock_exit($key_name);
$reslut = model('Agora')->dot_song($this->uid, $rid, $song_code,$is_accapella);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//取消点歌
public function dot_song_del(){
$rid = input('rid', 0);
$song_code = input('song_code', '');
$key_name = "api:agora:dot_song_del:".$this->uid;
redis_lock_exit($key_name);
$reslut = model('Agora')->dot_song_del($this->uid, $rid, $song_code);
redis_unlock($key_name);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
//点歌列表
public function dot_song_list(){
$rid = input('rid', 0);
$reslut = model('Agora')->dot_song_list($rid);
return ajaxReturn($reslut['code'], $reslut['msg'], $reslut['data']);
}
}