100 lines
3.8 KiB
PHP
100 lines
3.8 KiB
PHP
<?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;
|
|
}
|
|
|
|
|
|
}
|