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; } }