Files
mier-php/application/api/model/RoomBossMicro.php

100 lines
3.8 KiB
PHP
Raw Permalink Normal View History

2025-08-11 10:22:05 +08:00
<?php
namespace app\api\model;
use think\Db;
use think\Model;
class RoomBossMicro extends Model
{
//更新房间在线用户财富值
public function update_room_visitor_value($uid, $rid, $change_value){
$map = [];
$map[] = ['uid', '=', $uid];
$map[] = ['rid', '=', $rid];
$room_visitor_info = db::name('room_visitor')->where($map)->find();
if($room_visitor_info){
$reslut = db::name('room_visitor')->where('vid', $room_visitor_info['vid'])->inc('change_value', $change_value)->update(['update_time' => time()]);
if(!$reslut){
return ['code' => 201, 'msg' => '失败', 'data' => null];
}
$cate_id = db::name('room')->where('rid', $rid)->value('cate_id');
// if(in_array($cate_id, [27,28])){
// //更新老板麦信息
// $this->update_room_boss_micro($rid);
// }
//拍卖房不需要更新老板麦
if(in_array($cate_id, [27])){
//更新老板麦信息
$this->update_room_boss_micro($rid);
}
}
return ['code' => 200, 'msg' => '获取成功', 'data' => null];
}
//更新老板麦
public function update_room_boss_micro($rid){
//当前房间麦位用户
// $map = [];
// $map[] = ['rid', '=', $rid];
// $map[] = ['micro_id', 'in', [1,2,3,4,9]];
// $map[] = ['uid', '>', 0];
// $room_micro_arr = db::name('room_micro')->where($map)->column('uid');
//当前房间主持用户
// $room_host_uid = db::name('room')->where('rid', $rid)->value('room_host_uid');
// if($room_host_uid > 0){
// $room_micro_arr[] = $room_host_uid;
// $room_micro_arr = array_values($room_micro_arr);
// }
//当前老板麦用户信息
$map = [];
$map[] = ['rid', '=', $rid];
$map[] = ['micro_id', 'in', [5,6,7,8]];
$room_boss_micro_arr = db::name('room_micro')->where($map)->order('micro_id asc')->column('uid');
//获取当前房间在线贡献前四用户
$map = [];
$map[] = ['rid', '=', $rid];
// $map[] = ['uid', 'not in', $room_micro_arr];
$map[] = ['change_value', '>', 0];
$map[] = ['is_delete', '=', 1];
$room_visitor_list = db::name('room_visitor')->where($map)->find();
if(!empty($room_visitor_list)){
$room_visitor_arr = db::name('room_visitor')->where($map)->order('change_value desc')->limit(4)->column('uid');
if($room_visitor_arr != $room_boss_micro_arr){
foreach ($room_visitor_arr as $k => $v){
if($v != $room_boss_micro_arr[$k]){
//是否有在其他麦位
$map = [];
$map[] = ['rid', '=', $rid];
$map[] = ['micro_id', 'in', [5,6,7,8]];
$map[] = ['uid', '=', $v];
$info = db::name('room_micro')->where($map)->find();
if($info){
db::name('room_micro')->where('id', $info['id'])->update(['uid' => 0, 'frame_gid' => 0, 'centre_gid' => 0, 'above_gid' => 0, 'below_gid' => 0, 'left_gid'=> 0, 'right_gid' => 0, 'update_time' => time()]);
}
//变更麦位信息
$micro_id = $k + 5;
db::name('room_micro')->where('rid', $rid)->where('micro_id', $micro_id)->update(['uid' => $v, 'update_time' => time()]);
}
}
}
}
return true;
}
}