diff --git a/application/api/model/Ranking.php b/application/api/model/Ranking.php index 1bf53a9c..36614b91 100644 --- a/application/api/model/Ranking.php +++ b/application/api/model/Ranking.php @@ -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