房间排行榜
This commit is contained in:
@@ -154,87 +154,45 @@ class Ranking extends Model
|
||||
{
|
||||
//金币与魅力比例
|
||||
$ratio = get_system_config_value('coin_charm_exp');
|
||||
$where['a.createtime'] = ['between', [$this->begin_time, $this->end_time]];
|
||||
$where['b.type_id'] = ['<>', 6];
|
||||
$where['b.room_status'] = 1;
|
||||
$field = ['sum(a.total_price) *'.$ratio.' as total,b.room_name,a.from_id as room_id,b.room_cover,b.room_number'];
|
||||
$lists = db::name('vs_give_gift')->alias('a')
|
||||
->join('vs_room b','a.from_id = b.id','left')
|
||||
->where($where)->field($field)->group('a.from_id')
|
||||
->order('total desc')
|
||||
// ->page($this->page, $this->page_limit)
|
||||
->select();
|
||||
$my_ranking = null;
|
||||
if($lists){
|
||||
//获取当前用户的房间id
|
||||
$myRoom = db::name('vs_room')->where(['user_id' => UID ,'room_status' => 1])->find();
|
||||
if($myRoom){
|
||||
foreach ($lists as $key => $value) {
|
||||
$lists[$key]['rank'] = $key + 1;
|
||||
if ($myRoom['id'] == $value['room_id']) {
|
||||
$my_ranking = $lists[$key];
|
||||
$my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']);
|
||||
}
|
||||
// $lists[$key]['total'] = numberFormat($value['total']);
|
||||
}
|
||||
//时间转为天
|
||||
$begin_time = strtotime(date('Y-m-d',$this->begin_time));
|
||||
$end_time = strtotime(date('Y-m-d',$this->end_time+86400));
|
||||
|
||||
if (!$my_ranking && $lists && defined('UID')) {
|
||||
$where1['a.createtime'] = ['between', [$this->begin_time, $this->end_time]];
|
||||
$where1['b.type_id'] = ['<>', 6];
|
||||
$my_ranking_data = db::name('vs_give_gift')->alias('a')
|
||||
->join('vs_room b','a.from_id = b.id','left')
|
||||
->where(['a.from_id' => $myRoom['id']])
|
||||
->where($where1)
|
||||
->field('a.from_id as room_id,sum(a.total_price) as total,b.room_name,b.room_cover,b.room_number')->find();
|
||||
$lists_last_number = $lists[count($lists) - 1]['total'] ?? 0;
|
||||
$diff = numberFormat($lists_last_number - ($my_ranking_data['total'] ?: 0));
|
||||
$diff = $diff<=0 ? 0 : $diff;
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['total'] = numberFormat($my_ranking_data['total']);
|
||||
$my_ranking['diff'] = $diff;
|
||||
$my_ranking['room_name'] = $my_ranking_data['room_name'];
|
||||
$my_ranking['room_cover'] = $my_ranking_data['room_cover'];
|
||||
if(!$my_ranking_data['room_name']){
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['diff'] = $diff;
|
||||
$my_ranking['room_name'] = $myRoom['room_name'];
|
||||
$my_ranking['room_cover'] = $myRoom['room_cover'];
|
||||
}
|
||||
}
|
||||
}else{
|
||||
foreach ($lists as $key => $value) {
|
||||
$lists[$key]['rank'] = $key + 1;
|
||||
}
|
||||
$lists_last_number = $lists[count($lists) - 1]['total'] ?? 0;
|
||||
//获取当前用户的房间id
|
||||
$myRoom = db::name('vs_room')->where(['user_id' => UID ,'room_status' => 1])->find();
|
||||
if($myRoom){
|
||||
$my_ranking['room_name'] = $myRoom['room_name'];
|
||||
$my_ranking['room_cover'] = $myRoom['room_cover'];
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['diff'] = numberFormat($lists_last_number);
|
||||
}else{
|
||||
$my_ranking['room_name'] = '';
|
||||
$my_ranking['room_cover'] = '';
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['diff'] = numberFormat($lists_last_number);
|
||||
}
|
||||
|
||||
}
|
||||
}else{
|
||||
//获取当前用户的房间id
|
||||
$myRoom = db::name('vs_room')->where(['user_id' => UID ,'room_status' => 1])->find();
|
||||
//获取当前用户的房间id
|
||||
$myRoom = db::name('vs_room')->where(['user_id' => UID ,'room_status' => 1])->find();
|
||||
if($myRoom){
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['diff'] = 0;
|
||||
$my_ranking['room_name'] = $myRoom['room_name'];
|
||||
$my_ranking['room_cover'] = $myRoom['room_cover'];
|
||||
}else{
|
||||
$myRoom['id'] = 0;
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['diff'] = 0;
|
||||
$my_ranking['room_name'] = '';
|
||||
$my_ranking['room_cover'] = '';
|
||||
}
|
||||
//截取20条
|
||||
$lists = array_slice($lists,0,20);
|
||||
|
||||
$lists = db::name('room_daily_income')->alias('a')
|
||||
->join('vs_room b','a.room_id = b.id','left')
|
||||
->field('a.room_id,sum(a.income) as total,b.room_name,b.room_cover,b.room_number')
|
||||
->where('date', ['between', [$begin_time, $end_time]])
|
||||
->order('total desc')
|
||||
->limit(20)
|
||||
->select();
|
||||
|
||||
if($lists){
|
||||
foreach ($lists as $key => $value) {
|
||||
$lists[$key]['rank'] = $key + 1;
|
||||
if ($myRoom['id'] == $value['room_id']) {
|
||||
$my_ranking = $lists[$key];
|
||||
$my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$data = [
|
||||
'my_ranking' => $my_ranking,
|
||||
'lists' => $lists
|
||||
|
||||
Reference in New Issue
Block a user