通过齐博fun函数实现调用每周赚取的积分排行使用
下面代码保存到fun函数目录即可
<?php
namespace app\common\fun;
use think\db;
class Jfrank
{
    /**
     * @param string $day 日期单位  day天 week周  month月
     * @param int $num   具体日期数字1  比如1天  1周  1月
     *  @param int $rows 返回行数
     * @return array
     */
    public function ranking($row=10,$day='week',$num=1){
        $array =[];
        $map['posttime'] = fun('time@only',$day,$num);
        $map['money']  = ['>',0];
       $rs =  Db::name('moneylog')->field('uid,SUM(money) as s_money')
            ->where($map)
            ->group('uid')
            ->order('s_money desc')
            ->limit($rows)
            ->select();
        foreach($rs As $arr){
            $uid = $arr['uid'];
            $info = Db::name('memberdata')->where('uid',$uid)->find();
            $array[] = array_merge($info,$arr);
        }
        return $array;
      
    }
}
模版里的使用方式,直接复制下面代码到你需要展示的地方
<h2>本周积分排行</h2>
{volist name=":fun('Jfrank@ranking')" id="rs"}
    <div>
        <span><img src="{$rs.icon|tempdir}" width="20" height="20" /></span> 
        <span>{$rs.username}</span> 
        <span>本周总赚取的积分:{$rs.s_money}</span>
    </div>
{/volist}
本fun函数详解
{ :fun('Jfrank@ranking',10,'week',1)}  默认为返回10个用户一周内的从大到小的赚取积分排行
如果需要其他时间段,则传递参数,参数上面代码已经说明
比如需要今天一天的,则是:
{ :fun('Jfrank@ranking',10,'day',1)}
一个月的则是:
{ :fun('Jfrank@ranking',10,'month',1)}
一年的则是:
{ :fun('Jfrank@ranking',10,'month',12)}
直接下载附件,放到application\common\fun目录下
下载地址在https://x1.php168.com/bbs/show-10227.html
本文来自博客园,作者:半抹灯芯,转载请注明原文链接:https://www.cnblogs.com/wanxiangsucai/p/15574239.html

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号