MusicRepository.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: durong
  5. * Date: 2019/7/4
  6. * Time: 上午9:50
  7. */
  8. namespace App\Repositories;
  9. use App\Models\PostMusicCategoryRel;
  10. use Illuminate\Support\Facades\Cache;
  11. class MusicRepository
  12. {
  13. public function __construct(PostMusicCategoryRel $postMusicCategoryRel)
  14. {
  15. $this->postMusicCategoryRel = $postMusicCategoryRel;
  16. }
  17. //热门音乐列表
  18. public function lists($request)
  19. {
  20. $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
  21. $music_key = config('constants.MUSIC_LIST');
  22. if (Cache::has($music_key)) {
  23. return Cache::store('redis')->get($music_key);
  24. }
  25. $category_name = '热门';
  26. $postMusicCategoryRel = $this->postMusicCategoryRel
  27. ->join('post_music_category', 'post_music_category.id', '=', 'post_music_category_rel.music_category_id')
  28. ->join('post_music', 'post_music.id', '=', 'post_music_category_rel.mid')
  29. ->select('post_music.*')
  30. ->where('post_music_category.name', 'like', "%{$category_name}%")
  31. ->orderBy('id', 'desc')
  32. ->paginate($perPage);
  33. if (!Cache::has($music_key)) {
  34. Cache::store('redis')->put($music_key, $postMusicCategoryRel, 604800);//一周过期
  35. }
  36. return $postMusicCategoryRel;
  37. }
  38. }