فهرست منبع

add view = public

visuddhinanda 2 سال پیش
والد
کامیت
fa475fff4f
1فایلهای تغییر یافته به همراه40 افزوده شده و 46 حذف شده
  1. 40 46
      app/Http/Controllers/ChannelController.php

+ 40 - 46
app/Http/Controllers/ChannelController.php

@@ -33,6 +33,11 @@ class ChannelController extends Controller
 		$result=false;
 		$indexCol = ['uid','name','summary','type','owner_uid','lang','status','updated_at','created_at'];
 		switch ($request->get('view')) {
+            case 'public':
+                $table = Channel::select($indexCol)
+                            ->where('status',30);
+
+                break;
             case 'studio':
 				# 获取studio内所有channel
                 $user = AuthApi::current($request);
@@ -73,7 +78,7 @@ class ChannelController extends Controller
                     return $this->error(__('auth.failed'));
                 }
                 //判断当前用户是否有指定的studio的权限
-                if($user['user_uid'] !== \App\Http\Api\StudioApi::getIdByName($request->get('name'))){
+                if($user['user_uid'] !== StudioApi::getIdByName($request->get('name'))){
                     return $this->error(__('auth.failed'));
                 }
                 $channelById = [];
@@ -150,9 +155,7 @@ class ChannelController extends Controller
                 $table = Channel::select($indexCol)
                         ->whereIn('uid', $channelId)
                         ->orWhere('owner_uid',$user['user_uid']);
-
                 break;
-
         }
         //处理搜索
         if($request->has("search")){
@@ -161,21 +164,11 @@ class ChannelController extends Controller
         //获取记录总条数
         $count = $table->count();
         //处理排序
-        if($request->has("order") && $request->has("dir")){
-            $table = $table->orderBy($request->get("order"),$request->get("dir"));
-        }else{
-            //默认排序
-            $table = $table->orderBy('updated_at','desc');
-        }
+        $table = $table->orderBy($request->get("order",'updated_at'),
+                                 $request->get("dir",'desc'));
         //处理分页
-        if($request->has("limit")){
-            if($request->has("offset")){
-                $offset = $request->get("offset");
-            }else{
-                $offset = 0;
-            }
-            $table = $table->skip($offset)->take($request->get("limit"));
-        }
+        $table = $table->skip($request->get("offset",0))
+                       ->take($request->get("limit",200));
         //获取数据
         $result = $table->get();
 //TODO 将下面代码转移到resource
@@ -184,19 +177,19 @@ class ChannelController extends Controller
                 //获取进度
                 //获取单句长度
                 $sentLen = PaliSentence::where('book',$request->get('book'))
-                ->whereBetween('paragraph',$chapter)
-                ->orderBy('word_begin')
-                ->select(['book','paragraph','word_begin','word_end','length'])
-                ->get();
+                                        ->whereBetween('paragraph',$chapter)
+                                        ->orderBy('word_begin')
+                                        ->select(['book','paragraph','word_begin','word_end','length'])
+                                        ->get();
             }
             foreach ($result as $key => $value) {
                 if($request->has('progress')){
                     //获取进度
                     $finalTable = Sentence::where('book_id',$request->get('book'))
-                    ->whereBetween('paragraph',$chapter)
-                    ->where('channel_uid',$value->uid)
-                    ->where('strlen','>',0)
-                    ->select(['strlen','book_id','paragraph','word_start','word_end']);
+                                        ->whereBetween('paragraph',$chapter)
+                                        ->where('channel_uid',$value->uid)
+                                        ->where('strlen','>',0)
+                                        ->select(['strlen','book_id','paragraph','word_start','word_end']);
                     if($finalTable->count()>0){
                         $finished = $finalTable->get();
                         $final=[];
@@ -212,33 +205,34 @@ class ChannelController extends Controller
                         }
                         $value['final'] = $final;
                     }
-
                 }
                 //角色
-                if($value->owner_uid===$user['user_uid']){
-                    $value['role'] = 'owner';
-                }else{
-                    if(isset($channelById[$value->uid])){
-                        switch ($channelById[$value->uid]['power']) {
-                            case 10:
-                                # code...
-                                $value['role'] = 'member';
-                                break;
-                            case 20:
-                                $value['role'] = 'editor';
-                                break;
-                            case 30:
-                                $value['role'] = 'owner';
-                                break;
-                            default:
-                                # code...
-                                $value['role'] = $channelById[$value->uid]['power'];
-                                break;
+                if(isset($user['user_uid'])){
+                    if($value->owner_uid===$user['user_uid']){
+                        $value['role'] = 'owner';
+                    }else{
+                        if(isset($channelById[$value->uid])){
+                            switch ($channelById[$value->uid]['power']) {
+                                case 10:
+                                    # code...
+                                    $value['role'] = 'member';
+                                    break;
+                                case 20:
+                                    $value['role'] = 'editor';
+                                    break;
+                                case 30:
+                                    $value['role'] = 'owner';
+                                    break;
+                                default:
+                                    # code...
+                                    $value['role'] = $channelById[$value->uid]['power'];
+                                    break;
+                            }
                         }
                     }
                 }
                 # 获取studio信息
-                $value->studio = \App\Http\Api\StudioApi::getById($value->owner_uid);
+                $value->studio = StudioApi::getById($value->owner_uid);
             }
 			return $this->ok(["rows"=>$result,"count"=>$count]);
 		}else{