Files
mier-php/application/api/model/RoomVisitor.php
2025-08-11 10:22:05 +08:00

73 lines
2.3 KiB
PHP

<?php
namespace app\api\model;
use think\Db;
use think\Model;
class RoomVisitor extends Model
{
public function user_is_in_room($uid, $rid)
{
$map = [];
$map[] = ['uid', '=', $uid];
$map[] = ['rid', '=', $rid];
$info = db::name('room_visitor')->where($map)->find();
if (empty($info)) {
return ['code' => 201, 'msg' => '用户已不在房间', 'data' => null];
} else {
return ['code' => 200, 'msg' => '用户在房间中', 'data' => null];
}
}
//用户游客列表
public function get_room_visitor_list($uid, $rid, $visitor_uid)
{
$map = [];
$map['rid'] = $rid;
$map['is_delete'] = 1;
$room_info = db::name('room')->field('rid,tid,uid,room_micro,room_owner_uid')->where($map)->find();
if (empty($room_info)) {
return ['code' => 201, 'msg' => '房间信息不存在', 'data' => null];
}
if ($room_info['uid'] != $uid) {
return ['code' => 201, 'msg' => '权限不足', 'data' => null];
}
$model = Db::name('room_visitor')->alias('a')->join('yy_user b', 'a.uid = b.uid');
$map = [];
$map[] = ['a.rid', '=', $rid];
$model = $model->where($map);
if (!empty($visitor_uid)) {
$map[] = ['b.uid', '=', $visitor_uid];
}
$list = $model->field('a.vid,a.lid,b.base64_nick_name,b.sex,b.heac_pic')->order('a.vid asc')->select();
foreach ($list as $k => &$v) {
$v['heac_pic'] = localpath_to_netpath($v['heac_pic']);
$v['nick_name'] = mb_convert_encoding(base64_decode($v['base64_nick_name']), 'UTF-8', 'UTF-8');
}
return ['code' => 200, 'msg' => '获取成功', 'data' => $list];
}
//更新到期游客记录
public function close_room_visitor(){
set_time_limit(0);
ini_set('memory_limit', '1024M');
$map = [];
$map[] = ['is_delete', '=', 2];
$map[] = ['end_time', '<', time()];
$room_visitor_list = db::name('room_visitor')->where($map)->select();
if(!empty($room_visitor_list)){
db::name('room_visitor')->where($map)->delete();
}
echo date('Y-m-d H:i:s').'更新到期游客记录 执行成功';
}
}