Browse Source

:sparkles: 增加协作者过滤器

visuddhinanda 3 years ago
parent
commit
09bc12b527

+ 6 - 1
app/Http/Controllers/ChannelController.php

@@ -55,7 +55,12 @@ class ChannelController extends Controller
                     foreach ($resList as $res) {
                         $resId[] = $res['res_id'];
                     }
-                    $table = $table->whereIn('uid', $resId)->where('owner_uid','<>', $studioId);
+                    $table = $table->whereIn('uid', $resId);
+                    if($request->get('collaborator','all') !== 'all'){
+                        $table = $table->where('owner_uid', $request->get('collaborator'));
+                    }else{
+                        $table = $table->where('owner_uid','<>', $studioId);
+                    }
                 }
 				break;
             case 'studio-all':

+ 88 - 0
app/Http/Controllers/StudioController.php

@@ -0,0 +1,88 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use Illuminate\Http\Request;
+use App\Http\Api\AuthApi;
+use App\Http\Api\StudioApi;
+use App\Http\Api\ShareApi;
+use App\Models\Channel;
+
+class StudioController extends Controller
+{
+    /**
+     * Display a listing of the resource.
+     *
+     * @return \Illuminate\Http\Response
+     */
+    public function index(Request $request)
+    {
+        //
+        switch ($request->get('view')) {
+            case 'collaboration-channel':
+                //协作channel 拥有者列表
+                $studioId = StudioApi::getIdByName($request->get('studio_name'));
+                $resList = ShareApi::getResList($studioId,2);
+                $resId=[];
+                foreach ($resList as $res) {
+                    $resId[] = $res['res_id'];
+                }
+                $owners = Channel::whereIn('uid', $resId)
+                                ->where('owner_uid','<>', $studioId)
+                                ->select('owner_uid')
+                                ->groupBy('owner_uid')->get();
+                $output = [];
+                foreach ($owners as $key => $owner) {
+                    # code...
+                    $output[] = StudioApi::getById($owner->owner_uid);
+                }
+                return $this->ok(['rows'=>$output,'count'=>count($output)]);
+                break;
+        }
+    }
+
+    /**
+     * Store a newly created resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @return \Illuminate\Http\Response
+     */
+    public function store(Request $request)
+    {
+        //
+    }
+
+    /**
+     * Display the specified resource.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function show($id)
+    {
+        //
+    }
+
+    /**
+     * Update the specified resource in storage.
+     *
+     * @param  \Illuminate\Http\Request  $request
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function update(Request $request, $id)
+    {
+        //
+    }
+
+    /**
+     * Remove the specified resource from storage.
+     *
+     * @param  int  $id
+     * @return \Illuminate\Http\Response
+     */
+    public function destroy($id)
+    {
+        //
+    }
+}

+ 2 - 0
routes/api.php

@@ -45,6 +45,7 @@ use App\Http\Controllers\TermVocabularyController;
 use App\Http\Controllers\RelatedParagraphController;
 use App\Http\Controllers\SearchController;
 use App\Http\Controllers\WordIndexController;
+use App\Http\Controllers\StudioController;
 
 /*
 |--------------------------------------------------------------------------
@@ -137,6 +138,7 @@ Route::group(['prefix' => 'v2'],function(){
     Route::apiResource('search',SearchController::class);
     Route::get('search-book-list',[SearchController::class,'book_list']);
     Route::apiResource('pali-word-index',WordIndexController::class);
+    Route::apiResource('studio',StudioController::class);
 
     Route::get('download/{type1}/{type2}/{uuid}/{filename}', function ($type1,$type2,$uuid,$filename) {