排行榜
This commit is contained in:
@@ -146,10 +146,10 @@ class GiveGiftBases extends Model
|
||||
*/
|
||||
public function getUserStatistics($params)
|
||||
{
|
||||
$userId = $this->request->param('user_id/d', 0);
|
||||
|
||||
$userId = $params['user_id'];
|
||||
$startTime = $this->request->param('start_time/d', strtotime('-30 days'));
|
||||
$endTime = $this->request->param('end_time/d', time());
|
||||
$startTime = $params['start_time'];
|
||||
$endTime = $params['end_time'];
|
||||
|
||||
if (!$userId) {
|
||||
$this->error('用户ID不能为空');
|
||||
|
||||
@@ -42,59 +42,78 @@ class Ranking extends Model
|
||||
{
|
||||
$where['a.createtime'] = ['between', [$this->begin_time, $this->end_time]];
|
||||
|
||||
$my_ranking = db::name('user')
|
||||
->field('user_code,avatar,nickname,id as user_id,sex')
|
||||
->where('id',$this->user_id)->find();
|
||||
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['diff'] = 0;
|
||||
|
||||
if($ranking_type == 1){//1财富榜,2魅力榜
|
||||
if($ranking_type == 1){//1财富榜
|
||||
$params['start_time']=$this->begin_time;
|
||||
$params['end_time']=$this->end_time;
|
||||
|
||||
$lists = model('GiveGiftBases')->getGiftRanking($params);
|
||||
var_dump($lists);exit;
|
||||
//把$lists 根据total倒序并只取前20名
|
||||
usort($lists, function($a, $b) {
|
||||
return $b['total'] <=> $a['total']; // 按total降序排序
|
||||
});
|
||||
$lists = array_slice($lists, 0, 20); // 取前20名
|
||||
|
||||
// var_dump($lists);exit;
|
||||
if($lists){
|
||||
foreach ($lists as $key => &$value) {
|
||||
|
||||
$value['nickanme'] = db::name('user')->where('id',$value['user_id'])->value('nickname');
|
||||
$value['user_code'] = db::name('user')->where('id',$value['user_id'])->value('user_code');
|
||||
$value['avatar'] = db::name('user')->where('id',$value['user_id'])->value('avatar');
|
||||
$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();
|
||||
//自己不在前20名
|
||||
if (!$my_ranking) {
|
||||
//获取自己的送礼记录
|
||||
$params['user_id'] = $this->user_id;
|
||||
$my_ranking_data = model('GiveGiftBases')->getUserStatistics($params);
|
||||
var_dump($my_ranking_data);
|
||||
|
||||
$lists_last_number = $lists[count($lists) - 1]['total'] ?? 0;
|
||||
$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();
|
||||
|
||||
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']);//财富图标
|
||||
$lists_last_number = $lists[count($lists) - 1]['total'] ?? 0;
|
||||
|
||||
$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 (!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{
|
||||
$my_ranking = db::name('user')
|
||||
->field('user_code,avatar,nickname,id as user_id,sex')
|
||||
->where('id',$this->user_id)->find();
|
||||
|
||||
$my_ranking['total'] = 0;
|
||||
$my_ranking['rank'] = -1;
|
||||
$my_ranking['diff'] = 0;
|
||||
}
|
||||
}else{
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}else{//2魅力榜
|
||||
$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')
|
||||
|
||||
Reference in New Issue
Block a user