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

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

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