Top.php 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Models;
  3. use Illuminate\Support\Facades\DB;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Pagination\LengthAwarePaginator;
  6. use Illuminate\Support\Facades\Request;
  7. class Top extends Model
  8. {
  9. public function paginate()
  10. {
  11. $perPage = Request::get('per_page', 10);
  12. $page = Request::get('page', 1);
  13. $uid = Request::get('uid');
  14. $start = ($page-1)*$perPage;
  15. // 运行sql获取数据数组
  16. if($uid){
  17. $total=DB::select('select COUNT(*) as a FROM ( select uid, DATE(created_at) as a from love_live_statistics WHERE uid='.$uid.' GROUP BY uid,a ORDER BY a desc) AS Aa');
  18. $sql = 'select lid, uid, DATE(created_at) as a , sum(end_time-start_time) as b from love_live_statistics where uid='.$uid." GROUP BY uid,a ORDER BY a desc LIMIT $start,$perPage";
  19. }else{
  20. $total=DB::select('select COUNT(*) as a FROM ( select uid, DATE(created_at) as a from love_live_statistics GROUP BY uid,a ORDER BY a desc) AS Aa');
  21. $sql = 'select lid, DATE(created_at) as a , sum(end_time-start_time) as b from love_live_statistics GROUP BY uid,a ORDER BY a desc'." LIMIT $start,$perPage";
  22. }
  23. $result = DB::select($sql);
  24. $movies = static::hydrate($result);
  25. $paginator = new LengthAwarePaginator($movies,$total[0]->a, $perPage);
  26. $paginator->setPath(url()->current());
  27. return $paginator;
  28. }
  29. }