Browse Source

用户上传音乐列表

durong 5 years ago
parent
commit
cf7d0341f1

+ 21 - 0
app/Http/Controllers/MusicController.php

@@ -10,6 +10,7 @@ use App\Models\PostMusicCategoryRel;
 use App\Repositories\MusicRepository;
 use App\Transformers\MusicCategoryTransformer;
 use App\Transformers\MusicTranformer;
+use App\Transformers\UserMusicTranformer;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Validator;
 use Illuminate\Validation\Rule;
@@ -175,4 +176,24 @@ class MusicController extends Controller
         return $this->musicRepository->musicDelete($request->only('id'));
 
     }
+
+    //用户上传音乐列表
+    public function userMusic(Request $request)
+    {
+        $musicList = $this->musicRepository->userMusic($request->all());
+        $fractal = new Manager();
+        $resource = new Collection($musicList, new UserMusicTranformer());
+        $resource->setPaginator(new IlluminatePaginatorAdapter($musicList));
+        $data = $fractal->createData($resource)->toArray();
+        $data['extra'] = [
+            'columns' => [
+                'id',
+                'created_at',
+                'username',
+                'name',
+                'url'
+            ]
+        ];
+        return $data;
+    }
 }

+ 11 - 1
app/Repositories/MusicRepository.php

@@ -10,6 +10,7 @@ use Acekyd\LaravelMP3\LaravelMP3;
 use App\Models\PostMusic;
 use App\Models\PostMusicCategory;
 use App\Models\PostMusicCategoryRel;
+use App\Models\PostMusicUser;
 use Illuminate\Support\Facades\DB;
 use Symfony\Component\HttpKernel\Exception\HttpException;
 use Dingo\Api\Http\Response;
@@ -18,11 +19,12 @@ use Illuminate\Database\QueryException;
 
 class MusicRepository
 {
-    public function __construct(PostMusicCategoryRel $postMusicCategoryRel,PostMusicCategory $postMusicCategory,PostMusic $postMusic)
+    public function __construct(PostMusicCategoryRel $postMusicCategoryRel,PostMusicCategory $postMusicCategory,PostMusic $postMusic,PostMusicUser $postMusicUser)
     {
         $this->postMusicCategoryRel = $postMusicCategoryRel;
         $this->postMusicCategory = $postMusicCategory;
         $this->postMusic = $postMusic;
+        $this->postMusicUser = $postMusicUser;
     }
 
     public function category_list($request)
@@ -223,5 +225,13 @@ class MusicRepository
         }
     }
 
+    public function userMusic($request)
+    {
+        $perPage = isset($request['per_page']) ? $request['per_page'] : 20;
+
+        return $this->postMusicUser->orderBy('id', 'asc')->paginate($perPage);
+
+    }
+
 
 }

+ 25 - 0
app/Transformers/UserMusicTranformer.php

@@ -0,0 +1,25 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: durong
+ * Date: 2019/7/10
+ * Time: 下午14:53
+ */
+namespace App\Transformers;
+
+use App\Models\PostMusicUser;
+use League\Fractal\TransformerAbstract;
+
+class UserMusicTranformer extends TransformerAbstract {
+
+    public function transform(PostMusicUser $musicList)
+    {
+        return [
+            'id' => $musicList['id'],
+            'name' => $musicList['name'],
+            'url' => $musicList['url'],
+            'created_at' => date($musicList['created_at']),
+            'username' => $musicList['username'],
+        ];
+    }
+}