BookUrgeUpdateService.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: z-yang
  5. * Date: 2019/1/29
  6. * Time: 17:26
  7. */
  8. namespace App\Modules\Book\Services;
  9. use App\Modules\Book\Models\BookUrgeUpdate;
  10. use DB;
  11. class BookUrgeUpdateService
  12. {
  13. public static function UrgeRecord($uid,$bid){
  14. return BookUrgeUpdate::rightJoin('books',function ($join)use($uid){
  15. $join->on('books.id','=','book_urge_update.bid')
  16. ->where('book_urge_update.uid','=',$uid)
  17. ->whereColumn('book_urge_update.last_update_time','=','books.updated_at');
  18. })
  19. ->select('books.updated_at','book_urge_update.id')
  20. ->where('books.id',$bid)
  21. ->first();
  22. }
  23. public static function isHadUrged($uid,$bid){
  24. $result = self::UrgeRecord($uid,$bid);
  25. if($result && $result->id){
  26. return true;
  27. }
  28. return false;
  29. }
  30. public static function UrgeUpdate($uid,$bid,$time){
  31. $data = [
  32. 'uid'=>$uid,
  33. 'bid'=>$bid,
  34. 'last_update_time'=>$time
  35. ];
  36. return BookUrgeUpdate::create($data);
  37. }
  38. public static function getUrgeUpdateRecord(){
  39. return BookUrgeUpdate::join('book_configs','book_urge_update.bid','=','book_configs.bid')
  40. ->select(DB::raw('count(*) as uv,book_urge_update.bid,book_urge_update.last_update_time'),'book_configs.book_name')
  41. ->orderBy('book_urge_update.last_update_time','desc')
  42. ->groupBy('book_urge_update.last_update_time')
  43. ->groupBy('book_urge_update.bid')
  44. ->paginate(30);
  45. }
  46. }