房间排行榜

This commit is contained in:
2026-01-16 14:56:01 +08:00
parent 50a7226864
commit b8b935c8b2
3 changed files with 65 additions and 32 deletions

View File

@@ -1855,51 +1855,44 @@ class Room extends Model
//房间排行
public function room_rank($room_id, $type, $timetype, $page, $limit)
{
$where['a.from_id'] = $room_id;
$where['a.from'] = 2;
if($timetype == 1){
//时间榜 查询当前这一小时的数据
$begin_time = strtotime(date('Y-m-d H:00:00'));
$end_time = strtotime(date('Y-m-d H:59:59'));
$where['a.createtime'] = ['between', [$begin_time, $end_time]];
}elseif($timetype == 2){
//天榜 查询当天数据
$where['a.createtime'] = ['between', [strtotime(date('Y-m-d')), time()]];
$begin_time = strtotime(date('Y-m-d'));
$end_time = time();
}elseif ($timetype == 3){
//周榜 查询当周数据 从周一起查
//周一到周天
$where['a.createtime'] = ['between', [strtotime('this week Monday'), time()]];
//周榜 查询当周数据 从周一起查 //周一到周天
$begin_time = strtotime('this week Monday');
$end_time = time();
}else{//时间榜 默认
$begin_time = strtotime(date('Y-m-d H:00:00'));
$end_time = strtotime(date('Y-m-d H:59:59'));
}
$params['from_id'] = $room_id;
$params['start_time'] = $begin_time;
$params['end_time'] = $end_time;
$params['page'] = $page;
$params['limit'] = $limit;
if($type == 1){//1财富榜2魅力榜
$list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.user_id = b.id')
->field('a.user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
->where($where)
->order('total desc')
->group('a.user_id')
->page($page, $limit)
->select();
$res = model('api/GiveGiftBases')->getRoomGiftRanking($params, $type);
$list = $res['data'];
}else{
$list = db::name('vs_give_gift')->alias('a')
->join('user b', 'a.gift_user = b.id')
->field('a.gift_user as user_id,b.nickname,b.avatar,sum(a.total_price) * 10 as total')
->where($where)
->order('total desc')
->group('a.gift_user')
->page($page, $limit)
->select();
$res = model('api/GiveGiftBases')->getRoomGiftRanking($params, $type);
$list = $res['data'];
}
if(isset($list)){
foreach($list as &$v){
//用户等级标签
$v['icon'][0] = model('UserData')->user_wealth_icon($v['user_id']);//财富图标
$v['icon'][1] = model('UserData')->user_charm_icon($v['user_id']);//魅力图标
//判断是否是歌手 如果是 返回等级图标
$isSinger = db::name('vs_singer')->where(['user_id' => $v['user_id'],'status' => 1])->find();
if($isSinger){
$v['icon'][2] = db::name('vs_singer_level')->where(['level' => $isSinger['level'],'deletetime' => 0])->value('image');//等级图标
foreach ($list as &$value) {
if(isset($value['gift_user'])){//$value['gift_user']
$value['user_id'] = $value['gift_user'];
}
$value['nickname'] = db::name('user')->where('id', $value['user_id'])->value('nickname');
$value['avatar'] = db::name('user')->where('id', $value['user_id'])->value('avatar');
}
}
return ['code' => 1, 'msg' => '成功', 'data' => $list];