123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- <?php
- /**
- * Created by PhpStorm.
- * User: durong
- * Date: 2019/7/4
- * Time: 上午9:50
- */
- namespace App\Repositories;
- use App\Models\PostMusicCategory;
- use App\Models\PostMusicCategoryRel;
- use App\Models\PostMusicUser;
- use Illuminate\Support\Facades\Cache;
- class MusicRepository
- {
- public function __construct(PostMusicCategoryRel $postMusicCategoryRel,PostMusicCategory $postMusicCategory,PostMusicUser $postMusicUser)
- {
- $this->postMusicCategoryRel = $postMusicCategoryRel;
- $this->postMusicCategory = $postMusicCategory;
- $this->postMusicUser = $postMusicUser;
- }
- //热门音乐列表
- public function lists($request)
- {
- $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
- $music_key = config('constants.MUSIC_LIST');
- if (Cache::has($music_key)) {
- return Cache::store('redis')->get($music_key);
- }
- $category_name = '热门';
- $postMusicCategoryRel = $this->postMusicCategoryRel
- ->join('post_music_category', 'post_music_category.id', '=', 'post_music_category_rel.music_category_id')
- ->join('post_music', 'post_music.id', '=', 'post_music_category_rel.mid')
- ->select('post_music.*')
- ->where('post_music_category.name', 'like', "%{$category_name}%")
- ->orderBy('id', 'desc')
- ->paginate($perPage);
- if (!Cache::has($music_key)) {
- Cache::store('redis')->put($music_key, $postMusicCategoryRel, 604800);//一周过期
- }
- return $postMusicCategoryRel;
- }
- public function category_list($request)
- {
- $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
- return $this->postMusicCategory->where('is_open',1)->orderBy('id', 'asc')->paginate($perPage);
- }
- public function postMusicList($request)
- {
- $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
- $postMusicList = $this->postMusicCategoryRel
- ->join('post_music_category', 'post_music_category.id', '=', 'post_music_category_rel.music_category_id')
- ->join('post_music', 'post_music.id', '=', 'post_music_category_rel.mid')
- ->select('post_music.*')
- ->where(['post_music_category.id' => $request['category_id'], 'post_music_category.is_open' => 1])
- ->orderBy('id', 'desc')
- ->paginate($perPage);
- return $postMusicList;
- }
- public function create($request)
- {
- $data = [
- 'name' => $request['name'],
- 'username' => $request['username'],
- 'url' => $request['url'] ?? '',
- 'uid' => $request['uid']
- ];
- $music_create = $this->postMusicUser->create($data);
- if (!$music_create) {
- return jsonError('上传失败请重试');
- }
- }
- }
|