From 9991a4bdd8abf3f43ea2430c388f34b6c6b74cb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E5=8D=8E=E6=B8=85?= <18691022700@163.com> Date: Mon, 18 Aug 2025 18:55:28 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=20=E6=88=BF?= =?UTF-8?q?=E9=97=B4=E5=86=85=E8=A7=92=E8=89=B2=EF=BC=8C=E9=80=81=E7=A4=BC?= =?UTF-8?q?=E6=A8=AA=E5=B9=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- application/api/model/GiveGift.php | 8 +- application/api/model/Ranking.php | 154 ++++++++++++++++++----------- application/api/model/Room.php | 4 +- 3 files changed, 105 insertions(+), 61 deletions(-) diff --git a/application/api/model/GiveGift.php b/application/api/model/GiveGift.php index 97db2f3..745b7a1 100644 --- a/application/api/model/GiveGift.php +++ b/application/api/model/GiveGift.php @@ -42,7 +42,7 @@ class GiveGift extends Model { //送的礼物信息 $gift_info = Db::name('vs_gift')->where(['gid'=>$gid]) - ->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_screen')->find(); + ->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find(); if(empty($gift_info)){ return ['code' => 0, 'msg' => '礼物不存在', 'data' => null]; } @@ -376,7 +376,7 @@ class GiveGift extends Model } else { $giftCount[$gv['gift_id']] = [ 'gift_info' => Db::name('vs_gift')->where(['gid'=>$gv['gift_id']]) - ->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_screen')->find(), + ->field('gid as gift_id,gift_name,gift_price,file_type,base_image,play_image,gift_type,label,is_public_server')->find(), 'count' => 1 ]; } @@ -432,7 +432,7 @@ class GiveGift extends Model //聊天室推送系统消息 model('Chat')->sendMsg(1028,$from_id,$text1); }else{ - if($gift_inf['is_public_screen'] == 1){ + if($gift_inf['is_public_server'] == 1){ //推送礼物横幅 $push = new Push(UID, $from_id); $room_name = Db::name('vs_room')->where(['id' => $from_id, 'apply_status' => 2])->value('room_name'); @@ -477,7 +477,7 @@ class GiveGift extends Model //聊天室推送系统消息 model('Chat')->sendMsg(1028,$from_id,$text1); }else{ - if($gift_info['is_public_screen'] == 1){ + if($gift_info['is_public_server'] == 1){ //推送礼物横幅 $push = new Push(UID, $from_id); $room_name = Db::name('vs_room')->where(['id' => $from_id, 'apply_status' => 2])->value('room_name'); diff --git a/application/api/model/Ranking.php b/application/api/model/Ranking.php index 184ffc7..455bfab 100644 --- a/application/api/model/Ranking.php +++ b/application/api/model/Ranking.php @@ -40,26 +40,7 @@ class Ranking extends Model //财富、魅力榜 public function ranking($ranking_type) { - if($ranking_type == 1){//1财富榜,2魅力榜 - $field = 'a.user_id,b.user_code,b.nickname,b.avatar,sum(a.total_wealth) as total'; - $order = 'total desc'; - $where['a.total_wealth'] = ['>', 0]; - }else{ - $field = 'a.user_id,b.user_code,b.nickname,b.avatar,sum(a.total_charm) as total'; - $order = 'total desc'; - $where['a.total_charm'] = ['>', 0]; - } - $where['a.updatetime'] = ['between', [$this->begin_time, $this->end_time]]; - - $lists = db::name('vs_room_user_charm')->alias('a') - ->join('user b', 'a.user_id = b.id') - ->field($field) - ->where($where) - ->order($order) - ->group('a.user_id') - ->page($this->page, $this->page_limit) - ->select(); - + $where['a.createtime'] = ['between', [$this->begin_time, $this->end_time]]; $my_ranking = db::name('user') ->field('user_code,avatar,nickname,id as user_id,user_code,sex') ->where('id',$this->user_id)->find(); @@ -67,45 +48,108 @@ class Ranking extends Model $my_ranking['total'] = 0; $my_ranking['rank'] = -1; $my_ranking['diff'] = 0; - if($lists){ - foreach ($lists as $key => &$value) { - $lists[$key]['icon'][0] = model('UserData')->user_wealth_icon($value['user_id']);//财富图标 - $lists[$key]['icon'][1] = model('UserData')->user_charm_icon($value['user_id']);//魅力图标 - $lists[$key]['rank'] = $key + 1; - if ($this->user_id == $value['user_id']) { - $my_ranking = $lists[$key]; - $my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']); + if($ranking_type == 1){//1财富榜,2魅力榜 + $lists = db::name('vs_give_gift')->alias('a') + ->join('user b', 'a.user_id = b.id') + ->field('a.user_id,b.nickname,b.avatar,b.user_code,sum(a.total_price) * 10 as total') + ->where($where) + ->order('total desc') + ->group('a.user_id') + ->page($this->page, $this->page_limit) + ->select(); + + if($lists){ + foreach ($lists as $key => &$value) { + $lists[$key]['icon'][0] = model('UserData')->user_wealth_icon($value['user_id']);//财富图标 + $lists[$key]['icon'][1] = model('UserData')->user_charm_icon($value['user_id']);//魅力图标 + $lists[$key]['rank'] = $key + 1; + if ($this->user_id == $value['user_id']) { + $my_ranking = $lists[$key]; + $my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']); + } + } + } + + if (!$my_ranking && $lists && defined('UID')) { + $my_ranking_data = db::name('vs_give_gift')->alias('a') + ->join('user b', 'a.user_id = b.id') + ->field('a.user_id,b.nickname,b.avatar,b.user_code,sum(a.total_price) * 10 as total') + ->where($where) + ->where('a.user_id',$this->user_id) + ->page($this->page, $this->page_limit) + ->select(); + $my_ranking_data['icon'][0] = model('UserData')->user_wealth_icon($my_ranking_data['user_id']);//财富图标 + $my_ranking_data['icon'][1] = model('UserData')->user_charm_icon($my_ranking_data['user_id']);//魅力图标 + $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; + + if (!isset($my_ranking_data['user_id']) || !$my_ranking_data['user_id']) { + $my_ranking = db::name('user') + ->field('user_code,avatar,nickname,id as user_id,user_code,sex') + ->where('id',$this->user_id)->find(); + $my_ranking['icon'][0] = model('UserData')->user_wealth_icon($my_ranking['user_id']);//财富图标 + + $my_ranking['total'] = 0; + $my_ranking['rank'] = -1; + $my_ranking['diff'] = numberFormat($lists_last_number); + } else { + $my_ranking = $my_ranking_data; + $my_ranking['rank'] = -1; + $my_ranking['total'] = numberFormat($my_ranking['total']); + $my_ranking['diff'] = numberFormat($lists_last_number - ($my_ranking_data['total'] ?: 0)); + } + } + }else{ + $lists = db::name('vs_give_gift')->alias('a') + ->join('user b', 'a.gift_user = b.id') + ->field('a.gift_user as user_id,b.nickname,b.avatar,b.user_code,sum(a.total_price) * 10 as total') + ->where($where) + ->order('total desc') + ->group('a.gift_user') + ->page($this->page, $this->page_limit) + ->select(); + + if($lists){ + foreach ($lists as $key => &$value) { + $lists[$key]['icon'][0] = model('UserData')->user_wealth_icon($value['user_id']);//财富图标 + $lists[$key]['icon'][1] = model('UserData')->user_charm_icon($value['user_id']);//魅力图标 + $lists[$key]['rank'] = $key + 1; + if ($this->user_id == $value['user_id']) { + $my_ranking = $lists[$key]; + $my_ranking['diff'] = $key == 0 ? 0 : ($lists[$key - 1]['total'] - $value['total']); + } + } + } + + if (!$my_ranking && $lists && defined('UID')) { + $my_ranking_data = db::name('vs_give_gift')->alias('a') + ->join('user b', 'a.gift_user = b.id') + ->field('a.gift_user as user_id,b.nickname,b.avatar,b.user_code,sum(a.total_price) * 10 as total') + ->where($where) + ->where('a.gift_user',$this->user_id) + ->select(); + + $my_ranking_data['icon'][0] = model('UserData')->user_wealth_icon($my_ranking_data['user_id']);//财富图标 + $my_ranking_data['icon'][1] = model('UserData')->user_charm_icon($my_ranking_data['user_id']);//魅力图标 + $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; + + if (!isset($my_ranking_data['user_id']) || !$my_ranking_data['user_id']) { + $my_ranking = db::name('user') + ->field('user_code,avatar,nickname,id as user_id,user_code,sex') + ->where('id',$this->user_id)->find(); + $my_ranking['icon'][0] = model('UserData')->user_wealth_icon($my_ranking['user_id']);//财富图标 + + $my_ranking['total'] = 0; + $my_ranking['rank'] = -1; + $my_ranking['diff'] = numberFormat($lists_last_number); + } else { + $my_ranking = $my_ranking_data; + $my_ranking['rank'] = -1; + $my_ranking['total'] = numberFormat($my_ranking['total']); + $my_ranking['diff'] = numberFormat($lists_last_number - ($my_ranking_data['total'] ?: 0)); } } } - if (!$my_ranking && $lists && defined('UID')) { - $my_ranking_data = db::name('vs_room_user_charm')->alias('a') - ->join('user b','a.user_id = b.id') - ->where($where) - ->where('a.user_id',$this->user_id) - ->field($field) - ->find(); - $my_ranking_data['icon'][0] = model('UserData')->user_wealth_icon($my_ranking_data['user_id']);//财富图标 - $my_ranking_data['icon'][1] = model('UserData')->user_charm_icon($my_ranking_data['user_id']);//魅力图标 - $lists_last_number = $lists[count($lists) - 1]['total'] ?? 0; - - if (!isset($my_ranking_data['user_id']) || !$my_ranking_data['user_id']) { - $my_ranking = db::name('user') - ->field('user_code,avatar,nickname,id as user_id,user_code,sex') - ->where('id',$this->user_id)->find(); - $my_ranking['icon'][0] = model('UserData')->user_wealth_icon($my_ranking['user_id']);//财富图标 - - $my_ranking['total'] = 0; - $my_ranking['rank'] = -1; - $my_ranking['diff'] = numberFormat($lists_last_number); - } else { - $my_ranking = $my_ranking_data; - $my_ranking['rank'] = -1; - $my_ranking['total'] = numberFormat($my_ranking['total']); - $my_ranking['diff'] = numberFormat($lists_last_number - ($my_ranking_data['total'] ?: 0)); - } - } $data = [ 'my_ranking' => $my_ranking, 'lists' => $lists diff --git a/application/api/model/Room.php b/application/api/model/Room.php index af84228..9cfe20d 100644 --- a/application/api/model/Room.php +++ b/application/api/model/Room.php @@ -1416,8 +1416,8 @@ class Room extends Model { $return = []; $room_owner = db::name('vs_room')->where(['id' => $room_id,'room_status' => 1])->value('user_id'); - $room_host = db::name('vs_room_host')->where(['room_id' => $room_id,'type' => 1,'delete_time' => null])->value('user_id'); - $room_maner = db::name('vs_room_host')->where(['room_id' => $room_id,'type' => 2,'delete_time' => null])->value('user_id'); + $room_host = db::name('vs_room_host')->where(['room_id' => $room_id,'type' => 1,'delete_time' => null,'user_id' => $user_id])->value('user_id'); + $room_maner = db::name('vs_room_host')->where(['room_id' => $room_id,'type' => 2,'delete_time' => null,'user_id' => $user_id])->value('user_id'); if($user_id == $room_owner){ $return['role'] = 1; }elseif ($user_id == $room_maner){