浏览代码

Merge remote-tracking branch 'origin/develop' into develop

wzq 5 年之前
父节点
当前提交
2cd32e5cac

+ 29 - 0
app/Http/Controllers/V1/MusicListController.php

@@ -0,0 +1,29 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/7/4
+ * Time: 上午9:47
+ */
+namespace App\Http\Controllers\V1;
+use App\Repositories\MusicRepository;
+use App\Transformers\MusicTranformer;
+use Illuminate\Http\Request;
+use League\Fractal\Pagination\IlluminatePaginatorAdapter;
+use League\Fractal\Resource\Collection;
+use League\Fractal\Manager;
+class MusicListController extends Controller
+{
+    public function __construct(MusicRepository $musicRepository) {
+        $this->musicRepository = $musicRepository;
+    }
+    //热门音乐列表
+    public function index(Request $request) {
+        $musicList = $this->musicRepository->lists($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($musicList, new MusicTranformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($musicList));
+        $data = $fractal->createData($resource)->toArray();
+        return jsonSuccess($data);
+    }
+}

+ 22 - 0
app/Models/PostMusic.php

@@ -0,0 +1,22 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-07-04
+ * Time: 9:47
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class PostMusic extends Model {
+    protected $table = 'post_music';
+    protected $guarded = [];
+
+    public function PostMusicCategoryRel()
+    {
+        return $this->hasMany('App\Models\PostMusicCategoryRel','mid','id');
+    }
+}

+ 22 - 0
app/Models/PostMusicCategory.php

@@ -0,0 +1,22 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-07-04
+ * Time: 9:47
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class PostMusicCategory extends Model {
+    protected $table = 'post_music_category';
+    protected $guarded = [];
+
+    public function PostMusicCategoryRel()
+    {
+        return $this->hasMany('App\Models\PostMusicCategoryRel','music_category_id','id');
+    }
+}

+ 28 - 0
app/Models/PostMusicCategoryRel.php

@@ -0,0 +1,28 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: Administrator
+ * Date: 2019-07-04
+ * Time: 9:47
+ */
+
+namespace App\Models;
+
+
+use Illuminate\Database\Eloquent\Model;
+
+class PostMusicCategoryRel extends Model {
+    protected $table = 'post_music_category_rel';
+    protected $guarded = [];
+
+    //音乐
+    public function postMusic()
+    {
+        return $this->hasOne('App\Models\PostMusic', 'id', 'mid');
+    }
+    //音乐分类
+    public function postCategory()
+    {
+        return $this->hasOne('App\Models\PostMusicCategory', 'id', 'music_category_id');
+    }
+}

+ 37 - 0
app/Repositories/MusicRepository.php

@@ -0,0 +1,37 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/7/4
+ * Time: 上午9:50
+ */
+namespace App\Repositories;
+
+use App\Models\PostMusic;
+use App\Models\PostMusicCategoryRel;
+
+class MusicRepository
+{
+    public function __construct(PostMusicCategoryRel $postMusicCategoryRel)
+    {
+        $this->postMusicCategoryRel = $postMusicCategoryRel;
+    }
+
+    //热门音乐列表
+    public function lists($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+
+        $this->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.id', 11)
+            ->orderBy('id', 'desc')
+            ->paginate($perPage);
+
+        return $this->postMusicCategoryRel;
+    }
+
+
+}

+ 26 - 0
app/Transformers/MusicTranformer.php

@@ -0,0 +1,26 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/7/4
+ * Time: 上午9:53
+ */
+namespace App\Transformers;
+
+use App\Models\PostMusicCategoryRel;
+use League\Fractal\TransformerAbstract;
+
+class MusicTranformer extends TransformerAbstract {
+
+    public function transform(PostMusicCategoryRel $musicList)
+    {
+        return [
+            'id' => $musicList['id'],
+            'name' => $musicList['name'],
+            'music_duration' => $musicList['music_duration'],
+            'url' => $musicList['url'],
+            'img' => $musicList['img'],
+            'singer' => $musicList['singer'],
+        ];
+    }
+}

+ 2 - 2
routes/api.php

@@ -26,6 +26,8 @@ $api->version('v1', [
     $api->group(['middleware' => ['chxq_jwt_auth']], function ($api) {
         //内容详情
         $api->get('post/detail', 'PostController@detail');
+        //获取热门分类下音乐列表
+        $api->get('musicList', 'MusicListController@index');
     });
     $api->get('post/suggest2', 'PostController@suggestPost');
     //登录+验签
@@ -77,9 +79,7 @@ $api->version('v1', [
         $api->get('post/memberPostStatistics', 'PostController@memberPostStatistics');
         //关注feed流
         $api->get('feed', 'FeedController@index');
-    });
 
-    $api->group(['middleware' => ['chxq_jwt_auth','chxq_sign']], function ($api) {
         //优秀居民信息获取
         $api->get('excellentResidents', 'BeanDetailController@excellentResidents');
         //排行榜