关于service逻辑层的实现方法请教,大家是否有更好的方法? 
                            
                                                    
                        
                    
                    
  
                    
                    之前都是逻辑写在控制器里边,最近看了一些教程,目前是这样子在项目里边实现,不知道有什么缺点吗?大家是否有更好的方法?谢谢大家!
service逻辑层:
<?php
namespace App\Services;
use Illuminate\Support\Facades\DB;
/**
 * 积分服务
 * Class PointsService
 * @package App\Services
 */
class PointsService //extends BaseService
{
    //用户的积分排名
    public static function getUserPointsRank($userId)
    {
        $sql = 'select c.rowno, c.user_id, c.sumPoint from (select @rowno:=@rowno+1 as rowno, a.user_id, a.sumPoint from (select (sum(point) + sum(extra_point)) as sumPoint , user_id from yt_points_record where type=1 GROUP BY user_id ORDER BY sumPoint desc) a, (select @rowno:=0) b) c WHERE c.user_id=?';
        $rankQuery = DB::connection('mysql_wx')
            ->select($sql, [$userId]);
        $result = [];
        if ($rankQuery) {
            foreach ($rankQuery as $key => $value) {
                $result = [
                    'rank' => $value->rowno,
                    'user_id' => $value->user_id,
                    'point' => $value->sumPoint
                ];
                break;
            }
        }
        return $result;
    }
}
控制器中使用
<?php
namespace App\Http\Controllers\YtUser;
use App\Http\Controllers\Controller;
use App\Models\Sign;
use Illuminate\Http\Request;
use App\Services\PointsService;
use Auth;
class SignController extends Controller
{
        public function index(Sign $sign)
    {
       $userId = Auth::guard('ytuser')->user()->id;
    //用户排行
       $ranking = PointsService::getUserPointsRank($userId);
     }
}
                        
                                                    
                        
                                            
          
                    
                    
          
          
                关于 LearnKu
              
                    
                    
                    
 
推荐文章: