This commit is contained in:
2025-12-02 11:31:51 +08:00
parent 3ad2731dba
commit ef8b93c8d1
6 changed files with 172 additions and 108 deletions

View File

@@ -57,7 +57,7 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '上麦失败', 'data' => null]; return ['code' => 0, 'msg' => '上麦失败', 'data' => null];
} }
// $nickname = model('User')->where(['id' => $user_id])->value('nickname'); // $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'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
@@ -332,7 +332,7 @@ class RoomPit extends Model
if(!$exchange || !$exchange1){ if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null]; 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'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
@@ -391,7 +391,7 @@ class RoomPit extends Model
if(!$exchange || !$exchange1){ if(!$exchange || !$exchange1){
return ['code' => 0, 'msg' => '换麦失败', 'data' => null]; 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'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);
@@ -691,7 +691,7 @@ class RoomPit extends Model
continue; 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'][0] = model('UserData')->user_wealth_icon($value);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1);
@@ -736,7 +736,7 @@ class RoomPit extends Model
// } // }
Cache::set('auction_user_'.$room_id,$value); 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'][0] = model('UserData')->user_wealth_icon($value);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($value);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($value,1);
@@ -813,7 +813,7 @@ class RoomPit extends Model
return ['code' => 0, 'msg' => '操作失败', 'data' => null]; 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'][0] = model('UserData')->user_wealth_icon($uid);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($uid);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($uid,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($uid,1);

View File

@@ -518,7 +518,7 @@ class RoomSong extends Model
if(isset($pit_infos)){ if(isset($pit_infos)){
return ['code' => 0, 'msg' => '用户已在麦上,请先下麦后再申请', 'data' => null]; 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'][0] = model('UserData')->user_wealth_icon($user_id);//财富图标
$FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标 $FromUserInfo['icon'][1] = model('UserData')->user_charm_icon($user_id);//魅力图标
$FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1); $FromUserInfo['dress'] = model('Decorate')->user_decorate_detail($user_id,1);

View File

@@ -240,7 +240,7 @@ class Sign extends Model
} }
}else{ }else{
$result5 = db::name('vs_user_sign')->where(['id' => $is_sign['id']]) $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){ if(!$result5){
db::rollback(); db::rollback();
return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null]; return ['code' => 0, 'msg' => '网络错误,请重试', 'data' => null];
@@ -410,12 +410,12 @@ class Sign extends Model
model('api/Chat')->sendMsg(1092,$room_id,$text); model('api/Chat')->sendMsg(1092,$room_id,$text);
}else{ }else{
//修改房间信息 //修改房间信息
$res1 = db::name('vs_room')->where('id',$room_id)->update([ db::name('vs_room')->where('id',$room_id)->update([
'sign_type' => 0, 'sign_type' => 0,
'updatetime' => time() 'updatetime' => time()
]); ]);
//修改房间签约信息 //修改房间签约信息
$res2 = db::name('vs_room_sign')->where(['id' => $sign_time]) db::name('vs_room_sign')->where(['id' => $sign_time])
->update([ ->update([
'sign_type' => 0, 'sign_type' => 0,
'end_time' => time() 'end_time' => time()

View File

@@ -282,7 +282,11 @@ class Tencent extends Model
$reslut = $this->tencent_post_url($postUrl, $curlPost); $reslut = $this->tencent_post_url($postUrl, $curlPost);
// $txt = date('Y-m-d H:i:s').'测试'; // $txt = date('Y-m-d H:i:s').'测试';
// error_log($txt, 3, 'a.txt'); // 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监控在线状态更新 //腾讯IM监控在线状态更新
public function tencent_member_status_change($info){ public function tencent_member_status_change($info){
$uid = substr($info['To_Account'],1); // $uid = substr($info['To_Account'],1);
$action = $info['Action']; // $action = $info['Action'];
//
if($action == 'Disconnect') { // if($action == 'Disconnect') {
$is_keep = 1; // $is_keep = 1;
$keep = db::name('vs_xintiao')->where('user_id' , $uid)->find(); // $keep = db::name('vs_xintiao')->where('user_id' , $uid)->find();
if(isset($keep)){ // if(isset($keep)){
if(time() - $keep['updatetime'] >= 60){ // if(time() - $keep['updatetime'] >= 60){
$is_keep = 0; // $is_keep = 0;
} // }
} // }
//
//判断保活用户是否安卓用户 // //判断保活用户是否安卓用户
$user_system = db::name('user')->where('id' , $uid)->value('system'); // $user_system = db::name('user')->where('id' , $uid)->value('system');
if($user_system == 'android'){ // if($user_system == 'android'){
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]); // Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select(); // $quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
Log::record("腾讯离线推送,用户安卓所在房间信息".json_encode($quit_room),"infos"); // Log::record("腾讯离线推送,用户安卓所在房间信息".json_encode($quit_room),"infos");
if($quit_room) { // if($quit_room) {
foreach ($quit_room as &$v){ // foreach ($quit_room as &$v){
if(isset($v['room_id'])){ // if(isset($v['room_id'])){
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find(); // $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"); // // Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){ // if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
// Log::record("腾讯离线推送,我是二卡八","infos"); // // Log::record("腾讯离线推送,我是二卡八","infos");
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]); // Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
}else{ // }else{
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){ // if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
$text['text'] = '掉线!'; // $text['text'] = '掉线!';
$text['user_id'] = $uid; // $text['user_id'] = $uid;
$text['type'] = 2; // $text['type'] = 2;
model('Chat')->sendMsg(1058,$v['room_id'],$text); // model('Chat')->sendMsg(1058,$v['room_id'],$text);
}else { // }else {
//查询是否有切后台的操作 // //查询是否有切后台的操作
// $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find(); // // $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
// if(!$bg_room){ // // if(!$bg_room){
// // Log::record("腾讯离线推送,要踢你","infos"); // // // Log::record("腾讯离线推送,要踢你","infos");
// model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2); // // model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
// } // // }
Log::record("腾讯离线推送,判断心跳".$is_keep,"infos"); // Log::record("腾讯离线推送,判断心跳".$is_keep,"infos");
if($is_keep == 0){ // if($is_keep == 0){
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2); // model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
} // }
} // }
} // }
} // }
$room_type = null; // $room_type = null;
} // }
} // }
}else{ // }else{
Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]); // Db::name('user')->where('id', $uid)->update(['is_online' => 0, 'updatetime' => time()]);
$quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select(); // $quit_room = Db::name('vs_room_visitor')->where('user_id', $uid)->select();
// Log::record("腾讯离线推送,房间信息".json_encode($quit_room),"infos"); // // Log::record("腾讯离线推送,房间信息".json_encode($quit_room),"infos");
if($quit_room) { // if($quit_room) {
foreach ($quit_room as &$v){ // foreach ($quit_room as &$v){
if(isset($v['room_id'])){ // if(isset($v['room_id'])){
$room_type = db::name('vs_room')->where(['id' => $v['room_id']])->field('step,type_id,label_id')->find(); // $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"); // // Log::record("腾讯离线推送,房间类型".json_encode($room_type),"infos");
if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){ // if($room_type['label_id'] == 1 && ($room_type['type_id'] == 1 || $room_type['type_id'] == 8)){
// Log::record("腾讯离线推送,我是二卡八","infos"); // // Log::record("腾讯离线推送,我是二卡八","infos");
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]); // Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]);
}else{ // }else{
if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){ // if(isset($room_type) && ($room_type['type_id'] == 7 && ($room_type['step'] == 2 ||$room_type['step'] == 3)) || $room_type == 2){
$text['text'] = '掉线!'; // $text['text'] = '掉线!';
$text['user_id'] = $uid; // $text['user_id'] = $uid;
$text['type'] = 2; // $text['type'] = 2;
model('Chat')->sendMsg(1058,$v['room_id'],$text); // model('Chat')->sendMsg(1058,$v['room_id'],$text);
}else { // }else {
//查询是否有切后台的操作 // //查询是否有切后台的操作
$bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find(); // $bg_room = db::name('vs_user_in_room_bg')->where(['room_id' => $v['room_id'],'user_id' => $v['user_id']])->find();
if(!$bg_room){ // if(!$bg_room){
// Log::record("腾讯离线推送,要踢你","infos"); // // Log::record("腾讯离线推送,要踢你","infos");
model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2); // model('Room')->quit_room($v['user_id'], $v['room_id'],$v['user_id'],2);
} // }
} // }
} // }
} // }
$room_type = null; // $room_type = null;
} // }
} // }
} // }
//
//
//
} elseif ($action == 'Login') { // } elseif ($action == 'Login') {
Db::name('user')->where('id', $uid)->update(['is_online' => 1, 'updatetime' => time()]); // 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()]);
// $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'] = 2; // $text['type'] = 1;
// model('Chat')->sendMsg(1058,$room,$text); // 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; return true;
} }

View File

@@ -2,6 +2,7 @@
namespace app\cron\controller; namespace app\cron\controller;
use think\Cache;
use think\Db; use think\Db;
class FriendEnd class FriendEnd
@@ -18,9 +19,67 @@ class FriendEnd
echo "清除私密小屋过期数据开始:\n"; echo "清除私密小屋过期数据开始:\n";
$this->clear_room_end();//清除私密小屋过期数据 $this->clear_room_end();//清除私密小屋过期数据
echo "清除私密小屋过期数据结束 \n"; 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'=>0]);
//是否在房间内
$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() public function clearFriendingEndRoom()
{ {

View File

@@ -46,6 +46,7 @@ class PerformPerSecond
echo "系统降身价:\n"; echo "系统降身价:\n";
$this->system_downgrade(); $this->system_downgrade();
echo "\n"; echo "\n";
} }