Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -1175,6 +1175,12 @@ class Room extends Model
|
|||||||
//1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK',
|
//1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK',
|
||||||
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
|
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
|
||||||
}
|
}
|
||||||
|
if($type == 2){
|
||||||
|
$text['text'] = '用户 ' . $nickname . ' 被 踢出房间';
|
||||||
|
model('api/Chat')->sendMsg(1011,$room_id,$text,$user_id);
|
||||||
|
//1-禁麦位,2-清空消息,3-清空魅力值,4-加入黑名单,5-踢出房间,6-关闭麦克风,7-申请上麦,8-同意上麦,9-拒绝上麦,10-点歌,11-开启PK',
|
||||||
|
model('api/Room')->room_operation_record($uid,$room_id,5,$user_id);
|
||||||
|
}
|
||||||
if($type == 0){
|
if($type == 0){
|
||||||
//发送消息
|
//发送消息
|
||||||
$text['text'] = '用户 ' . $nickname .' 退出了房间';
|
$text['text'] = '用户 ' . $nickname .' 退出了房间';
|
||||||
@@ -1315,82 +1321,82 @@ class Room extends Model
|
|||||||
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
|
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取在房间的用户
|
// //获取在房间的用户
|
||||||
// $in_room_users = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
|
//// $in_room_users = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
|
||||||
// if($in_room_users){
|
//// if($in_room_users){
|
||||||
// foreach ($in_room_users as $v){
|
//// foreach ($in_room_users as $v){
|
||||||
// $userss = db::name('user')->where(['id' => $v['user_id']])->field('is_online,is_robot')->find();
|
//// $userss = db::name('user')->where(['id' => $v['user_id']])->field('is_online,is_robot')->find();
|
||||||
// if($userss['is_online'] == 1 && $userss['is_robot'] == 1){//在线或者机器人都设置为在线
|
//// if($userss['is_online'] == 1 && $userss['is_robot'] == 1){//在线或者机器人都设置为在线
|
||||||
// db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 1]);
|
//// db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 1]);
|
||||||
// }else{
|
//// }else{
|
||||||
// db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 0]);
|
//// db::name('vs_room_visitor')->where(['id' => $v['id']])->update(['on_line' => 0]);
|
||||||
|
//// }
|
||||||
|
//// }
|
||||||
|
//// }
|
||||||
|
//
|
||||||
|
// //查找数据库用户
|
||||||
|
// $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){
|
||||||
|
// if($v['Status'] == "Online"){
|
||||||
|
// //截取用户ID前面的 u 并获取用户ID
|
||||||
|
// $user_id = substr($v['To_Account'],1);
|
||||||
|
// $online_user[] = $user_id;
|
||||||
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
//
|
||||||
//查找数据库用户
|
// if($dblist){
|
||||||
$dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
|
// $onpit = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $room_id])->select();
|
||||||
//循环获取在线用户ID 拼接数据
|
// //合并数组
|
||||||
$user_id_array = [];
|
// $array = array_merge($online_user,$robot_user_id);
|
||||||
//机器人user_id
|
//// $array = $online_user;
|
||||||
$robot_user_id = [];
|
// $arraypit = array_values((array)$onpit);
|
||||||
foreach ($dblist as $v) {
|
// foreach ($dblist as &$v){
|
||||||
//机器人
|
//// if(in_array($v['user_id'],$arraypit)){
|
||||||
if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
|
//// //跳过本次循环
|
||||||
$robot_user_id[] = $v['user_id'];
|
//// continue;
|
||||||
continue;
|
//// }
|
||||||
}
|
// if(!in_array($v['user_id'],$array)){
|
||||||
$user_id_array[] = 'u'.$v['user_id'];
|
// //修改他的状态
|
||||||
}
|
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 0]);
|
||||||
//获取腾讯的在线用户
|
// //查询他是否在其他房间
|
||||||
$online_users = model('Tencent')->query_user_online_status($user_id_array);
|
// $room_id_list = db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>['neq',$room_id]])->find();
|
||||||
$online_user = [];
|
// if($room_id_list){
|
||||||
if(isset($online_users['ActionStatus']) && $online_users['ActionStatus'] == 'OK'){
|
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id']])->delete();
|
||||||
if($online_users['QueryResult']){
|
// }
|
||||||
foreach ($online_users['QueryResult'] as $v){
|
// }else{
|
||||||
if($v['Status'] == "Online"){
|
// //修改他的状态
|
||||||
//截取用户ID前面的 u 并获取用户ID
|
// db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 1]);
|
||||||
$user_id = substr($v['To_Account'],1);
|
|
||||||
$online_user[] = $user_id;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if($dblist){
|
|
||||||
$onpit = db::name('vs_room_pit')->field('user_id')->where(['room_id' => $room_id])->select();
|
|
||||||
//合并数组
|
|
||||||
$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)){
|
|
||||||
// //跳过本次循环
|
|
||||||
// continue;
|
|
||||||
// }
|
// }
|
||||||
if(!in_array($v['user_id'],$array)){
|
// }
|
||||||
//修改他的状态
|
// }else{
|
||||||
db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 0]);
|
// $lists = ['on_pit' => [], 'off_pit' => []];
|
||||||
//查询他是否在其他房间
|
// return ['code' => 1, 'msg' => '成功', 'data' => $lists];
|
||||||
$room_id_list = db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>['neq',$room_id]])->find();
|
// }
|
||||||
if($room_id_list){
|
|
||||||
db::name('vs_room_visitor')->where(['user_id' => $v['user_id']])->delete();
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
//修改他的状态
|
|
||||||
db::name('vs_room_visitor')->where(['user_id' => $v['user_id'],'room_id'=>$room_id])->update(['on_line' => 1]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
$lists = ['on_pit' => [], 'off_pit' => []];
|
|
||||||
return ['code' => 1, 'msg' => '成功', 'data' => $lists];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$list = db::name('vs_room_visitor')->alias('a')
|
$list = db::name('vs_room_visitor')->alias('a')
|
||||||
->join('user b', 'a.user_id = b.id')
|
->join('user b', 'a.user_id = b.id')
|
||||||
->field('a.user_id,b.nickname,b.avatar')
|
->field('a.user_id,b.nickname,b.avatar')
|
||||||
->where(['a.room_id' => $room_id,'on_line' => 1])
|
->where(['a.room_id' => $room_id,'b.is_online' => 1])
|
||||||
->order('a.id asc')
|
->order('a.id asc')
|
||||||
->page($page, $limit)
|
->page($page, $limit)
|
||||||
->select();
|
->select();
|
||||||
@@ -1704,18 +1710,19 @@ class Room extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
if($uid <= 0){
|
if($uid <= 0){
|
||||||
|
db::name('vs_room_user_charm')->where(['room_id' => $room_id])->update(['charm' => 0,'clear_time' => time()]);
|
||||||
//获取房间内所有用户
|
//获取房间内所有用户
|
||||||
$list = db::name('vs_room_visitor')->field('user_id')->where(['room_id' => $room_id])->select();
|
// $list = db::name('vs_room_visitor')->field('user_id')->where(['room_id' => $room_id])->select();
|
||||||
|
//
|
||||||
//循环清除用户魅力值
|
// //循环清除用户魅力值
|
||||||
if($list){
|
// if($list){
|
||||||
foreach ($list as $v){
|
// foreach ($list as $v){
|
||||||
//清除有魅力值的用户
|
// //清除有魅力值的用户
|
||||||
if(db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->find()){
|
// if(db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->find()){
|
||||||
db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0,'clear_time' => time()]);
|
// db::name('vs_room_user_charm')->where(['room_id' => $room_id,'user_id' => $v['user_id']])->update(['charm' => 0,'clear_time' => time()]);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
//发送消息
|
//发送消息
|
||||||
$text['text'] = '清除魅力成功';
|
$text['text'] = '清除魅力成功';
|
||||||
model('Chat')->sendMsg(1021,$room_id,$text);
|
model('Chat')->sendMsg(1021,$room_id,$text);
|
||||||
|
|||||||
@@ -919,11 +919,15 @@ class Tencent extends Model
|
|||||||
|
|
||||||
if($quit_room) {
|
if($quit_room) {
|
||||||
foreach ($quit_room as &$v){
|
foreach ($quit_room as &$v){
|
||||||
$text['text'] = '杀进程!';
|
$room_type = db::name('vs_room')->where(['id' => $v['room_id'],'room_status' => 1])->field('step,type_id')->find();
|
||||||
$text['user_id'] = $uid;
|
if(($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
|
||||||
$text['type'] = 0;
|
$text['text'] = '掉线!';
|
||||||
model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
$text['user_id'] = $uid;
|
||||||
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id']);
|
$text['type'] = 2;
|
||||||
|
model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
||||||
|
}else{
|
||||||
|
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -937,9 +941,9 @@ class Tencent extends Model
|
|||||||
}elseif ($action == 'Logout'){
|
}elseif ($action == 'Logout'){
|
||||||
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
||||||
$room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
|
$room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
|
||||||
$text['text'] = '重新上线!';
|
$text['text'] = '掉线!';
|
||||||
$text['user_id'] = $uid;
|
$text['user_id'] = $uid;
|
||||||
$text['type'] = 0;
|
$text['type'] = 2;
|
||||||
model('Chat')->sendMsg(1058,$room,$text);
|
model('Chat')->sendMsg(1058,$room,$text);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user