房间小时榜相关
This commit is contained in:
@@ -31,74 +31,4 @@ class RoomHourRanking extends BaseCom
|
||||
return V($reslut['code'], $reslut['msg'], $reslut['data']);
|
||||
}
|
||||
|
||||
//房间小时榜 测试 等会删除
|
||||
public function room_hour_rankings()
|
||||
{
|
||||
$page = input('page', 1);
|
||||
$page_limit = input('page_limit', 20);
|
||||
//判断是否开启
|
||||
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
|
||||
if ($open_time == 0) { // 修复比较运算符
|
||||
// return V(0, '排行榜暂未开启');
|
||||
}
|
||||
|
||||
//是否开启巡乐会
|
||||
$is_open_xlh = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('is_open_xlh');
|
||||
//是否开启红包(下面的不要删掉)
|
||||
// $is_open_red_pack = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('is_open_red_pack');
|
||||
$is_open_red_pack = 0 ;
|
||||
|
||||
//当前小时开始时间
|
||||
$start_time = strtotime(date('Y-m-d H:00:00'));
|
||||
|
||||
// 先查询所有符合条件的房间
|
||||
$rooms = db::name('vs_room')->alias('a')
|
||||
->join('vs_room_label c', 'a.label_id = c.id','left')
|
||||
->field('a.id as room_id,a.room_name,a.label_id,a.room_cover,0 as total_price,c.label_icon')
|
||||
->where('a.room_status', 1)
|
||||
->where('a.apply_status', 2)
|
||||
->page($page, $page_limit)
|
||||
->select();
|
||||
|
||||
if ($rooms) {
|
||||
// 获取房间ID列表
|
||||
$room_ids = array_column($rooms, 'room_id');
|
||||
|
||||
// 查询这些房间在当前小时的礼物总额
|
||||
$gift_data = db::name('vs_give_gift')
|
||||
->field('from_id as room_id, sum(total_price) as total_price')
|
||||
->where('from', 2)
|
||||
->where('from_id', 'in', $room_ids)
|
||||
->where('createtime', 'between', [$start_time, time()])
|
||||
->group('from_id')
|
||||
->select();
|
||||
|
||||
// 将礼物数据合并到房间数据中
|
||||
$gift_map = [];
|
||||
foreach ($gift_data as $gift) {
|
||||
$gift_map[$gift['room_id']] = $gift['total_price'] * get_system_config_value('coin_charm_exp');;
|
||||
}
|
||||
|
||||
// 更新房间数据
|
||||
foreach ($rooms as &$room) {
|
||||
$room['total_price'] = isset($gift_map[$room['room_id']]) ? $gift_map[$room['room_id']] : 0;
|
||||
|
||||
if($room['room_id'] > 0 && $is_open_xlh == 1){
|
||||
$xlh_status = model('BlindBoxTurntableGift')->get_user_xlh_info($room['room_id']);
|
||||
$room['xlh_status'] = $xlh_status['xlh_status'];
|
||||
}else{
|
||||
$room['xlh_status'] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// 按礼物总额排序
|
||||
usort($rooms, function($a, $b) {
|
||||
return $b['total_price'] <=> $a['total_price'];
|
||||
});
|
||||
}
|
||||
//当前小时开始时间 和结束时间 00:00-00:59 这样的格式
|
||||
$time_range = date('H:') . '00-' . date('H:'). '59';
|
||||
|
||||
return V(1, '获取成功', ['time_range' => $time_range, 'lists' =>$rooms]);
|
||||
}
|
||||
}
|
||||
@@ -850,7 +850,16 @@ class Room extends Model
|
||||
}
|
||||
|
||||
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
|
||||
|
||||
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
|
||||
if($open_time > 0){
|
||||
if($open_time <= time()){
|
||||
$hour_open = 1;//开启
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
return ['code' => 1,
|
||||
'msg' => '成功',
|
||||
'data' => ['room_info' => $room_info,
|
||||
@@ -864,6 +873,7 @@ class Room extends Model
|
||||
'song_pit_list' => $song_pit_list,
|
||||
'friend_info' => $friend,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open
|
||||
]
|
||||
];
|
||||
}
|
||||
@@ -2006,6 +2016,16 @@ class Room extends Model
|
||||
}
|
||||
|
||||
$xlh_info['xlh_info'] = model('BlindBoxTurntableGift')->get_user_xlh_info($room_id);
|
||||
$open_time = db::name('vs_hour_ranking_config')->order('id', 'desc')->value('open_time');
|
||||
if($open_time > 0){
|
||||
if($open_time <= time()){
|
||||
$hour_open = 1;//开启
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
}else{
|
||||
$hour_open = 0;//关闭
|
||||
}
|
||||
|
||||
return ['code' => 1,
|
||||
'msg' => '成功',
|
||||
@@ -2020,6 +2040,7 @@ class Room extends Model
|
||||
'song_pit_list'=>$song_pit_list,
|
||||
'friend_info' => $friend,
|
||||
'gift_cycle' => $xlh_info,
|
||||
'hour_ranking_open' => $hour_open
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user