MovieLike.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. namespace App\Models\Movie;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Support\Facades\DB;
  5. class MovieLike extends Model
  6. {
  7. protected $table = 'tb_movie_like';
  8. protected $primaryKey = 'id';
  9. public $keyType = 'int';
  10. public $incrementing = true;
  11. public $timestamps = true;
  12. const CREATED_AT = 'created_at';
  13. const UPDATED_AT = 'updated_at';
  14. const DELETED_AT = null;
  15. protected $guarded = [];
  16. public function getType(int $reviewID, int $userID): MovieLike
  17. {
  18. return $this->where([
  19. ['movie_review_id', $reviewID],
  20. ['user_id', $userID]
  21. ])->firstOrNew();
  22. }
  23. public function isExists(int $reviewID, int $userID): int
  24. {
  25. $sql = "
  26. SELECT IF(COUNT(*) > 0, 1, 0) AS `exists` FROM tb_movie_like WHERE movie_review_id = ? AND user_id = ?;
  27. ";
  28. return DB::selectOne($sql, [$reviewID, $userID])->exists;
  29. }
  30. public function isLike(int $reviewID, int $userID): bool
  31. {
  32. return $this->where([
  33. ['movie_review_id', $reviewID],
  34. ['type', 1],
  35. ['user_id', $userID]
  36. ])->exists();
  37. }
  38. public function isDisLike(int $reviewID, int $userID): bool
  39. {
  40. return $this->where([
  41. ['movie_review_id', $reviewID],
  42. ['type', 2],
  43. ['user_id', $userID]
  44. ])->exists();
  45. }
  46. }