2025-09-29 16:27:36 +08:00
< ? php
namespace app\api\model ;
use think\Db ;
use think\Model ;
class RoomHourRanking extends Model
{
//房间小时榜
public function room_hour_ranking ( $page , $page_limit , $start_time = null , $end_time = null )
{
//当前小时开始时间
if ( $start_time == null ){
$start_time = strtotime ( date ( 'Y-m-d H:00:00' ));
}
//结束时间
if ( $end_time == null ){
$end_time = strtotime ( date ( 'Y-m-d H:59:59' ));
}
//判断是否开启
$open_time = db :: name ( 'vs_hour_ranking_config' ) -> order ( 'id' , 'desc' ) -> value ( 'open_time' );
if ( $open_time == 0 ) {
2025-09-29 16:28:34 +08:00
// return ['code' => 0, 'msg' => '排行榜暂未开启', 'data' => null];
2025-09-29 16:27:36 +08:00
}
//是否开启巡乐会
$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 ;
$profit = db :: name ( 'vs_room' ) -> alias ( 'a' )
-> join ( 'vs_give_gift b' , 'a.id = b.from_id AND b.from = 2 AND b.createtime BETWEEN ' . $start_time . ' AND ' . $end_time , 'left' )
-> join ( 'vs_room_label c' , 'a.label_id = c.id' , 'left' )
2025-09-29 18:53:29 +08:00
-> field ( 'a.id as room_id,a.user_id,a.room_name,a.label_id,a.room_cover,IFNULL(sum(b.total_price), 0) as total_price *' . get_system_config_value ( 'coin_charm_exp' ) . ',c.label_icon' )
2025-09-29 16:27:36 +08:00
-> where ( 'a.room_status' , 1 ) // 只统计正常状态的房间
-> where ( 'a.apply_status' , 2 ) // 只统计审核通过的房间
2025-09-29 16:30:20 +08:00
-> where ( 'a.type_id' , '<>' , 6 )
2025-09-29 16:27:36 +08:00
-> group ( 'a.id' )
-> order ( 'total_price' , 'desc' )
-> page ( $page , $page_limit )
-> select ();
if ( $profit ){
foreach ( $profit as & $v ) {
if ( $v [ 'room_id' ] > 0 && $is_open_xlh == 1 ){
$xlh_status = model ( 'BlindBoxTurntableGift' ) -> get_user_xlh_info ( $v [ 'room_id' ]);
$v [ 'xlh_status' ] = $xlh_status [ 'xlh_status' ];
} else {
$v [ 'xlh_status' ] = 0 ;
}
}
}
//当前小时开始时间 和结束时间 00:00-00:59 这样的格式
$time_range = date ( 'H:' ) . '00-' . date ( 'H:' ) . '59' ;
return [ 'code' => 1 , 'msg' => '获取成功' , 'data' => [ 'time_range' => $time_range , 'lists' => $profit ]];
}
}