Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -47,6 +47,11 @@ class SingerSong extends adminApi
|
||||
->where($where)
|
||||
->page($page, $page_limit)
|
||||
->select();
|
||||
if($list){
|
||||
foreach ($list as &$v){
|
||||
$v['createtime'] = date('Y-m-d H:i:s', $v['createtime']);
|
||||
}
|
||||
}
|
||||
$return_data = [
|
||||
'page' =>$page,
|
||||
'page_limit' => $page_limit,
|
||||
|
||||
@@ -18,6 +18,8 @@ class Cron
|
||||
$cron->index();
|
||||
}
|
||||
|
||||
|
||||
//经业务调整 暂时不要了
|
||||
//每10秒执行
|
||||
public function TenSeconds()
|
||||
{
|
||||
|
||||
@@ -25,7 +25,7 @@ class Xintiao extends BaseCom
|
||||
'updatetime' => time()
|
||||
]);
|
||||
}
|
||||
return true;
|
||||
return V(1, '成功', null);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -196,6 +196,7 @@ class Login extends Model
|
||||
$save_data['loginip'] = request()->server('HTTP_X_REAL_IP') ?: request()->server('HTTP_X_FORWARDED_FOR') ?: request()->ip();
|
||||
$save_data['updatetime'] = time();
|
||||
$save_data['prevtime'] = $user_info['logintime'];//上次登录时间
|
||||
$save_data['is_online'] = 1;
|
||||
$reslut = model('User')->update($save_data);
|
||||
|
||||
if (!$reslut) {
|
||||
|
||||
@@ -642,7 +642,7 @@ class Room extends Model
|
||||
//麦位信息
|
||||
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
|
||||
->where(['a.room_id' => $room['id'],'a.status' => 1])
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code')
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')
|
||||
->order('a.pit_number asc')->select();
|
||||
foreach ($pit_list as &$value) {
|
||||
$value['charm'] = 0;
|
||||
@@ -1048,7 +1048,7 @@ class Room extends Model
|
||||
//麦位信息
|
||||
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
|
||||
->where(['a.room_id' => $room_id,'a.status' => 1])
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code')
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')
|
||||
->order('a.pit_number asc')->select();
|
||||
foreach ($pit_list as &$value) {
|
||||
$value['charm'] = 0;
|
||||
@@ -1108,7 +1108,7 @@ class Room extends Model
|
||||
{
|
||||
//房间正在拍的信息
|
||||
$auction = db::name('vs_room_auction')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
|
||||
->field('a.auction_id,a.user_id,b.nickname,b.avatar,b.sex,b.user_code,a.auction_type,a.relation_id,a.gift_id,a.gift_price,a.time_day,a.duration')
|
||||
->field('a.auction_id,a.user_id,b.nickname,b.avatar,b.sex,b.user_code,a.auction_type,a.relation_id,a.gift_id,a.gift_price,a.time_day,a.duration,b.is_online')
|
||||
->where(['a.room_id' => $room_id,'a.status' => 2])->find();
|
||||
// var_dump($auction);exit;
|
||||
if($auction){
|
||||
@@ -1266,11 +1266,20 @@ class Room extends Model
|
||||
if($vs_room_sign){
|
||||
return ['code' => 0, 'msg' => '在签约麦不能退出', 'data' => null];
|
||||
}
|
||||
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
|
||||
if ($room_pit['pit_number'] > 0) {
|
||||
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
|
||||
}
|
||||
}elseif ($apply_type == 6){
|
||||
$auction_user_id = Cache::get('auction_user_'.$room_id);
|
||||
if($auction_user_id == $user_id){
|
||||
return ['code' => 0, 'msg' => '拍卖位麦不能退出', 'data' => null];
|
||||
}
|
||||
//在麦位上 移除用户
|
||||
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
|
||||
if (isset($room_pit)) {
|
||||
model('api/RoomPit')->DownPit($user_id, $room_id, $room_pit['pit_number']);
|
||||
}
|
||||
}else{
|
||||
//在麦位上 移除用户
|
||||
$room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $user_id])->find();
|
||||
@@ -1455,38 +1464,22 @@ class Room extends Model
|
||||
if ($label_type['code'] != 1) {
|
||||
return ['code' => 0, 'msg' => '房间不存在', 'data' => null];
|
||||
}
|
||||
//查询房间里面的用户
|
||||
$room_user = db::name('vs_room_visitor')->where(['room_id' => $room_id])->select();
|
||||
if($room_user){
|
||||
foreach ($room_user as $vv){
|
||||
if(($label_type['data']['type_id'] == 1 || $label_type['data']['type_id'] == 8) && $label_type['data']['label_id'] == 1){
|
||||
//不做处理
|
||||
}else{
|
||||
//查询是否有切后台的操作
|
||||
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $room_id,'user_id' => $vv['user_id']])->find();
|
||||
|
||||
if(Db::name('user')->where('id', $vv['user_id'])->value('is_online') == 0 && !$bg_room){
|
||||
model('Room')->quit_room($vv['user_id'], $room_id,$vv['user_id'],2);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$list = 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.is_online' => 1])
|
||||
->where(['a.room_id' => $room_id])
|
||||
->group('a.user_id')
|
||||
->order('a.id asc')
|
||||
->page($page, $limit)
|
||||
->select();
|
||||
if ($list) {
|
||||
foreach ($list as &$v) {
|
||||
foreach ($list as $key => &$v) {
|
||||
//判断用户的隐身状态,隐身用户且不在麦位上不显示
|
||||
$hinde_status = db::name('user')->where('id', $v['user_id'])->value('hide_status');
|
||||
$on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $v['user_id']])->value('pit_number');
|
||||
if ($hinde_status == 1 && !$on_pit) {
|
||||
unset($list[$key]); // 完全移除该用户
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1502,6 +1495,9 @@ class Room extends Model
|
||||
$v['role'] = $role['role'];
|
||||
$v['pit_number'] = $role['pit_number'];
|
||||
}
|
||||
// 重新索引数组以避免键名不连续的问题
|
||||
$list = array_values($list);
|
||||
|
||||
//根据角色排序 房主>管理员>主持人>普通用户
|
||||
usort($list, function ($a, $b) {
|
||||
if ($a['role'] == $b['role']) {
|
||||
@@ -2061,7 +2057,7 @@ class Room extends Model
|
||||
//麦位信息
|
||||
$pit_list = db::name('vs_room_pit')->alias('a')->join('user b', 'a.user_id = b.id', 'left')
|
||||
->where(['a.room_id' => $room['id'],'a.status' => 1])
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code')->order('a.pit_number asc')->select();
|
||||
->field('a.id,a.user_id,a.pit_number,a.is_lock,a.is_mute,a.count_down,b.nickname,b.avatar,b.sex,b.user_code,b.is_online')->order('a.pit_number asc')->select();
|
||||
foreach ($pit_list as &$value) {
|
||||
$value['charm'] = 0;
|
||||
$value['dress'] = '';
|
||||
@@ -2734,46 +2730,17 @@ class Room extends Model
|
||||
//用户在线状态
|
||||
public function user_online_status($room_id,$user_id)
|
||||
{
|
||||
if(!$room_id || !$user_id){
|
||||
if(!$user_id){
|
||||
return ['code' => 0, 'msg' => '参数错误~', 'data' => null];
|
||||
}
|
||||
$user = explode(',',$user_id);
|
||||
//获取腾讯的在线用户
|
||||
$user_id_array = null;
|
||||
foreach ($user as $v) {
|
||||
$user_id_array[] = 'u'.$v;
|
||||
}
|
||||
|
||||
$online_user = [];
|
||||
$online_users = model('Tencent')->query_user_online_status($user_id_array);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}else{
|
||||
return ['code' => 0, 'msg' => $online_users, 'data' => null];
|
||||
}
|
||||
|
||||
$array = $online_user;
|
||||
$data = null;
|
||||
foreach ($user as &$v){
|
||||
if(!in_array($v,$array)){
|
||||
$data[] = [
|
||||
'user_id' => $v,
|
||||
'is_online' => 0,
|
||||
];
|
||||
}else{
|
||||
$data[] = [
|
||||
'user_id' => $v,
|
||||
'is_online' => 1,
|
||||
];
|
||||
}
|
||||
$data = [];
|
||||
foreach ($user as $v){
|
||||
$data[] = [
|
||||
'user_id' => $v,
|
||||
'is_online' => db::name('user')->where('id',$v)->value('is_online'),
|
||||
];
|
||||
}
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
|
||||
}
|
||||
@@ -2810,20 +2777,21 @@ class Room extends Model
|
||||
|
||||
//查找数据库用户
|
||||
$dblist = db::name('vs_room_visitor')->where(['room_id' => $room_id])->field('user_id')->select();
|
||||
$num_robit = 0;
|
||||
$online_number = 0;
|
||||
foreach ($dblist as $v) {
|
||||
//机器人
|
||||
if(db::name('user')->where(['id' => $v['user_id']])->value('is_robot')){
|
||||
$num_robit++;
|
||||
$online_number++;
|
||||
}else{
|
||||
$is_online = db::name('user')->where(['id' => $v['user_id']])->value('is_online');
|
||||
if($is_online){
|
||||
$online_number++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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'] + $num_robit,
|
||||
'online_number' => $online_number,
|
||||
];
|
||||
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => $data];
|
||||
@@ -2924,6 +2892,8 @@ class Room extends Model
|
||||
//用户在房间内切后台保留机制
|
||||
public function user_in_room_background($user_id,$room_id,$type)
|
||||
{
|
||||
return ['code' => 1, 'msg' => '操作成功', 'data' => null];//没啥用了
|
||||
|
||||
if(!$room_id){
|
||||
return ['code' => 0, 'msg' => '参数错误', 'data' => null];
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ class RoomPit extends Model
|
||||
return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
|
||||
}
|
||||
// $nickname = model('User')->where(['id' => $user_id])->value('nickname');
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->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);
|
||||
@@ -332,7 +332,7 @@ class RoomPit extends Model
|
||||
if(!$exchange || !$exchange1){
|
||||
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
|
||||
}
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->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);
|
||||
@@ -391,7 +391,7 @@ class RoomPit extends Model
|
||||
if(!$exchange || !$exchange1){
|
||||
return ['code' => 0, 'msg' => '换麦失败', 'data' => null];
|
||||
}
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->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);
|
||||
@@ -691,7 +691,7 @@ class RoomPit extends Model
|
||||
continue;
|
||||
}
|
||||
//聊天室推送系统消息
|
||||
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex,is_online')->find();
|
||||
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标
|
||||
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标
|
||||
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1);
|
||||
@@ -736,7 +736,7 @@ class RoomPit extends Model
|
||||
// }
|
||||
Cache::set('auction_user_'.$room_id,$value);
|
||||
//聊天室推送系统消息
|
||||
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$value)->field('id as user_id,nickname,avatar,sex,is_online')->find();
|
||||
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($value);//财富图标
|
||||
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标
|
||||
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1);
|
||||
@@ -800,7 +800,7 @@ class RoomPit extends Model
|
||||
$uid = $to_user[0];
|
||||
//查询是否已经上麦
|
||||
$on_pit_number = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $uid])->value('pit_number');
|
||||
if ($on_pit_number == 1) {
|
||||
if ($on_pit_number >= 1) {
|
||||
return ['code' => 0, 'msg' => '用户已在麦上', 'data' => null];
|
||||
}
|
||||
//查询1号麦位是否有人
|
||||
@@ -813,7 +813,7 @@ class RoomPit extends Model
|
||||
return ['code' => 0, 'msg' => '操作失败', 'data' => null];
|
||||
}
|
||||
//制造上麦信息
|
||||
$FromUserInfo = db::name('user')->where('id',$uid)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$uid)->field('id as user_id,nickname,avatar,sex,is_online')->find();
|
||||
$FromUserInfo['icon'][0] = model('UserData')->user_wealth_icon($uid);//财富图标
|
||||
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标
|
||||
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($uid,1);
|
||||
@@ -1000,8 +1000,14 @@ class RoomPit extends Model
|
||||
if(!$accept_user_id){
|
||||
return ['code' => 0, 'msg' => '请选择用户', 'data' => null];
|
||||
}
|
||||
|
||||
|
||||
$room_type = db::name('vs_room')->where(['id' => $room_id])->value('type_id');
|
||||
if($type == 1){//抱麦
|
||||
$accept_user_is_on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $accept_user_id])->find();
|
||||
if($accept_user_is_on_pit){
|
||||
return ['code' => 0, 'msg' => '该用户已在麦位上', 'data' => null];
|
||||
}
|
||||
if($room_type == 7 && ($pit_number == 7 || $pit_number == 8)){
|
||||
return ['code' => 0, 'msg' => '互娱房 不能上7、8号麦位', 'data' => null];
|
||||
}
|
||||
|
||||
@@ -518,7 +518,7 @@ class RoomSong extends Model
|
||||
if(isset($pit_infos)){
|
||||
return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null];
|
||||
}
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex')->find();
|
||||
$FromUserInfo = db::name('user')->where('id',$user_id)->field('id as user_id,nickname,avatar,sex,is_online')->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);
|
||||
|
||||
@@ -20,6 +20,11 @@ class Sign extends Model
|
||||
if(!$owner && !$host){
|
||||
return ['code' => 0, 'msg' => '没有权限操作', 'data' => null];
|
||||
}
|
||||
//查询签约用户是否在麦位上
|
||||
$accept_user_is_on_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 1])->find();
|
||||
if($accept_user_is_on_pit['user_id'] == 0){
|
||||
return ['code' => 0, 'msg' => '签约麦位没有用户', 'data' => null];
|
||||
}
|
||||
|
||||
$is_first_sign = db::name('vs_user_sign')->where('sign_user_id',$sign_user_id)->count();
|
||||
if($is_first_sign < 1){
|
||||
@@ -240,7 +245,7 @@ class Sign extends Model
|
||||
}
|
||||
}else{
|
||||
$result5 = db::name('vs_user_sign')->where(['id' => $is_sign['id']])
|
||||
->update(['end_time' => time(),'type' => 3]);
|
||||
->update(['end_time' => time(),'type' => 4]);
|
||||
if(!$result5){
|
||||
db::rollback();
|
||||
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
|
||||
@@ -410,12 +415,12 @@ class Sign extends Model
|
||||
model('api/Chat')->sendMsg(1092,$room_id,$text);
|
||||
}else{
|
||||
//修改房间信息
|
||||
$res1 = db::name('vs_room')->where('id',$room_id)->update([
|
||||
db::name('vs_room')->where('id',$room_id)->update([
|
||||
'sign_type' => 0,
|
||||
'updatetime' => time()
|
||||
]);
|
||||
//修改房间签约信息
|
||||
$res2 = db::name('vs_room_sign')->where(['id' => $sign_time])
|
||||
db::name('vs_room_sign')->where(['id' => $sign_time])
|
||||
->update([
|
||||
'sign_type' => 0,
|
||||
'end_time' => time()
|
||||
@@ -476,12 +481,11 @@ class Sign extends Model
|
||||
if($user_pit_info && $user_pit_info['pit_number']){
|
||||
//用户已在麦上,换到2号位
|
||||
//记录原麦位信息
|
||||
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 2])
|
||||
->update(['user_id' => $user_id]);
|
||||
|
||||
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => $user_pit_info['pit_number']])
|
||||
->update(['before_pit_number' => $user_pit_info['pit_number'], 'user_id' => 0]);
|
||||
->update(['user_id' => 0]);
|
||||
|
||||
db::name('vs_room_pit')->where(['room_id' => $room_id, 'pit_number' => 2])
|
||||
->update(['user_id' => $user_id,'before_pit_number' => $user_pit_info['pit_number']]);
|
||||
//推送换麦消息
|
||||
$this->sendPitChangeMessage($user_id, $room_id, $user_pit_info['pit_number'], 2);
|
||||
} else {
|
||||
|
||||
@@ -282,7 +282,11 @@ class Tencent extends Model
|
||||
$reslut = $this->tencent_post_url($postUrl, $curlPost);
|
||||
// $txt = date('Y-m-d H:i:s').'测试';
|
||||
// error_log($txt, 3, 'a.txt');
|
||||
return $reslut;
|
||||
if($reslut['ActionStatus'] == 'OK'){
|
||||
return ['code' => 1, 'msg' => '发送成功', 'data' => $reslut];
|
||||
}else{
|
||||
return ['code' => 0, 'msg' => $reslut['ErrorCode'], 'data' => $reslut];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -973,106 +977,106 @@ class Tencent extends Model
|
||||
|
||||
//腾讯IM监控在线状态更新
|
||||
public function tencent_member_status_change($info){
|
||||
$uid = substr($info['To_Account'],1);
|
||||
$action = $info['Action'];
|
||||
|
||||
if($action == 'Disconnect') {
|
||||
$is_keep = 1;
|
||||
$keep = db::name('vs_xintiao')->where('user_id' , $uid)->find();
|
||||
if(isset($keep)){
|
||||
if(time() - $keep['updatetime'] >= 60){
|
||||
$is_keep = 0;
|
||||
}
|
||||
}
|
||||
|
||||
//判断保活用户是否安卓用户
|
||||
$user_system = db::name('user')->where('id' , $uid)->value('system');
|
||||
if($user_system == 'android'){
|
||||
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
||||
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
|
||||
Log::record("腾讯离线推送,用户安卓所在房间信息".json_encode($quit_room),"infos");
|
||||
if($quit_room) {
|
||||
foreach ($quit_room as &$v){
|
||||
if(isset($v['room_id'])){
|
||||
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
|
||||
// Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
|
||||
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
|
||||
// Log::record("腾讯离线推送,我是二卡八","infos");
|
||||
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||
}else{
|
||||
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
|
||||
$text['text'] = '掉线!';
|
||||
$text['user_id'] = $uid;
|
||||
$text['type'] = 2;
|
||||
model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
||||
}else {
|
||||
//查询是否有切后台的操作
|
||||
// $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
|
||||
// if(!$bg_room){
|
||||
// // Log::record("腾讯离线推送,要踢你","infos");
|
||||
// model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||
// }
|
||||
Log::record("腾讯离线推送,判断心跳".$is_keep,"infos");
|
||||
if($is_keep == 0){
|
||||
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$room_type = null;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
||||
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
|
||||
// Log::record("腾讯离线推送,房间信息".json_encode($quit_room),"infos");
|
||||
if($quit_room) {
|
||||
foreach ($quit_room as &$v){
|
||||
if(isset($v['room_id'])){
|
||||
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
|
||||
// Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
|
||||
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
|
||||
// Log::record("腾讯离线推送,我是二卡八","infos");
|
||||
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||
}else{
|
||||
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
|
||||
$text['text'] = '掉线!';
|
||||
$text['user_id'] = $uid;
|
||||
$text['type'] = 2;
|
||||
model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
||||
}else {
|
||||
//查询是否有切后台的操作
|
||||
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
|
||||
if(!$bg_room){
|
||||
// Log::record("腾讯离线推送,要踢你","infos");
|
||||
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$room_type = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
} elseif ($action == 'Login') {
|
||||
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||
$room = Db::name('vs_room_visitor')->where('user_id', $uid)->order('id desc')->value('room_id');
|
||||
|
||||
$text['text'] = '重新上线!';
|
||||
$text['user_id'] = $uid;
|
||||
$text['type'] = 1;
|
||||
model('Chat')->sendMsg(1058,$room,$text);
|
||||
}elseif ($action == 'Logout'){
|
||||
// Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
||||
// $uid = substr($info['To_Account'],1);
|
||||
// $action = $info['Action'];
|
||||
//
|
||||
// if($action == 'Disconnect') {
|
||||
// $is_keep = 1;
|
||||
// $keep = db::name('vs_xintiao')->where('user_id' , $uid)->find();
|
||||
// if(isset($keep)){
|
||||
// if(time() - $keep['updatetime'] >= 60){
|
||||
// $is_keep = 0;
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// //判断保活用户是否安卓用户
|
||||
// $user_system = db::name('user')->where('id' , $uid)->value('system');
|
||||
// if($user_system == 'android'){
|
||||
// Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
||||
// $quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
|
||||
// Log::record("腾讯离线推送,用户安卓所在房间信息".json_encode($quit_room),"infos");
|
||||
// if($quit_room) {
|
||||
// foreach ($quit_room as &$v){
|
||||
// if(isset($v['room_id'])){
|
||||
// $room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
|
||||
// // Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
|
||||
// if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
|
||||
// // Log::record("腾讯离线推送,我是二卡八","infos");
|
||||
// Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||
// }else{
|
||||
// if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
|
||||
// $text['text'] = '掉线!';
|
||||
// $text['user_id'] = $uid;
|
||||
// $text['type'] = 2;
|
||||
// model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
||||
// }else {
|
||||
// //查询是否有切后台的操作
|
||||
// // $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
|
||||
// // if(!$bg_room){
|
||||
// // // Log::record("腾讯离线推送,要踢你","infos");
|
||||
// // model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||
// // }
|
||||
// Log::record("腾讯离线推送,判断心跳".$is_keep,"infos");
|
||||
// if($is_keep == 0){
|
||||
// model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// $room_type = null;
|
||||
// }
|
||||
// }
|
||||
// }else{
|
||||
// Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
|
||||
// $quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
|
||||
// // Log::record("腾讯离线推送,房间信息".json_encode($quit_room),"infos");
|
||||
// if($quit_room) {
|
||||
// foreach ($quit_room as &$v){
|
||||
// if(isset($v['room_id'])){
|
||||
// $room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find();
|
||||
// // Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
|
||||
// if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
|
||||
// // Log::record("腾讯离线推送,我是二卡八","infos");
|
||||
// Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||
// }else{
|
||||
// if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
|
||||
// $text['text'] = '掉线!';
|
||||
// $text['user_id'] = $uid;
|
||||
// $text['type'] = 2;
|
||||
// model('Chat')->sendMsg(1058,$v['room_id'],$text);
|
||||
// }else {
|
||||
// //查询是否有切后台的操作
|
||||
// $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
|
||||
// if(!$bg_room){
|
||||
// // Log::record("腾讯离线推送,要踢你","infos");
|
||||
// model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// $room_type = null;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
//
|
||||
//
|
||||
//
|
||||
// } elseif ($action == 'Login') {
|
||||
// Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
|
||||
// $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['type'] = 2;
|
||||
// $text['type'] = 1;
|
||||
// model('Chat')->sendMsg(1058,$room,$text);
|
||||
}
|
||||
// }elseif ($action == 'Logout'){
|
||||
//// 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');
|
||||
//// $text['text'] = '掉线!';
|
||||
//// $text['user_id'] = $uid;
|
||||
//// $text['type'] = 2;
|
||||
//// model('Chat')->sendMsg(1058,$room,$text);
|
||||
// }
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -210,6 +210,11 @@ class User extends Model
|
||||
$user_info['master'] = null;
|
||||
}
|
||||
|
||||
//身价配置
|
||||
$coin_market_value = explode(',', get_system_config_value('coin_market_value'));;
|
||||
$user_info['market_value_coin'] = $coin_market_value[0];
|
||||
$user_info['market_value_market'] = $coin_market_value[1];
|
||||
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info];
|
||||
}
|
||||
|
||||
@@ -436,6 +441,11 @@ class User extends Model
|
||||
}else{
|
||||
$user_info['master'] = null;
|
||||
}
|
||||
|
||||
//身价配置
|
||||
$coin_market_value = explode(',', get_system_config_value('coin_market_value'));;
|
||||
$user_info['market_value_coin'] = $coin_market_value[0];
|
||||
$user_info['market_value_market'] = $coin_market_value[1];
|
||||
return ['code' => 1, 'msg' => '获取成功', 'data' => $user_info];
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace app\cron\controller;
|
||||
|
||||
use think\Cache;
|
||||
use think\Db;
|
||||
|
||||
class FriendEnd
|
||||
@@ -18,9 +19,67 @@ class FriendEnd
|
||||
echo "清除私密小屋过期数据开始:\n";
|
||||
$this->clear_room_end();//清除私密小屋过期数据
|
||||
echo "清除私密小屋过期数据结束 \n";
|
||||
|
||||
echo "查询在线状态:\n";
|
||||
$this->online_status();
|
||||
echo "\n";
|
||||
}
|
||||
|
||||
|
||||
//查询在线状态
|
||||
protected function online_status()
|
||||
{
|
||||
$user_list = db::name('vs_xintiao')->select();
|
||||
if($user_list){
|
||||
foreach ($user_list as &$value){
|
||||
if(time() - $value['updatetime'] >= 183){//2秒刷新一次,加上用户多 三分钟补偿3秒
|
||||
//断线
|
||||
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>2]);
|
||||
//是否在房间内
|
||||
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
|
||||
if($room_id){
|
||||
|
||||
$text['text'] = '掉线!';
|
||||
$text['user_id'] = $value['user_id'];
|
||||
$text['type'] = 2;
|
||||
model('Chat')->sendMsg(1058,$room_id,$text);
|
||||
|
||||
//拍卖位,互娱交友过程中1-6号麦位,签约过程中签约麦位不能退出房间 则推送离线
|
||||
// $auction_user_id = Cache::get('auction_user_'.$room_id);
|
||||
// $roomInfoStep = db::name('vs_room')->where(['id' => $room_id])->value('step');
|
||||
// $room_pit = db::name('vs_room_pit')->where(['room_id' => $room_id, 'user_id' => $value['user_id']])->find();
|
||||
// $vs_room_sign = db::name('vs_room_sign')->where(['room_id' => $room_id, 'sign_user_id' => $value['user_id'],'sign_type'=>1])->find();
|
||||
// if($auction_user_id == $value['user_id']
|
||||
// || ($roomInfoStep == 2 && in_array($room_pit['pit_number'],[1,2,3,4,5,6]))
|
||||
// || $vs_room_sign)
|
||||
// {
|
||||
//
|
||||
// }else{//其他退出房间
|
||||
// model('api/Room')->quit_room($value['user_id'],$room_id,$value['user_id']);
|
||||
// }
|
||||
}
|
||||
}else{
|
||||
$is_online = db::name('user')->where('id',$value['user_id'])->value('is_online');
|
||||
if($is_online == 1){
|
||||
//在线
|
||||
continue;
|
||||
}else{
|
||||
//在线
|
||||
db::name('user')->where('id',$value['user_id'])->update(['is_online'=>1]);
|
||||
//是否在房间内
|
||||
$room_id = db::name('vs_room_visitor')->where('user_id',$value['user_id'])->order('id desc')->value('room_id');
|
||||
if($room_id){
|
||||
$text['text'] = '重新上线!';
|
||||
$text['user_id'] = $value['user_id'];
|
||||
$text['type'] = 1;
|
||||
model('Chat')->sendMsg(1058,$room_id,$text);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//清除交友房过期未结束数据
|
||||
public function clearFriendingEndRoom()
|
||||
{
|
||||
|
||||
@@ -21,18 +21,23 @@ class PerformPerSecond
|
||||
echo "拍卖房结束提醒:\n";
|
||||
$this->auction_end_notice();//拍卖房结束提醒
|
||||
echo "\n";
|
||||
|
||||
echo "Pk房连线中倒计时结束操作PK结束:\n";
|
||||
$this->pk_start_end();
|
||||
echo "\n";
|
||||
|
||||
echo "Pk房PK进行中倒计时结束操作PK结束:\n";
|
||||
$this->pk_end();
|
||||
echo "\n";
|
||||
|
||||
echo "Pk房PK结束惩罚倒计时结束断开操作:\n";
|
||||
$this->pk_close();
|
||||
echo "\n";
|
||||
|
||||
echo "pk发起10秒后无应答拒绝:\n";
|
||||
$this->pk_start_refuse();
|
||||
echo "\n";
|
||||
|
||||
echo "房间红包清退:\n";
|
||||
$this->processExpiredRedpackets();
|
||||
echo "\n";
|
||||
@@ -40,12 +45,15 @@ class PerformPerSecond
|
||||
echo "提现云账号订单状态查询:\n";
|
||||
$this->withdraw_order_status();
|
||||
echo "\n";
|
||||
|
||||
echo "签约房时间结束处理:\n";
|
||||
$this->sign_room_time_end();
|
||||
echo "\n";
|
||||
|
||||
echo "系统降身价:\n";
|
||||
$this->system_downgrade();
|
||||
echo "\n";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -15,13 +15,16 @@ class TenSeconds
|
||||
*/
|
||||
function index()
|
||||
{
|
||||
echo "房间在线人数:\n";
|
||||
$this->auction_end_notice();//拍卖房结束提醒
|
||||
echo "\n";
|
||||
//下面两个经业务调整 暂时不要了
|
||||
|
||||
|
||||
// echo "房间在线人数:\n";
|
||||
// $this->auction_end_notice();//拍卖房结束提醒
|
||||
// echo "\n";
|
||||
//清理切后台超过5分钟的用户
|
||||
echo "清理切后台超过5分钟的用户\n";
|
||||
$this->clear_offline_user();
|
||||
echo "\n";
|
||||
// echo "清理切后台超过5分钟的用户\n";
|
||||
// $this->clear_offline_user();
|
||||
// echo "\n";
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user