Переглянути джерело

支持输出某用户参加的group列表

visuddhinanda 1 рік тому
батько
коміт
bec460c133
1 змінених файлів з 46 додано та 52 видалено
  1. 46 52
      api-v8/app/Http/Controllers/GroupMemberController.php

+ 46 - 52
api-v8/app/Http/Controllers/GroupMemberController.php

@@ -18,64 +18,59 @@ class GroupMemberController extends Controller
     public function index(Request $request)
     {
         //
-		$result=false;
-		$indexCol = ['id','user_id','group_id','power','level','status','updated_at','created_at'];
-		switch ($request->get('view')) {
+        $user = AuthApi::current($request);
+        if (!$user) {
+            return $this->error(__('auth.failed'));
+        }
+        $result = false;
+        $indexCol = ['id', 'user_id', 'group_id', 'power', 'level', 'status', 'updated_at', 'created_at'];
+        switch ($request->get('view')) {
             case 'group':
-	            # 获取 group 内所有 成员
-                $user = AuthApi::current($request);
-                if(!$user){
+                # 获取 group 内所有 成员
+                //判断当前用户是否有指定的 group 的权限
+                if (GroupMember::where('group_id', $request->get('id'))
+                    ->where('user_id', $user['user_uid'])
+                    ->exists()
+                ) {
+                    $table = GroupMember::where('group_id', $request->get('id'));
+                    //当前用户角色
+                    $power = GroupMember::where('group_id', $request->get('id'))
+                        ->where('user_id', $user['user_uid'])
+                        ->value('power');
+                    $roles = ["owner", "manager", "member"];
+                } else {
                     return $this->error(__('auth.failed'));
                 }
-                    //判断当前用户是否有指定的 group 的权限
-                    if(GroupMember::where('group_id', $request->get('id'))
-                            ->where('user_id',$user['user_uid'])
-                            ->exists()){
-                                $table = GroupMember::where('group_id', $request->get('id'));
-                    }else{
-                        return $this->error(__('auth.failed'));
-                    }
-				break;
+                break;
+            case 'user':
+                //获取当前用户参与的group列表
+                $table = GroupMember::where('user_id', $user['user_uid']);
+                break;
         }
-        if(isset($_GET["search"])){
-            $table = $table->where('title', 'like', $_GET["search"]."%");
+        if (isset($_GET["search"])) {
+            $table = $table->where('title', 'like', $_GET["search"] . "%");
         }
         $count = $table->count();
-        if(isset($_GET["order"]) && isset($_GET["dir"])){
-            $table = $table->orderBy($_GET["order"],$_GET["dir"]);
-        }else{
+        if (isset($_GET["order"]) && isset($_GET["dir"])) {
+            $table = $table->orderBy($_GET["order"], $_GET["dir"]);
+        } else {
             $table = $table->orderBy('created_at');
         }
 
-        $table->skip($request->get('offset',0))
-              ->take($request->get('limit',1000));
+        $table->skip($request->get('offset', 0))
+            ->take($request->get('limit', 1000));
 
         $result = $table->get();
 
-        //当前用户角色
-        $power = GroupMember::where('group_id', $request->get('id'))
-                            ->where('user_id',$user['user_uid'])
-                            ->value('power');
-        switch ($power) {
-            case 0:
-                $role = "owner";
-                break;
-            case 1:
-                $role = "manager";
-                break;
-            case 2:
-                $role = "member";
-                break;
-            default:
-                $role="unknown";
-                break;
+        $output = [
+            "rows" => GroupMemberResource::collection($result),
+            "count" => $count,
+        ];
+        if (isset($power) && isset($roles[$power])) {
+            $output['role'] = $roles[$power];
         }
 
-        return $this->ok([
-            "rows"=>GroupMemberResource::collection($result),
-            "count"=>$count,
-            'role'=>$role
-        ]);
+        return $this->ok($output);
     }
 
     /**
@@ -92,11 +87,11 @@ class GroupMemberController extends Controller
             'group_id' => 'required',
         ]);
         //查找重复的项目
-        if(GroupMember::where('group_id', $validated['group_id'])->where('user_id',$validated['user_id'])->exists()){
+        if (GroupMember::where('group_id', $validated['group_id'])->where('user_id', $validated['user_id'])->exists()) {
             return $this->error('member exists');
         }
         $newMember = new GroupMember();
-        $newMember->id=app('snowflake')->id();
+        $newMember->id = app('snowflake')->id();
         $newMember->user_id = $validated['user_id'];
         $newMember->group_id = $validated['group_id'];
         $newMember->power = 2;
@@ -141,20 +136,19 @@ class GroupMemberController extends Controller
         //查看删除者有没有删除权限
         //查询删除者的权限
         $currUser = AuthApi::current($request);
-        if(!$currUser){
+        if (!$currUser) {
             return $this->error(__('auth.failed'));
         }
 
-        $power = GroupMember::where('group_id',$groupMember->group_id)
-                        ->where('user_id',$currUser["user_uid"])
-                        ->select('power')->first();
-        if(!$power || $power->power>=2){
+        $power = GroupMember::where('group_id', $groupMember->group_id)
+            ->where('user_id', $currUser["user_uid"])
+            ->select('power')->first();
+        if (!$power || $power->power >= 2) {
             //普通成员没有删除权限
             return $this->error(__('auth.failed'));
         }
 
         $delete = $groupMember->delete();
         return $this->ok($delete);
-
     }
 }