diff --git a/application/api/model/Ranking.php b/application/api/model/Ranking.php index d2bc6c88..c0796177 100644 --- a/application/api/model/Ranking.php +++ b/application/api/model/Ranking.php @@ -204,214 +204,6 @@ class Ranking extends Model } - - //公会榜 - public function guild_ranking() - { - $where['createtime'] = ['between', [$this->begin_time, $this->end_time]]; - - //所有工会 - $guilds = db::name('vs_guild')->where(['status' => 1])->select(); - if($guilds){ - foreach ($guilds as $k=>$value){ - $total = 0; - $roomids[$k] = db::name('vs_guild_user')->where(['guild_id' => $value['id']])->field('room_id')->select(); - if($roomids[$k]){ - foreach ($roomids[$k] as $key => $value1){ - $toomType = db::name('vs_room')->where(['id' => $value1['room_id']])->where($where)->value('type_id'); - if($toomType == 6){ - continue; - } - $total += db::name('vs_give_gift')->where(['from_id' => $value1['room_id']])->sum('total_price'); - } - } - $guilds[$k]['total'] = $total; - } - //剔除$guilds[$k]['total'] = 0的 - $guilds = array_filter($guilds, function ($value) { - return $value['total'] > 0; - }); - //根据$guilds[$k]['total']排序 - array_multisort(array_column($guilds, 'total'), SORT_DESC, $guilds); - } - - $lists = $guilds ; -// $my_ranking = null; - $my_ranking['guild_name'] = ''; - $my_ranking['cover'] = ''; - $my_ranking['total'] = 0; - $my_ranking['rank'] = -1; - $my_ranking['diff'] = 0; - if($lists){ - //获取当前用户的工会 - $myGuild = db::name('vs_guild_user')->where(['user_id' => UID])->find(); - if($myGuild){ - foreach ($lists as $key => $value) { - $lists[$key]['rank'] = $key + 1; -// $lists[$key]['total'] = numberFormat($value['total']); - if ($myGuild['guild_id'] == $value['id']) { - $my_ranking = $lists[$key]; - $my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']); - } - } - if (!$my_ranking && $lists && defined('UID')) { - $my_rankings = null; - //当前工会的所有房间 - $myguildroom = db::name('vs_guild_user')->where(['guild_id' => $myGuild['guild_id']])->field('room_id')->select(); - foreach ($myguildroom as $key => $gvalue1){ - $my_rankings['total'] += db::name('vs_give_gift')->where(['from_id' => $gvalue1['room_id']])->where($where)->sum('total_price'); - } - - $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; - $diff = numberFormat($lists_last_number - ($my_rankings['total'] ?: 0)); - $diff = $diff<=0 ? 0 : $diff; - $my_ranking['rank'] = -1; - $my_ranking['total'] = numberFormat($my_rankings['total']); - $my_ranking['diff'] = $diff; - $my_ranking['guild_name'] = $myGuild['room_name']; - $my_ranking['cover'] = $myGuild['cover']; - if(!$my_rankings){ - $my_ranking['rank'] = -1; - $my_ranking['total'] = 0; - $my_ranking['diff'] = $diff; - $my_ranking['guild_name'] = ''; - $my_ranking['cover'] = ''; - } - } - }else{ - foreach ($lists as $key => $value) { - $lists[$key]['rank'] = $key + 1; - } - $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; - //获取当前用户所在工会 - $myGuild = db::name('vs_guild_user')->where(['user_id' => UID])->find(); - if($myGuild){ - $my_ranking['guild_name'] = db::name('vs_guild')->where(['id' => $myGuild['guild_id']])->value('guild_name'); - $my_ranking['cover'] = db::name('vs_guild')->where(['id' => $myGuild['guild_id']])->value('cover'); - $my_ranking['total'] = 0; - $my_ranking['rank'] = -1; - $my_ranking['diff'] = numberFormat($lists_last_number); - }else{ - $my_ranking['guild_name'] = ''; - $my_ranking['cover'] = ''; - $my_ranking['total'] = 0; - $my_ranking['rank'] = -1; - $my_ranking['diff'] = numberFormat($lists_last_number); - } - } - } - $data = [ - 'my_ranking' => $my_ranking, - 'lists' => $lists - ]; - return ['code'=>1,'msg'=>'获取成功','data'=>$data]; - } - - //真爱榜 - public function love_ranking() - { - $where['c.createtime'] = ['between', [$this->begin_time, $this->end_time]]; - $where['a.status'] = 1; - $where['a.type'] = 0; - $field = ['a.user_id,a.user_id1,sum(c.total_price) as total,a.room_id,b.room_cover,b.room_intro as room_name']; - $lists = db::name('vs_room_cp_movie')->alias('a') - ->join('vs_room b','a.room_id = b.id','left') - ->join('vs_give_gift c','a.room_id = c.from_id','left') - ->where($where)->field($field)->group('a.room_id') - ->order('total desc') - ->page($this->page, $this->page_limit) - ->select(); - $my_ranking = null; - if($lists){ - //获取当前用户的房间id $this->user_id - $myRoom = db::name('vs_room_cp_movie')->where(['user_id' => UID ,'status' => 1])->find(); - if(!$myRoom){ - $myRoom = db::name('vs_room_cp_movie')->where(['user_id1' => UID ,'status' => 1])->find(); - } - if($myRoom){ - foreach ($lists as $key => $value) { - $lists[$key]['rank'] = $key + 1; - $lists[$key]['user_avatar'] = db::name('user')->where(['id' => $value['user_id']])->value('avatar'); - $lists[$key]['user_avatar1'] = db::name('user')->where(['id' => $value['user_id1']])->value('avatar'); - $lists[$key]['nickname'] = db::name('user')->where(['id' => $value['user_id']])->value('nickname'); - $lists[$key]['nickname1'] = db::name('user')->where(['id' => $value['user_id1']])->value('nickname'); - if ($myRoom['room_id'] == $value['room_id']) { - $my_ranking = $lists[$key]; - $my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']); - } - } - - if (!$my_ranking && $lists) { - $where1['c.createtime'] = ['between', [$this->begin_time, $this->end_time]]; - $where1['a.status'] = 1; - $my_ranking_data = db::name('vs_room_cp_movie')->alias('a') - ->join('vs_room b','a.room_id = b.id','left') - ->join('vs_give_gift c','a.room_id = c.from_id','left') - ->where(['c.from_id' => $myRoom['room_id']]) - ->where($where1) - ->field('a.user_id,a.user_id1,a.room_id,sum(c.total_price) as total,b.room_intro as room_name,b.room_cover')->find(); - $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; - $diff = numberFormat($lists_last_number - ($my_ranking_data['total'] ?: 0)); - $diff = max($diff, 0); - $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']; - $my_ranking['user_avatar'] = db::name('user')->where(['id' => $my_ranking_data['user_id']])->value('avatar'); - $my_ranking['user_avatar1'] = db::name('user')->where(['id' => $my_ranking_data['user_id1']])->value('avatar'); - - if(!$my_ranking_data['room_name']){ - $my_ranking['rank'] = -1; - $my_ranking['total'] = 0; - $my_ranking['diff'] = $diff; - $my_ranking['room_name'] = ''; - $my_ranking['room_cover'] = ''; - } - } - }else{ - foreach ($lists as $key => $value) { - $lists[$key]['rank'] = $key + 1; - $lists[$key]['user_avatar'] = db::name('user')->where(['id' => $value['user_id']])->value('avatar'); - $lists[$key]['user_avatar1'] = db::name('user')->where(['id' => $value['user_id1']])->value('avatar'); - $lists[$key]['nickname'] = db::name('user')->where(['id' => $value['user_id']])->value('nickname'); - $lists[$key]['nickname1'] = db::name('user')->where(['id' => $value['user_id1']])->value('nickname'); - } - } - }else{ - //获取当前用户的房间id $this->user_id - $myRoom = db::name('vs_room_cp_movie')->where(['user_id' => UID ,'status' => 1])->find(); - if(!$myRoom){ - $myRoom = db::name('vs_room_cp_movie')->where(['user_id1' => UID ,'status' => 1])->find(); - } - if($myRoom){ - $where1['a.status'] = 1; - $where1['a.type'] = 0; - $my_ranking_data = db::name('vs_room_cp_movie')->alias('a') - ->join('vs_room b','a.room_id = b.id','left') - ->where(['a.cp_id' => $myRoom['cp_id']]) - ->where($where1) - ->field('a.user_id,a.user_id1,a.room_id,b.room_intro as room_name,b.room_cover')->find(); - - $diff =0; - $my_ranking['rank'] = -1; - $my_ranking['total'] = 0; - $my_ranking['diff'] = $diff; - $my_ranking['room_name'] = $my_ranking_data['room_name']; - $my_ranking['room_cover'] = $my_ranking_data['room_cover']; - $my_ranking['user_avatar'] = db::name('user')->where(['id' => $my_ranking_data['user_id']])->value('avatar'); - $my_ranking['user_avatar1'] = db::name('user')->where(['id' => $my_ranking_data['user_id1']])->value('avatar'); - $my_ranking['nickname'] = db::name('user')->where(['id' => $my_ranking_data['user_id']])->value('nickname'); - $my_ranking['nickname1'] = db::name('user')->where(['id' => $my_ranking_data['user_id1']])->value('nickname'); - } - } - $data = [ - 'my_ranking' => $my_ranking, - 'lists' => $lists - ]; - return ['code'=>1,'msg'=>'获取成功','data'=>$data]; - } - //真爱榜 public function love_rankings() {