private function   Wsgetaward($list)
    {        $bonus = array();//奖金
        foreach ($list as $key => &$value) {
            $bonus[$value['numid']] = $this->Useraward($value['rank'],$value['count']);        }
        $numid = array_keys($bonus);
        //用户id数组        $newarr = array_slice($bonus,0,32);
        //前32名成绩
        foreach ($newarr as $k=>$v){
                Vips::updateCount($numid[$k],$bonus[$k]['vip'],1,1,'day');
                Shop::updateCount($numid[$k],$bonus[$numid[$k]]['count'],1,1);
                $data =Purse::addSliver($numid[$k],$bonus[$numid[$k]]['sr']);
                $beforePurse = Purse::getUserPurse($numid[$k]);
                if($data){
                    $logUserPurse = new LogUserPurse();
                    $logUserPurse->numid = $numid[$k];
                    $logUserPurse->purse = $bonus[$numid[$k]]['sr'];
                    $logUserPurse->before_purse = $beforePurse;
                    $logUserPurse->after_purse = intval($beforePurse) + intval($bonus[$numid[$k]]['sr']);
                    $logUserPurse->source = HelpsController::iconvStr('比赛银子奖励','','gbk');
                    $logUserPurse->relate_data = json_encode(array('source'=>$bonus[$numid[$k]]['sr']));
                    $logUserPurse->addtime = time();
                    $logUserPurse->save();
                }            }        }
    public function Useraward($rank,$count){
        if ($rank < 3) {
            //一二名--100000            $sr = 1000000;
            $vip  = 60;        }elseif($rank < 5){
            //三四名--50000
            $sr = 500000;
            $vip = 30;
        }elseif ($rank<9) {
            //五六七八--10000
            $sr = 200000;
            $count = 200;
        }elseif ($rank<16){
            $sr = 100000;
            $count = 100;        }elseif ($rank <32){
            $sr = 50000;        }
        if($count>=30){
            $vip = 5;
        }
        return ['sr'=>$sr,'vip'=>$vip,'count'=>$count];    }

解决方案 »

  1.   

         switch($rank) {
            case $rank < 3:
                //一二名--100000 
                $sr = 1000000;
                $vip  = 60;
                break;
            case $rank < 5:
                //三四名--50000
                $sr = 500000;
                $vip = 30;
                break;
            case $rank<9:
                //五六七八--10000
                $sr = 200000;
                $count = 200;
                break;
            case $rank<16:
                $sr = 100000;
                $count = 100;
                break;
            case $rank <32:
                $sr = 50000; 
            }
            if($count>=30){
                $vip = 5;
            }
            return ['sr'=>$sr,'vip'=>$vip,'count'=>$count];