排行榜 房间内角色,送礼横幅

This commit is contained in:
2025-08-18 18:55:28 +08:00
parent 266c90cd09
commit 9991a4bdd8
3 changed files with 105 additions and 61 deletions

View File

@@ -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');

View File

@@ -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,6 +48,16 @@ class Ranking extends Model
$my_ranking['total'] = 0;
$my_ranking['rank'] = -1;
$my_ranking['diff'] = 0;
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']);//财富图标
@@ -80,12 +71,13 @@ class Ranking extends Model
}
if (!$my_ranking && $lists && defined('UID')) {
$my_ranking_data = db::name('vs_room_user_charm')->alias('a')
$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)
->field($field)
->find();
->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;
@@ -106,6 +98,58 @@ class Ranking extends Model
$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));
}
}
}
$data = [
'my_ranking' => $my_ranking,
'lists' => $lists

View File

@@ -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){