Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -215,7 +215,7 @@ class Room extends BaseCom
|
|||||||
{
|
{
|
||||||
$room_id = input('room_id', 0);
|
$room_id = input('room_id', 0);
|
||||||
$page = input('page', 1);
|
$page = input('page', 1);
|
||||||
$limit = input('limit', 50);
|
$limit = input('limit', 5);
|
||||||
$reslut = model('Room')->room_online_list($room_id, $page, $limit);
|
$reslut = model('Room')->room_online_list($room_id, $page, $limit);
|
||||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||||
}
|
}
|
||||||
@@ -425,16 +425,6 @@ class Room extends BaseCom
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//房间在线列表
|
|
||||||
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']);
|
|
||||||
}
|
|
||||||
|
|
||||||
//房间用户当前魅力值列表
|
//房间用户当前魅力值列表
|
||||||
public function room_user_charm_list()
|
public function room_user_charm_list()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -34,8 +34,10 @@ class Sms extends Api
|
|||||||
//检测是否注销过
|
//检测是否注销过
|
||||||
$config_time = get_system_config_value('cancel_no_login');
|
$config_time = get_system_config_value('cancel_no_login');
|
||||||
$is_del = db::name('user')->where(['mobile' => $mobile,'delete_time' => ['<>', 0]])->find();
|
$is_del = db::name('user')->where(['mobile' => $mobile,'delete_time' => ['<>', 0]])->find();
|
||||||
if (time() - $is_del['delete_time'] < $config_time * 24 * 3600) {//30天内注销过
|
if ($is_del) {
|
||||||
return V(0, '注销30天内,不可操作。');
|
if (time() - $is_del['delete_time'] < $config_time * 24 * 3600) {//30天内注销过
|
||||||
|
return V(0, '注销30天内,不可操作。');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//频率控制
|
//频率控制
|
||||||
|
|||||||
@@ -167,7 +167,18 @@ class Friend extends Model
|
|||||||
->where(['id'=>$friending_heart['id']])
|
->where(['id'=>$friending_heart['id']])
|
||||||
->update(['status' => 3,'friend_config_id' =>$friending_config_id]);
|
->update(['status' => 3,'friend_config_id' =>$friending_config_id]);
|
||||||
$msg = '';
|
$msg = '';
|
||||||
if ($originalPairs) {
|
// 修改当前交友阶段
|
||||||
|
$res = db::name('vs_room')->where(['id' => $room_id])->update(['step' => 1]);
|
||||||
|
$res2 = db::name('vs_user_friending')->where(['id' => $friend_id])->update(['status' => 2]);
|
||||||
|
if ($originalPairs && $res && $res2) {
|
||||||
|
//所有人下麦
|
||||||
|
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => ['<',7],'user_id' => ['<>',0]])->select();
|
||||||
|
if($on_pit){
|
||||||
|
foreach ($on_pit as $pit){
|
||||||
|
model('RoomPit')->DownPit($pit['user_id'], $room_id,$pit['pit_number']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$relation = db::name('vs_relation')->where('id',$friending_config_id)->value('name');
|
$relation = db::name('vs_relation')->where('id',$friending_config_id)->value('name');
|
||||||
if($friending_heart['heart_value'] >= get_system_config_value('friend_heart_create_room') && $friending_config_id > 0){
|
if($friending_heart['heart_value'] >= get_system_config_value('friend_heart_create_room') && $friending_config_id > 0){
|
||||||
//创建小房间
|
//创建小房间
|
||||||
@@ -196,6 +207,7 @@ class Friend extends Model
|
|||||||
}else{
|
}else{
|
||||||
$text['text'] = '交友结束未创建房间';
|
$text['text'] = '交友结束未创建房间';
|
||||||
}
|
}
|
||||||
|
|
||||||
$text['relation_name'] = $relation;
|
$text['relation_name'] = $relation;
|
||||||
$text['user1_id'] = $user1;
|
$text['user1_id'] = $user1;
|
||||||
$text['user2_id'] = $user2;
|
$text['user2_id'] = $user2;
|
||||||
@@ -205,17 +217,6 @@ class Friend extends Model
|
|||||||
$text['user2_nickname'] = db::name('user')->where(['id'=>$user2])->value('nickname');
|
$text['user2_nickname'] = db::name('user')->where(['id'=>$user2])->value('nickname');
|
||||||
model('api/Chat')->sendMsg(1051,$room_id,$text);
|
model('api/Chat')->sendMsg(1051,$room_id,$text);
|
||||||
|
|
||||||
// 修改当前交友阶段
|
|
||||||
db::name('vs_room')->where(['id' => $room_id])->update(['step' => 1]);
|
|
||||||
db::name('vs_user_friending')->where(['id' => $friend_id])->update(['status' => 2]);
|
|
||||||
//所有人下麦
|
|
||||||
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => ['<',7],'user_id' => ['<>',0]])->select();
|
|
||||||
if($on_pit){
|
|
||||||
foreach ($on_pit as $pit){
|
|
||||||
model('RoomPit')->DownPit($pit['user_id'], $room_id,$pit['pit_number']);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$shijian = floor($friending_heart['heart_value']/get_system_config_value('friend_heart_value')) * get_system_config_value('friend_heart_times');
|
$shijian = floor($friending_heart['heart_value']/get_system_config_value('friend_heart_value')) * get_system_config_value('friend_heart_times');
|
||||||
$friendendtime = time() + $shijian * 3600;
|
$friendendtime = time() + $shijian * 3600;
|
||||||
|
|
||||||
@@ -226,17 +227,20 @@ class Friend extends Model
|
|||||||
$room_auction = model('RoomAuction')->room_auction_create_or_add($user1_id,$user2_id,$friending_config_id,$shijian*3600,0);
|
$room_auction = model('RoomAuction')->room_auction_create_or_add($user1_id,$user2_id,$friending_config_id,$shijian*3600,0);
|
||||||
|
|
||||||
//推送给前端消息
|
//推送给前端消息
|
||||||
|
$text1['text'] = '交友结束';
|
||||||
|
$text1['step'] = 1;//1 等待邂逅 2 心动连线 3 牵手良缘
|
||||||
|
model('api/Chat')->sendMsg(1049,$room_id,$text1);
|
||||||
|
|
||||||
|
return ['code' => 1, 'msg' => '创建关系成功!'.$msg, 'data' => null];
|
||||||
|
} else {
|
||||||
|
$ress = db::name('vs_user_friending')->where(['id' => $friend_id])->update(['status' => 2]);
|
||||||
|
$re2s = db::name('vs_room')->where(['id' => $room_id])->update(['step' => 1]);
|
||||||
|
//推送给前端消息
|
||||||
|
$text['status1'] = $ress.'<=>'.$re2s.'<=>'.$res.'<=>'.$res2.'<=>'.$originalPairs;
|
||||||
$text['text'] = '交友结束';
|
$text['text'] = '交友结束';
|
||||||
$text['step'] = 1;//1 等待邂逅 2 心动连线 3 牵手良缘
|
$text['step'] = 1;//1 等待邂逅 2 心动连线 3 牵手良缘
|
||||||
model('api/Chat')->sendMsg(1049,$room_id,$text);
|
model('api/Chat')->sendMsg(1049,$room_id,$text);
|
||||||
|
|
||||||
return ['code' => 1, 'msg' => '创建关系成功!'.$msg, 'data' => null];
|
|
||||||
} else {
|
|
||||||
//推送给前端消息
|
|
||||||
$text['text'] = '交友结束';
|
|
||||||
$text['step'] = 1;//1 等待邂逅 2 心动连线 3 牵手良缘
|
|
||||||
model('api/Chat')->sendMsg(1049,$room_id,$text);
|
|
||||||
db::name('vs_user_friending')->where(['id' => $friend_id])->update(['status' => 2]);
|
|
||||||
return ['code' => 0, 'msg' => '创建关系失败!', 'data' => null];
|
return ['code' => 0, 'msg' => '创建关系失败!', 'data' => null];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,16 @@ class Login extends Model
|
|||||||
return ['code' => 0, 'msg' => 'ip已被封禁', 'data' => null];
|
return ['code' => 0, 'msg' => 'ip已被封禁', 'data' => null];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($user_name){
|
||||||
|
$config_time = get_system_config_value('cancel_no_login');
|
||||||
|
$is_del = db::name('user')->where(['mobile' => $user_name,'delete_time' => ['<>', 0]])->find();
|
||||||
|
if ($is_del) {
|
||||||
|
if (time() - $is_del['delete_time'] < $config_time * 24 * 3600) {//30天内注销过
|
||||||
|
return V(0, '注销30天内,不可操作。');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$data = [];
|
$data = [];
|
||||||
$user_code = $this->get_user_code(); //获取用户code_id 过滤靓号
|
$user_code = $this->get_user_code(); //获取用户code_id 过滤靓号
|
||||||
|
|
||||||
|
|||||||
@@ -203,6 +203,7 @@ class Room extends Model
|
|||||||
}
|
}
|
||||||
if($label_id >= 1){
|
if($label_id >= 1){
|
||||||
$map['label_id'] = $label_id;
|
$map['label_id'] = $label_id;
|
||||||
|
$map['type_id'] = ['<>',6];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -890,7 +891,7 @@ class Room extends Model
|
|||||||
|
|
||||||
$is_hide = db::name('user')->where('id', $user_id)->value('hide_status');
|
$is_hide = db::name('user')->where('id', $user_id)->value('hide_status');
|
||||||
if($is_hide != 1){//不是隐身
|
if($is_hide != 1){//不是隐身
|
||||||
$Nobility = model('Nobility')->getUserNobilityInfo($user_id);
|
$Nobility = model('api/Nobility')->getUserNobilityInfo($user_id);
|
||||||
$text['FromUserInfo']['enter_image'] = $Nobility['enter_image'];
|
$text['FromUserInfo']['enter_image'] = $Nobility['enter_image'];
|
||||||
$text['FromUserInfo']['enter_text'] = '欢迎 ' . $Nobility['nobility_name'] .' 进入房间';
|
$text['FromUserInfo']['enter_text'] = '欢迎 ' . $Nobility['nobility_name'] .' 进入房间';
|
||||||
model('api/Chat')->sendMsg(1001,$room_id,$text,$user_id);
|
model('api/Chat')->sendMsg(1001,$room_id,$text,$user_id);
|
||||||
@@ -1290,6 +1291,7 @@ class Room extends Model
|
|||||||
$text['FromUserInfo'] = $FromUserInfo;
|
$text['FromUserInfo'] = $FromUserInfo;
|
||||||
$text['pit_number'] = '';
|
$text['pit_number'] = '';
|
||||||
model('api/Chat')->sendMsg(1004,$room_id,$text);
|
model('api/Chat')->sendMsg(1004,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->update(['is_onpit' => 1]);
|
||||||
}
|
}
|
||||||
}elseif ($apply_type == 3){
|
}elseif ($apply_type == 3){
|
||||||
$roomInfoStep = db::name('vs_room')->where(['id' => $room_id])->value('step');
|
$roomInfoStep = db::name('vs_room')->where(['id' => $room_id])->value('step');
|
||||||
@@ -1504,7 +1506,7 @@ class Room extends Model
|
|||||||
|
|
||||||
|
|
||||||
//房间在线列表
|
//房间在线列表
|
||||||
public function room_online_list($room_id, $page, $limit)
|
public function room_online_lists($room_id, $page, $limit)
|
||||||
{
|
{
|
||||||
$lists['on_pit'] = [];
|
$lists['on_pit'] = [];
|
||||||
$lists['off_pit'] = [];
|
$lists['off_pit'] = [];
|
||||||
@@ -1623,6 +1625,312 @@ class Room extends Model
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//房间在线列表
|
||||||
|
public function room_online_list1($room_id, $page, $limit)
|
||||||
|
{
|
||||||
|
if (!$room_id) {
|
||||||
|
return ['code' => 0, 'msg' => '参数错误'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$roomType = db::name('vs_room')->where(['id' => $room_id])->field('type_id,label_id')->find();
|
||||||
|
if (!$roomType) {
|
||||||
|
return ['code' => 0, 'msg' => '房间不存在'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$onPitUserIds = [];
|
||||||
|
$lists['on_pit'] = db::name('vs_room_pit')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id')
|
||||||
|
->where(['a.room_id' => $room_id, 'a.user_id' => ['>', 0]])
|
||||||
|
->field('a.user_id,b.nickname,b.avatar,a.pit_number')
|
||||||
|
->select();
|
||||||
|
|
||||||
|
// 处理麦位上的用户信息
|
||||||
|
if (!empty($lists['on_pit']) && is_array($lists['on_pit'])) {
|
||||||
|
foreach ($lists['on_pit'] as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_wealth_icon($v['user_id'], 1);//等级图标
|
||||||
|
$isSinger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
|
||||||
|
// 根据角色排序 房主>管理员>主持人>普通用户
|
||||||
|
usort($lists['on_pit'], function ($a, $b) {
|
||||||
|
if ($a['role'] == $b['role']) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a['role'] < $b['role']) ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
$onPitUserIds = array_column($lists['on_pit'], 'user_id');
|
||||||
|
} else {
|
||||||
|
$lists['on_pit'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
// 根据房间类型处理不同情况下的麦位用户
|
||||||
|
if ($roomType['type_id'] == 10 || $roomType['type_id'] == 9 || $roomType['type_id'] == 7 ||
|
||||||
|
($roomType['type_id'] == 1 && $roomType['label_id'] == 1)) {
|
||||||
|
// 这些房间类型已处理过麦位用户,无需额外处理
|
||||||
|
} elseif ($roomType['type_id'] == 1 && $roomType['label_id'] == 2) { // K歌房
|
||||||
|
// 处理K歌房的模拟麦位用户
|
||||||
|
$onPitUser = db::name('vs_room_pit_simulate')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id')
|
||||||
|
->field('a.user_id,b.nickname,b.avatar')
|
||||||
|
->where(['a.room_id' => $room_id])
|
||||||
|
->select();
|
||||||
|
|
||||||
|
if (!empty($onPitUser) && is_array($onPitUser)) {
|
||||||
|
foreach ($onPitUser as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_wealth_icon($v['user_id'], 1);//等级图标
|
||||||
|
$isSinger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
|
||||||
|
// 把模拟麦位用户添加到麦位用户列表后面
|
||||||
|
$lists['on_pit'] = array_merge($lists['on_pit'], $onPitUser);
|
||||||
|
|
||||||
|
// 重新根据角色排序 房主>管理员>主持人>普通用户
|
||||||
|
usort($lists['on_pit'], function ($a, $b) {
|
||||||
|
if ($a['role'] == $b['role']) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a['role'] < $b['role']) ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
$onPitUserIds = array_column($lists['on_pit'], 'user_id');
|
||||||
|
}
|
||||||
|
} elseif ($roomType['type_id'] == 2) { // 拍卖房
|
||||||
|
$auction_id = db::name('vs_room_auction')
|
||||||
|
->where(['room_id' => $room_id])
|
||||||
|
->order('auction_id', 'desc')
|
||||||
|
->field('auction_id,status,gift_price')
|
||||||
|
->find();
|
||||||
|
|
||||||
|
if ($auction_id && $auction_id['status'] == 2) {
|
||||||
|
$auct = db::name('vs_room_auction_bid_log')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id')
|
||||||
|
->field('a.user_id, SUM(a.gift_price) AS gift_prices, b.nickname,b.avatar')
|
||||||
|
->where(['a.auction_id' => $auction_id['auction_id']])
|
||||||
|
->group('user_id')
|
||||||
|
->having('gift_prices >= ' . $auction_id['gift_price'])
|
||||||
|
->order('gift_prices DESC')
|
||||||
|
->limit(6)
|
||||||
|
->select();
|
||||||
|
|
||||||
|
if (!empty($auct) && is_array($auct)) {
|
||||||
|
foreach ($auct as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_wealth_icon($v['user_id'], 1);//等级图标
|
||||||
|
$isSinger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
|
||||||
|
// 把竞拍用户添加到麦位用户列表后面
|
||||||
|
$lists['on_pit'] = array_merge($lists['on_pit'], $auct);
|
||||||
|
|
||||||
|
// 重新根据角色排序 房主>管理员>主持人>普通用户
|
||||||
|
usort($lists['on_pit'], function ($a, $b) {
|
||||||
|
if ($a['role'] == $b['role']) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a['role'] < $b['role']) ? -1 : 1;
|
||||||
|
});
|
||||||
|
|
||||||
|
$onPitUserIds = array_column($lists['on_pit'], 'user_id');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 处理不在麦位上的用户(观众)
|
||||||
|
$lists['off_pit'] = db::name('vs_room_visitor')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id')
|
||||||
|
->field('a.user_id,b.nickname,b.avatar')
|
||||||
|
->where([
|
||||||
|
'a.room_id' => $room_id,
|
||||||
|
'b.hide_status' => 0, // 非隐身用户
|
||||||
|
'a.user_id' => ['not in', empty($onPitUserIds) ? [0] : $onPitUserIds] // 不在麦位上的用户
|
||||||
|
])
|
||||||
|
->page($page, $limit)
|
||||||
|
->select();
|
||||||
|
|
||||||
|
if (!empty($lists['off_pit']) && is_array($lists['off_pit'])) {
|
||||||
|
foreach ($lists['off_pit'] as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_wealth_icon($v['user_id'], 1);//等级图标
|
||||||
|
$isSinger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
|
||||||
|
// 根据角色排序 房主>管理员>主持人>普通用户
|
||||||
|
usort($lists['off_pit'], function ($a, $b) {
|
||||||
|
if ($a['role'] == $b['role']) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a['role'] < $b['role']) ? -1 : 1;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
$lists['off_pit'] = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['code' => 1, 'msg' => '成功', 'data' => $lists];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//房间在线列表
|
||||||
|
public function room_online_list($room_id, $page = 1, $limit = 5)
|
||||||
|
{
|
||||||
|
if (!$room_id) {
|
||||||
|
return ['code' => 0, 'msg' => '参数错误'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$lists['on_pit'] = [];
|
||||||
|
$lists['off_pit'] = [];
|
||||||
|
|
||||||
|
// 修改count计算逻辑:在麦上的用户即使隐身也要计算在内
|
||||||
|
$lists['count'] = db::name('vs_room_visitor')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id','left')
|
||||||
|
->where(function($query) use ($room_id) {
|
||||||
|
$query->where(['a.room_id' => $room_id,'b.hide_status'=>0]) // 非隐身用户
|
||||||
|
->whereOr(function($query2) use ($room_id) {
|
||||||
|
// 或者是隐身但已在麦上的用户
|
||||||
|
$query2->where(['a.room_id' => $room_id,'b.hide_status'=>1,'a.is_onpit'=>0]);
|
||||||
|
});
|
||||||
|
})
|
||||||
|
->count();
|
||||||
|
|
||||||
|
// 第一页特殊处理,显示麦上用户
|
||||||
|
if ($page == 1) {
|
||||||
|
$onPitUser = db::name('vs_room_visitor')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id','left')
|
||||||
|
->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit')
|
||||||
|
->where(['a.room_id' => $room_id,'a.is_onpit' => 0])//is_onpit:1-未上麦,0-已上麦
|
||||||
|
->select();
|
||||||
|
if(!empty($onPitUser)){
|
||||||
|
foreach ($onPitUser as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
|
||||||
|
//判断是否是歌手 如果是 返回等级图标
|
||||||
|
$isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinnger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
$v['pit_number'] = $role['pit_number'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
$lists['on_pit'] = $onPitUser;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取麦下用户(非隐身用户)
|
||||||
|
if ($page == 1) {
|
||||||
|
$offPitUser = db::name('vs_room_visitor')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id','left')
|
||||||
|
->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit')
|
||||||
|
->where(['a.room_id' => $room_id,'b.hide_status' => 0,'a.is_onpit' => 1]) // 非隐身且未上麦
|
||||||
|
->page($page, $limit)
|
||||||
|
->order('a.id', 'desc')
|
||||||
|
->select();
|
||||||
|
|
||||||
|
if(!empty($offPitUser)){
|
||||||
|
foreach ($offPitUser as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
|
||||||
|
//判断是否是歌手 如果是 返回等级图标
|
||||||
|
$isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinnger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
$v['pit_number'] = $role['pit_number'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
$lists['off_pit'] = $offPitUser;
|
||||||
|
}
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$offPitUser = db::name('vs_room_visitor')->alias('a')
|
||||||
|
->join('user b', 'a.user_id = b.id','left')
|
||||||
|
->field('a.user_id,b.nickname,b.avatar,b.hide_status,a.is_onpit')
|
||||||
|
->where(['a.room_id' => $room_id,'b.hide_status' => 0,'a.is_onpit' => 1]) // 非隐身且未上麦
|
||||||
|
->page($page, $limit)
|
||||||
|
->order('a.id', 'desc')
|
||||||
|
->select();
|
||||||
|
|
||||||
|
if(!empty($offPitUser)){
|
||||||
|
foreach ($offPitUser as &$v) {
|
||||||
|
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
|
||||||
|
$v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
|
||||||
|
//判断是否是歌手 如果是 返回等级图标
|
||||||
|
$isSinnger = db::name('vs_singer')->where(['user_id' => $v['user_id'], 'status' => 1])->value('level');
|
||||||
|
if ($isSinnger) {
|
||||||
|
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinnger, 'deletetime' => 0])->value('image');//等级图标
|
||||||
|
}
|
||||||
|
|
||||||
|
//用户的角色
|
||||||
|
$role = $this->get_user_role($v['user_id'], $room_id);
|
||||||
|
$v['role'] = $role['role'];
|
||||||
|
$v['pit_number'] = $role['pit_number'];
|
||||||
|
}
|
||||||
|
unset($v); // 释放引用
|
||||||
|
$lists['off_pit'] = $offPitUser;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 对麦位上用户按角色排序
|
||||||
|
if (!empty($lists['on_pit']) && is_array($lists['on_pit'])) {
|
||||||
|
usort($lists['on_pit'], function ($a, $b) {
|
||||||
|
if ($a['role'] == $b['role']) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a['role'] < $b['role']) ? -1 : 1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 对麦位下用户按角色排序
|
||||||
|
if (!empty($lists['off_pit']) && is_array($lists['off_pit'])) {
|
||||||
|
usort($lists['off_pit'], function ($a, $b) {
|
||||||
|
if ($a['role'] == $b['role']) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return ($a['role'] < $b['role']) ? -1 : 1;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return ['code' => 1, 'msg' => '成功', 'data' => $lists];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//用户在房间内的角色
|
//用户在房间内的角色
|
||||||
public function get_user_role($user_id, $room_id)
|
public function get_user_role($user_id, $room_id)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -105,6 +105,7 @@ class RoomPit extends Model
|
|||||||
$text['pit_number'] = $pit_number;
|
$text['pit_number'] = $pit_number;
|
||||||
//聊天室推送系统消息
|
//聊天室推送系统消息
|
||||||
model('Chat')->sendMsg(1003,$room_id,$text);
|
model('Chat')->sendMsg(1003,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->update(['is_onpit' => 0]);
|
||||||
|
|
||||||
//查看此房间是否处于pk中
|
//查看此房间是否处于pk中
|
||||||
$is_pk = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->where(['status' => ['in',[2,3,4]]])->value('room_id_b') ?? 0;
|
$is_pk = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->where(['status' => ['in',[2,3,4]]])->value('room_id_b') ?? 0;
|
||||||
@@ -260,6 +261,7 @@ class RoomPit extends Model
|
|||||||
model('Chat')->sendMsg(1022,$room_id,$text);
|
model('Chat')->sendMsg(1022,$room_id,$text);
|
||||||
}else{
|
}else{
|
||||||
model('Chat')->sendMsg(1004,$room_id,$text);
|
model('Chat')->sendMsg(1004,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->update(['is_onpit' => 1]);
|
||||||
//查看此房间是否处于pk中
|
//查看此房间是否处于pk中
|
||||||
$is_pk = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->where(['status' => ['in',[2,3,4]]])->value('room_id_b') ?? 0;
|
$is_pk = db::name('vs_room_pk')->where(['room_id_a' => $room_id])->where(['status' => ['in',[2,3,4]]])->value('room_id_b') ?? 0;
|
||||||
if(!$is_pk){
|
if(!$is_pk){
|
||||||
@@ -752,6 +754,7 @@ class RoomPit extends Model
|
|||||||
$text['FromUserInfo'] = $FromUserInfo;
|
$text['FromUserInfo'] = $FromUserInfo;
|
||||||
$text['pit_number'] = 9999;
|
$text['pit_number'] = 9999;
|
||||||
model('Chat')->sendMsg(1003,$room_id,$text);
|
model('Chat')->sendMsg(1003,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $value,'room_id' => $room_id])->update(['is_onpit' => 0]);
|
||||||
//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('Room')->room_operation_record($user_id,$room_id,8,$value);
|
model('Room')->room_operation_record($user_id,$room_id,8,$value);
|
||||||
}
|
}
|
||||||
@@ -883,6 +886,7 @@ class RoomPit extends Model
|
|||||||
$text['pit_number'] = 1;
|
$text['pit_number'] = 1;
|
||||||
//聊天室推送系统消息
|
//聊天室推送系统消息
|
||||||
model('Chat')->sendMsg(1003,$room_id,$text);
|
model('Chat')->sendMsg(1003,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $uid,'room_id' => $room_id])->update(['is_onpit' => 0]);
|
||||||
|
|
||||||
//删除他的申请上麦
|
//删除他的申请上麦
|
||||||
db::name('vs_room_pit_apply')->where(['user_id' => $uid, 'room_id' => $room_id, 'status' => 0])->delete();
|
db::name('vs_room_pit_apply')->where(['user_id' => $uid, 'room_id' => $room_id, 'status' => 0])->delete();
|
||||||
@@ -1136,6 +1140,7 @@ class RoomPit extends Model
|
|||||||
$text['pit_number'] = $pit_number;
|
$text['pit_number'] = $pit_number;
|
||||||
//聊天室推送系统消息
|
//聊天室推送系统消息
|
||||||
model('Chat')->sendMsg(1003,$room_id,$text);
|
model('Chat')->sendMsg(1003,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $accept_user_id,'room_id' => $room_id])->update(['is_onpit' => 0]);
|
||||||
|
|
||||||
//查找当前用户是否有申请上麦 有就删掉
|
//查找当前用户是否有申请上麦 有就删掉
|
||||||
$is_apply_pit = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $accept_user_id])->find();
|
$is_apply_pit = db::name('vs_room_pit_apply')->where(['room_id' => $room_id, 'user_id' => $accept_user_id])->find();
|
||||||
|
|||||||
@@ -559,6 +559,7 @@ class RoomSong extends Model
|
|||||||
}
|
}
|
||||||
//聊天室推送系统消息
|
//聊天室推送系统消息
|
||||||
model('Chat')->sendMsg(1003,$room_id,$text);
|
model('Chat')->sendMsg(1003,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->update(['is_onpit' => 0]);
|
||||||
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
|
return ['code' => 1, 'msg' => '上麦成功', 'data' => null];
|
||||||
}else{
|
}else{
|
||||||
//检查用户是否已经申请
|
//检查用户是否已经申请
|
||||||
@@ -618,6 +619,7 @@ class RoomSong extends Model
|
|||||||
$text['FromUserInfo'] = $FromUserInfo;
|
$text['FromUserInfo'] = $FromUserInfo;
|
||||||
$text['pit_number'] = '';
|
$text['pit_number'] = '';
|
||||||
model('Chat')->sendMsg(1004,$room_id,$text);
|
model('Chat')->sendMsg(1004,$room_id,$text);
|
||||||
|
db::name('vs_room_visitor')->where(['user_id' => $user_id,'room_id' => $room_id])->update(['is_onpit' => 1]);
|
||||||
return ['code' => 1, 'msg' => '下麦成功', 'data' => null];
|
return ['code' => 1, 'msg' => '下麦成功', 'data' => null];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user