博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
排行榜的实现
阅读量:5124 次
发布时间:2019-06-13

本文共 2102 字,大约阅读时间需要 7 分钟。

422101-20181228104432764-990394410.png

500名之后,排名就没意义了。

// 获取排行榜public function getMyRankingList() {    $uid = input('post.uid/d');    if (!$uid) {        $this->json->setErr('10001',lang('10001'));        $this->json->Send();    }    $user = new UserModel();    $user_info = $user->where('id',$uid)->field('id as uid,avatarurl,nickname,continue_anwser_times,usable_integral')->find();    if (!$user_info) {        $this->json->setErr('20001',lang('20001'));        $this->json->Send();    }    $out_data = [];    // 获取前500个排名靠前的用户,如果不在其中,那么你的排名就是 '-' 横杠    $user_info['rank'] = '-';    $top_500 = $user->where('status',UserModel::USER_STATUS_PASS)->order('usable_integral desc,id asc')->limit(500)->column('id');    $offset = array_search($uid,$top_500);    if ($offset !== FALSE) { // 注意了 ,小心排第一被过滤掉        $user_info['rank'] = $offset+1;    }    $out_data = $user_info;    $this->json->setAttr('data',$out_data);    $this->json->Send();}/** * 分页 */public function getRankingList() {    $page = input('post.page/d',1);    $per_page = input('post.per_page/d',config('normal_per_page'));    // 获取商品数据    $user = new UserModel();    $where['status'] = UserModel::USER_STATUS_PASS;    // 获取分页数据    $count = $user->where($where)->count();    $total_page = ceil($count / $per_page);    if ($page > $total_page) {        $this->json->setErr(0,lang('tips_no_more'));        $return_data = ['data_list' => [],'total_page' => $total_page, 'current_page'=>$page];        $this->json->setAttr('data',$return_data);        $this->json->Send();    }    $user_list = $user->where($where)        ->order('usable_integral desc,id asc')        ->limit((($page - 1) * $per_page) . "," .$per_page)        ->field('id as uid,avatarurl,nickname,continue_anwser_times,usable_integral')        ->select();    foreach ($user_list as $k=>&$v) {        $v['rank'] = (($page - 1) * $per_page) + ($k + 1);    }    $return_data = ['data_list' => $user_list,'total_page' => $total_page, 'current_page'=>$page];    $this->json->setErr(0, '获取成功');    $this->json->setAttr('data',$return_data);    $this->json->Send();}

转载于:https://www.cnblogs.com/jiqing9006/p/10189161.html

你可能感兴趣的文章
"分辨率"到底是个什么概念?它和DPI之间是什么关系?
查看>>
001. Ansible简介
查看>>
asp.net core利用DI实现自定义用户系统,脱离ControllerBase.User
查看>>
Redis缓存连接池管理
查看>>
mac brew 安装php扩展报错:parent directory is world writable but not sticky
查看>>
大型网站架构演化发展历程
查看>>
四、COSMIC功能点实操
查看>>
.NET操作Excel
查看>>
cocos2d对动画的各种操作
查看>>
Android之下拉刷新的ListView
查看>>
Django里面是文件静态化的方法
查看>>
[译] ASP.NET 生命周期 – ASP.NET 请求生命周期(三)
查看>>
Linux Linux程序练习七
查看>>
codevs1040 统计单词个数
查看>>
2014.9.13模拟赛【数位和乘积】
查看>>
nginx禁止访问目录中可执行文件
查看>>
python实战学习之matplotlib绘图续
查看>>
第二次冲刺
查看>>
初步认识spring mvc
查看>>
Swift 将日期转化为字符串,显示上午还是下午
查看>>