Merge branch 'master' into develop

This commit is contained in:
2025-08-11 16:23:02 +08:00
5 changed files with 115 additions and 67 deletions

View File

@@ -395,4 +395,15 @@ class Room extends BaseCom
$reslut = model('Room')->room_online_number($room_id);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
//房间在线列表
public function room_online_list_ceshi()
{
$room_id = input('room_id', 0);
$page = input('page', 1);
$limit = input('limit', 50);
$reslut = model('Room')->room_online_list($room_id, $page, $limit);
return V($reslut['code'], $reslut['msg'], $reslut['data']);
}
}

View File

@@ -98,7 +98,7 @@ class Chat extends Model
'Text' => $content
];
$data = model('Tencent')->send_group_system_notification('room'.$roomId,json_encode($text));
$data = model('api/Tencent')->send_group_system_notification('room'.$roomId,json_encode($text));
if($data['code'] == 0){
Log::record("腾讯发送群消息:".$data['msg'].$type,"info");

View File

@@ -599,7 +599,7 @@ class Room extends Model
foreach ($song_list as $key => $value){
if($value['status'] == 2 && $value['times_status'] == 1){
//切歌
model('RoomSong')->change_song($room_id,$value['did']);
model('api/RoomSong')->change_song($room_id,$value['did']);
}
if($value['status'] == 1){
db::name('vs_room_song')->where(['did' => $value['did']])->update(['status' => 3]);
@@ -617,7 +617,7 @@ class Room extends Model
db::name('vs_room_visitor')->where(['room_id' => $room_user, 'user_id' => $user_id])->delete();
$nickname = db::name('user')->where('id', $user_id)->value('nickname');
$text['text'] = '用户 ' . $nickname .' 退出了房间';
model('Chat')->sendMsg(1002,$room_user,$text,$user_id);
model('api/Chat')->sendMsg(1002,$room_user,$text,$user_id);
}else{
//退出其他房间
$this->quit_room($user_id, $room_user,$user_id);
@@ -655,8 +655,8 @@ class Room extends Model
$value['dress'] = '';
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room['id'], 'user_id' => $value['user_id']])->value('charm');
$value['dress'] = model('Decorate')->user_decorate_detail($value['user_id'], 1);
$value['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6);
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
$value['user_code'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 6);
}
}
$user_pit = db::name('vs_room_pit')->where(['room_id' => $room['id'],'user_id' => $user_id])->find();
@@ -672,7 +672,7 @@ class Room extends Model
if($room_time <= time()){
db::name('vs_room')->where(['id' => $room_id])->update(['room_status' => 3]);
db::name('vs_room_cp_movie')->where(['room_id' => $room['id']])->update(['status' => 2]);
model('Tencent')->delete_group('room'.$room_id);
model('api/Tencent')->delete_group('room'.$room_id);
return ['code' => 0, 'msg' => 'cp房间已到期', 'data' => ''];
}
$room_status = db::name('vs_room_cp_movie')->where(['room_id' => $room['id']])->value('status');
@@ -690,8 +690,8 @@ class Room extends Model
if($cp_users['user_id'] != $user_id && $cp_users['user_id1'] != $user_id){
return ['code' => 0, 'msg' => '您不是房间的cp用户请勿进入', 'data' => ''];
}
$cp_users['dress'] = model('Decorate')->user_decorate_detail($cp_users['user_id'],1);
$cp_users['dress1'] = model('Decorate')->user_decorate_detail($cp_users['user_id1'],1);
$cp_users['dress'] = model('api/Decorate')->user_decorate_detail($cp_users['user_id'],1);
$cp_users['dress1'] = model('api/Decorate')->user_decorate_detail($cp_users['user_id1'],1);
if($cp_users['user_id'] == $user_id){
$room_name = db::name('user')->where('id', $cp_users['user_id1'])->value('nickname');
}
@@ -708,7 +708,7 @@ class Room extends Model
}
$room['is_use_code'] = 0;
$liang = model('Decorate')->user_decorate_detail($room['id'],7);
$liang = model('api/Decorate')->user_decorate_detail($room['id'],7);
if($liang != $room['room_number']){
$room['is_use_code'] = 1;
$room['room_number'] = $liang;
@@ -835,23 +835,23 @@ class Room extends Model
//房主信息
$room_owner = db::name('user')->where('id', $room['user_id'])->field('id as user_id,user_code,sex,nickname,avatar')->find();
$room_owner['user_code'] = model('Decorate')->user_decorate_detail($room['user_id'],6);
$room_owner['user_code'] = model('api/Decorate')->user_decorate_detail($room['user_id'],6);
//当前用户信息
$user_info = $this ->get_user_info($room_id,$user_id,$user_pit,1);//用户进入房间 才会获取声网token更新房间不获取声网token
$user_info['is_room_owner'] = ($user_id == $room['user_id']) ? 1 : 0;
//推送信息
$text['text'] = '欢迎用户 ' . $user_info['nickname'] .' 进入房间';
$text['jia_jia'] = model('Decorate')->user_decorate_detail($user_id,2);
$text['jia_jia'] = model('api/Decorate')->user_decorate_detail($user_id,2);
$text['FromUserInfo'] = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$text['FromUserInfo']['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$text['FromUserInfo']['mic_dress'] = model('Decorate')->user_decorate_detail($user_id,4);
$text['FromUserInfo']['chat_dress'] = model('Decorate')->user_decorate_detail($user_id,5);
model('Chat')->sendMsg(1001,$room_id,$text,$user_id);
$text['FromUserInfo']['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1);
$text['FromUserInfo']['mic_dress'] = model('api/Decorate')->user_decorate_detail($user_id,4);
$text['FromUserInfo']['chat_dress'] = model('api/Decorate')->user_decorate_detail($user_id,5);
model('api/Chat')->sendMsg(1001,$room_id,$text,$user_id);
//记录用户访问记录
if($user_id != $room_owner['user_id']){
model('User')->add_user_visit_log(2,$user_id, $room_id);
model('api/User')->add_user_visit_log(2,$user_id, $room_id);
}
return ['code' => 1,
'msg' => '成功',
@@ -873,18 +873,18 @@ class Room extends Model
public function get_user_info($room_id,$user_id,$user_pit,$is_join = 0)
{
$user_info = db::name('user')->where('id', $user_id)->field('id as user_id,user_code,sex,nickname,avatar')->find();
$user_info['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$user_info['user_code'] = model('Decorate')->user_decorate_detail($user_id,6);
$user_info['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1);
$user_info['user_code'] = model('api/Decorate')->user_decorate_detail($user_id,6);
$user_info['pit_number'] = (isset($user_pit['pit_number'])) ? $user_pit['pit_number'] : 0;
$user_info['count_down'] = 0;
$user_info['is_collect'] = db::name('user_follow')->where(['follow_id' => $room_id,'user_id' => $user_id,'type' => 2])->find() ? 1 : 0;
$user_info['is_host'] = db::name('vs_room_host')->where(['room_id' => $room_id,'user_id' => $user_id,'type' => 1,'delete_time' => null])->find() ? 1 : 0;
$user_info['is_management'] = db::name('vs_room_host')->where(['room_id' => $room_id,'user_id' => $user_id,'type' => 2,'delete_time' => null])->find() ? 1 : 0;
$user_info['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$user_info['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$user_info['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标
$user_info['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标
if($is_join){
$user_info['agora_token'] =model('Agora')->agora_token_info($user_id, $room_id);
$user_info['agora_rtm_token'] = model('Agora')->agora_rtm_token_info($user_id, $room_id);//连麦用的
$user_info['agora_token'] =model('api/Agora')->agora_token_info($user_id, $room_id);
$user_info['agora_rtm_token'] = model('api/Agora')->agora_rtm_token_info($user_id, $room_id);//连麦用的
}
$user_info['is_mute'] = db::name('vs_room_user_muted')->where(['room_id' => $room_id, 'user_id' => $user_id,'status' => 1])->find() ? 1 : 0;
$user_info['is_mute_pit'] = db::name('vs_room_user_muted')->where(['room_id' => $room_id, 'user_id' => $user_id,'status' => 2])->find() ? 1 : 0;
@@ -907,7 +907,7 @@ class Room extends Model
'poster' => $song['poster'],
'duration' => $song['duration'],
'user_id' => $song['user_id'],
'dress' => model('Decorate')->user_decorate_detail($song['user_id'], 1),
'dress' => model('api/Decorate')->user_decorate_detail($song['user_id'], 1),
'nickname' => db::name('user')->where('id',$song['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$song['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where(['user_id' =>$song['user_id'],'room_id' => $room_id])->value('charm'),
@@ -926,7 +926,7 @@ class Room extends Model
'poster' => $data[0]['poster'],
'duration' => $data[0]['duration'],
'user_id' => $data[0]['user_id'],
'dress' => model('Decorate')->user_decorate_detail($data[0]['user_id'], 1),
'dress' => model('api/Decorate')->user_decorate_detail($data[0]['user_id'], 1),
'nickanme' => db::name('user')->where('id',$data[0]['user_id'])->value('nickname'),
'avatar' => db::name('user')->where('id',$data[0]['user_id'])->value('avatar'),
'charm' => db::name('vs_room_user_charm')->where('user_id',$data[0]['user_id'])->value('charm'),
@@ -943,19 +943,19 @@ class Room extends Model
$value['dress'] = '';
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $value['user_id']])->value('charm') ?? 0;
$value['dress'] = model('Decorate')->user_decorate_detail($value['user_id'], 1);
$value['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6);
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
$value['user_code'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 6);
}
}
$song_pit_list = db::name('vs_room_pit_simulate')->where(['room_id' => $room_id])->select();
if($song_pit_list){
foreach ($song_pit_list as &$value){
$value['dress'] = model('Decorate')->user_decorate_detail($value['user_id'], 1);
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
$value['nickname'] = db::name('user')->where('id',$value['user_id'])->value('nickname');
$value['avatar'] = db::name('user')->where('id',$value['user_id'])->value('avatar');
$value['sex'] = db::name('user')->where('id',$value['user_id'])->value('sex');
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $value['user_id']])->value('charm') ?? 0;
$value['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6);
$value['user_code'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 6);
$value['is_lock'] = 0;
$value['is_mute'] = 0;
$value['count_down'] = 0;
@@ -995,14 +995,14 @@ class Room extends Model
->where(['a.room_id' => $room_id,'a.status' => 2])->find();
// var_dump($auction);exit;
if($auction){
$auction['dress'] = model('Decorate')->user_decorate_detail($auction['user_id'], 1);
$auction['dress'] = model('api/Decorate')->user_decorate_detail($auction['user_id'], 1);
$auction['relation_name'] = db::name('vs_relation')->where('id',$auction['relation_id'])->value('name');
$auction['relation_icon'] = db::name('vs_relation')->where('id',$auction['relation_id'])->value('icon');
$auction['base_image'] = db::name('vs_gift')->where('gid',$auction['gift_id'])->value('base_image');
$auction['gift_name'] = db::name('vs_gift')->where('gid',$auction['gift_id'])->value('gift_name');
$auction['time_day'] = $auction['time_day'] / 60 / 60;
$auction['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $auction['user_id']])->value('charm') ?? 0;
$auction_list = model('RoomAuction')->room_auction_list_on($auction['auction_id']);
$auction_list = model('api/RoomAuction')->room_auction_list_on($auction['auction_id']);
$auction_user = $auction;
if($auction['user_id'] == $user_id){
$user_pit['pit_number'] = 888;
@@ -1018,7 +1018,7 @@ class Room extends Model
}else{
$auction_list = null;
$users = db::name('user')->where('id',$catdc)->field('id as user_id,nickname,avatar,sex,user_code')->find();
$users['dress'] = model('Decorate')->user_decorate_detail($catdc, 1);
$users['dress'] = model('api/Decorate')->user_decorate_detail($catdc, 1);
$users['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $catdc])->value('charm') ?? 0;
$auction_user = $users;
if($catdc == $user_id){
@@ -1039,8 +1039,8 @@ class Room extends Model
$value['dress'] = '';
if (isset($value['user_id']) && $value['user_id'] > 0) {
$value['charm'] = db::name('vs_room_user_charm')->where(['room_id' => $room_id, 'user_id' => $value['user_id']])->value('charm') ?? 0;
$value['dress'] = model('Decorate')->user_decorate_detail($value['user_id'], 1);
$value['user_code'] = model('Decorate')->user_decorate_detail($value['user_id'], 6);
$value['dress'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 1);
$value['user_code'] = model('api/Decorate')->user_decorate_detail($value['user_id'], 6);
if($value['user_id'] == $user_id){
$user_pit['pit_number'] = 9;
}
@@ -1059,7 +1059,7 @@ class Room extends Model
$nickname = db::name('user')->where('id', $user_id)->value('nickname');
}
if($type == 1){
if(!model('QuanXian')->quan_xian($uid, $user_id, $room_id)){
if(!model('api/QuanXian')->quan_xian($uid, $user_id, $room_id)){
return ['code' => 0, 'msg' => '您没有权限操作', 'data' => null];
}
}
@@ -1067,7 +1067,7 @@ class Room extends Model
//记录用户退出房
db::name('vs_room_visitor')->where(['room_id' => $room_id, 'user_id' => $user_id])->delete();
//房间的模式
$res = model('Room')->get_room_label($room_id);
$res = model('api/Room')->get_room_label($room_id);
$room_label = $res['data']['label_id'];
$room_type = $res['data']['type_id'];
@@ -1082,30 +1082,30 @@ class Room extends Model
//在麦位上 移除用户
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if (isset($room_pit)) {
model('RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
}
}elseif ($apply_type == 2){
//在麦位上 移除用户
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if (isset($room_pit)) {
model('RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
}
if(db::name('vs_room_pit_simulate')->where(['room_id' => $room_id, 'user_id' => $user_id])->find()){
db::name('vs_room_pit_simulate')->where(['room_id' => $room_id, 'user_id' => $user_id])->delete();
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标
//推送告诉前端下了几号麦位
$text['text'] = $FromUserInfo['nickname'].' 下麦了 ';
$text['FromUserInfo'] = $FromUserInfo;
$text['pit_number'] = '';
model('Chat')->sendMsg(1004,$room_id,$text);
model('api/Chat')->sendMsg(1004,$room_id,$text);
}
}else{
//在麦位上 移除用户
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
if (isset($room_pit)) {
model('RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
}
}
@@ -1115,9 +1115,9 @@ class Room extends Model
db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $user_id])->delete();
}
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
$FromUserInfo['icon'][0] = model('api/UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('api/UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('api/Decorate')->user_decorate_detail($user_id,1);
$text['FromUserInfo'] = $FromUserInfo;
//1-踢出房间
@@ -1136,14 +1136,14 @@ class Room extends Model
//发送消息
$text['text'] = '用户 ' . $nickname . ' 被 '. $room_typer .' 踢出房间';
model('Chat')->sendMsg(1011,$room_id,$text,$user_id);
model('api/Chat')->sendMsg(1011,$room_id,$text,$user_id);
//1-禁麦位2-清空消息3-清空魅力值4-加入黑名单5-踢出房间6-关闭麦克风7-申请上麦8-同意上麦9-拒绝上麦10-点歌11-开启PK',
model('Room')->room_operation_record($uid,$room_id,5,$user_id);
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
}
if($type == 0){
//发送消息
$text['text'] = '用户 ' . $nickname .' 退出了房间';
model('Chat')->sendMsg(1002,$room_id,$text,$user_id);
model('api/Chat')->sendMsg(1002,$room_id,$text,$user_id);
}
return ['code' => 1, 'msg' => '成功','data' => []];
}
@@ -1268,11 +1268,19 @@ class Room extends Model
$dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
//循环获取在线用户ID 拼接数据
$user_id_array = [];
//机器人user_id
$robot_user_id = [];
foreach ($dblist as $v) {
//机器人
if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
$robot_user_id[] = $v['user_id'];
continue;
}
$user_id_array[] = 'u'.$v['user_id'];
}
//获取腾讯的在线用户
$online_users = model('Tencent')->query_user_online_status($user_id_array);
$online_user = [];
if(isset($online_users['ActionStatus']) && $online_users['ActionStatus'] == 'OK'){
if($online_users['QueryResult']){
foreach ($online_users['QueryResult'] as $v){
@@ -1284,12 +1292,12 @@ class Room extends Model
}
}
}
if(empty($online_user)){
$online_user = [];
}
if($dblist){
$onpit = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $room_id])->select();
$array = $online_user;
//合并数组
$array = array_merge($online_user,$robot_user_id);
// $array = $online_user;
$arraypit = array_values((array)$onpit);
foreach ($dblist as &$v){
// if(in_array($v['user_id'],$arraypit)){
@@ -2421,19 +2429,29 @@ class Room extends Model
return ['code' => 1, 'msg' => '操作成功', 'data' => null];
}
//房间在线人数
//房间在线人
public function room_online_number($room_id)
{
if(!$room_id){
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
}
//查找数据库用户
$dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
$num_robit = 0;
foreach ($dblist as $v) {
//机器人
if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
$num_robit++;
}
}
$room_online_number = model('Tencent')->get_group_online_num($room_id);
if($room_online_number['ActionStatus'] != 'OK'){
return ['code' => 0, 'msg' => $room_online_number['ErrorInfo'].'-'.$room_online_number['ErrorCode'], 'data' => null];
}
$data = [
'online_number' => $room_online_number['OnlineMemberNum'],
'online_number' => $room_online_number['OnlineMemberNum'] + $num_robit,
];
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];

View File

@@ -11,7 +11,7 @@ class RoomAuction extends Model
//房间关系列表
public function room_relation_list($type_id)
{
$list = db::name('vs_relation')->field('id as relation_id,name,type,icon')->where('type',$type_id)->select();
$list = db::name('vs_relation')->field('id as relation_id,name,type,icon')->where(['type' => $type_id,'delete_time' => 0])->select();
return ['code' => 1, 'msg' => '操作成功','data' => $list];
}

View File

@@ -3,6 +3,7 @@
namespace app\common\controller;
use think\Controller;
use think\Db;
class BaseCom extends Controller
@@ -24,22 +25,40 @@ class BaseCom extends Controller
if($is_maintenance == 2){
return V(203, '系统维护中');
}
$token = input('token', '');
if (empty($token)) {
$token = request()->header('token');
if(empty($token)){
return V(301, '登录失效');
}
//检测是什么系统
$system = input('system','');
if(empty($system)){
$system = request()->header('system');
}
$reslut = model('UserToken')->check_login_token($token);
if($reslut['code'] != 1) {
model('UserToken')->where('token', $token)->update(['token' => 1]);
return V($reslut['code'], $reslut['msg'],$reslut['data']);
} else {
$this->uid = $reslut['data'];
//版本号
$version = input('App-Version','');
if(empty($version)){
$version = request()->header('App-Version');
}
$zhenshi_version = db::name('version')->where('type', 2)->value('oldversion');
$result = version_compare($version,$zhenshi_version);
if($system == 'iOS' && $result > 0){
$this->uid = 0;
//定义一个常量
define('UID', $this->uid);
}else{
$token = input('token', '');
if (empty($token)) {
$token = request()->header('token');
if(empty($token)){
return V(301, '登录失效');
}
}
$reslut = model('UserToken')->check_login_token($token);
if($reslut['code'] != 1) {
model('UserToken')->where('token', $token)->update(['token' => 1]);
return V($reslut['code'], $reslut['msg'],$reslut['data']);
} else {
$this->uid = $reslut['data'];
//定义一个常量
define('UID', $this->uid);
}
}
}