visuddhinanda преди 11 месеца
родител
ревизия
a2abd36470
променени са 1 файла, в които са добавени 109 реда и са изтрити 93 реда
  1. 109 93
      api-v8/app/Http/Api/ShareApi.php

+ 109 - 93
api-v8/app/Http/Api/ShareApi.php

@@ -1,13 +1,18 @@
 <?php
+
 namespace App\Http\Api;
+
 use App\Models\GroupMember;
 use App\Models\Share;
 use App\Models\Article;
 use App\Models\Channel;
 use App\Models\Collection;
+use App\Models\Project;
+
 use App\Http\Api\ChannelApi;
 
-class ShareApi{
+class ShareApi
+{
 
     /**
      * 获取某用户的可见的协作资源
@@ -21,92 +26,99 @@ class ShareApi{
      * power 权限 10: 只读  20:编辑 30: 拥有者
      */
 
-    public static function getResList($user_uid,$res_type=-1){
+    public static function getResList($user_uid, $res_type = -1)
+    {
         # 找我加入的群
-        $my_group = GroupMember::where("user_id",$user_uid)->select('group_id')->get();
+        $my_group = GroupMember::where("user_id", $user_uid)->select('group_id')->get();
         $userList[] = $user_uid;
         foreach ($my_group as $key => $value) {
             # code...
-            $userList[]=$value["group_id"];
+            $userList[] = $value["group_id"];
         }
 
-        if($res_type==-1){
+        if ($res_type == -1) {
             #所有类型资源
-            $Fetch =Share::whereIn("cooperator_id",$userList)->select(['res_id','res_type','power'])->get();
-        }
-        else{
+            $Fetch = Share::whereIn("cooperator_id", $userList)->select(['res_id', 'res_type', 'power'])->get();
+        } else {
             #指定类型资源
-            $Fetch =Share::whereIn("cooperator_id",$userList)
-                        ->where('res_type',$res_type)
-                        ->select(['res_id','res_type','power'])->get();
+            $Fetch = Share::whereIn("cooperator_id", $userList)
+                ->where('res_type', $res_type)
+                ->select(['res_id', 'res_type', 'power'])->get();
         }
 
         $resOutput = array();
         foreach ($Fetch as $key => $value) {
             # 查重
-            if(isset($resOutput[$value["res_id"]])){
-                if($value["power"]>$resOutput[$value["res_id"]]["power"]){
+            if (isset($resOutput[$value["res_id"]])) {
+                if ($value["power"] > $resOutput[$value["res_id"]]["power"]) {
                     $resOutput[$value["res_id"]]["power"] = $value["power"];
                 }
-            }
-            else{
-                $resOutput[$value["res_id"]]= array("power"=> $value["power"],"type" => $value["res_type"]);
+            } else {
+                $resOutput[$value["res_id"]] = array("power" => $value["power"], "type" => $value["res_type"]);
             }
         }
-        $resList=array();
+        $resList = array();
         foreach ($resOutput as $key => $value) {
             # code...
-            $resList[]=array("res_id"=>$key,"res_type"=>(int)$value["type"],"power"=>(int)$value["power"]);
+            $resList[] = array("res_id" => $key, "res_type" => (int)$value["type"], "power" => (int)$value["power"]);
         }
 
         foreach ($resList as $key => $res) {
             # 获取资源标题 和所有者
-            $resList[$key]["res_title"]="_unknown_";
-            $resList[$key]["res_owner_id"]="_unknown_";
-            $resList[$key]["type"]="_unknown_";
-            $resList[$key]["status"]="0";
-            $resList[$key]["lang"]="_unknown_";
+            $resList[$key]["res_title"] = "_unknown_";
+            $resList[$key]["res_owner_id"] = "_unknown_";
+            $resList[$key]["type"] = "_unknown_";
+            $resList[$key]["status"] = "0";
+            $resList[$key]["lang"] = "_unknown_";
 
             switch ($res["res_type"]) {
                 case 1:
                     # pcs 文档
-                    $resList[$key]["res_title"]="title";
+                    $resList[$key]["res_title"] = "title";
                     break;
                 case 2:
                     # channel
-                    $channelInfo = Channel::where('uid',$res["res_id"])->first();
-                    if($channelInfo){
-                        $resList[$key]["res_title"]=$channelInfo["name"];
-                        $resList[$key]["res_owner_id"]=$channelInfo["owner_uid"];
-                        $resList[$key]["type"]=$channelInfo["type"];
-                        $resList[$key]["status"]=$channelInfo["status"];
-                        $resList[$key]["lang"]=$channelInfo["lang"];
+                    $channelInfo = Channel::where('uid', $res["res_id"])->first();
+                    if ($channelInfo) {
+                        $resList[$key]["res_title"] = $channelInfo["name"];
+                        $resList[$key]["res_owner_id"] = $channelInfo["owner_uid"];
+                        $resList[$key]["type"] = $channelInfo["type"];
+                        $resList[$key]["status"] = $channelInfo["status"];
+                        $resList[$key]["lang"] = $channelInfo["lang"];
                     }
                     break;
                 case 3:
                     # 3 Article 文章
-                    $aInfo = Article::where('uid',$res["res_id"])->first();
-                    if($aInfo){
-                        $resList[$key]["res_title"]=$aInfo["title"];
-                        $resList[$key]["res_owner_id"]=$aInfo["owner"];
-                        $resList[$key]["status"]=$aInfo["status"];
-                        $resList[$key]["lang"]='';
+                    $aInfo = Article::where('uid', $res["res_id"])->first();
+                    if ($aInfo) {
+                        $resList[$key]["res_title"] = $aInfo["title"];
+                        $resList[$key]["res_owner_id"] = $aInfo["owner"];
+                        $resList[$key]["status"] = $aInfo["status"];
+                        $resList[$key]["lang"] = '';
                     }
                     break;
                 case 4:
                     # 4 Collection 文集
-                    $aInfo = Collection::where('uid',$res["res_id"])->first();
-                    if($aInfo){
-                        $resList[$key]["res_title"]=$aInfo["title"];
-                        $resList[$key]["res_owner_id"]=$aInfo["owner"];
-                        $resList[$key]["status"]=$aInfo["status"];
-                        $resList[$key]["lang"]=$aInfo["lang"];
+                    $aInfo = Collection::where('uid', $res["res_id"])->first();
+                    if ($aInfo) {
+                        $resList[$key]["res_title"] = $aInfo["title"];
+                        $resList[$key]["res_owner_id"] = $aInfo["owner"];
+                        $resList[$key]["status"] = $aInfo["status"];
+                        $resList[$key]["lang"] = $aInfo["lang"];
                     }
                     break;
                 case 5:
                     # code...
                     break;
-
+                case 6:
+                    $aInfo = Project::where('uid', $res["res_id"])->first();
+                    if ($aInfo) {
+                        $resList[$key]["res_title"] = $aInfo["title"];
+                        $resList[$key]["res_owner_id"] = $aInfo["owner_id"];
+                        $resList[$key]["status"] = $aInfo["status"];
+                        $resList[$key]["lang"] = '';
+                    }
+                    break;
                 default:
                     # code...
                     break;
@@ -114,63 +126,67 @@ class ShareApi{
         }
 
         return $resList;
-
     }
 
     /**
      * 获取对某个共享资源的权限
      */
-    public static function getResPower($user_uid,$res_id,$res_type=0){
-            if(empty($user_uid)){
-                #未登录用户 没有共享资源
-                return 0;
-            }
-            //查看是否为资源拥有者
-            if($res_type!=0){
-                switch ($res_type) {
-                    case 2:
-                        # channel
-                        $channel = ChannelApi::getById($res_id);
-                        if($channel){
-                            if($channel['studio_id'] === $user_uid){
-                                return 30;
-                            }
-                        }
-                        break;
-                    case 3:
-                        //Article
-                        $owner = Article::where('uid',$res_id)->value('owner');
-                        if($owner === $user_uid){
-                            return 30;
-                        }
-                        break;
-                    case 4:
-                        $owner = Collection::where('uid',$res_id)->value('owner');
-                        if($owner === $user_uid){
+    public static function getResPower($user_uid, $res_id, $res_type = 0)
+    {
+        if (empty($user_uid)) {
+            #未登录用户 没有共享资源
+            return 0;
+        }
+        //查看是否为资源拥有者
+        if ($res_type != 0) {
+            switch ($res_type) {
+                case 2:
+                    # channel
+                    $channel = ChannelApi::getById($res_id);
+                    if ($channel) {
+                        if ($channel['studio_id'] === $user_uid) {
                             return 30;
                         }
-                        //文集
-                        break;
-                }
-            }
-            # 找我加入的群
-            $my_group = GroupMember::where("user_id",$user_uid)->select('group_id')->get();
-            $userList[] = $user_uid;
-            foreach ($my_group as $key => $value) {
-                $userList[]=$value["group_id"];
+                    }
+                    break;
+                case 3:
+                    //Article
+                    $owner = Article::where('uid', $res_id)->value('owner');
+                    if ($owner === $user_uid) {
+                        return 30;
+                    }
+                    break;
+                case 4:
+                    $owner = Collection::where('uid', $res_id)->value('owner');
+                    if ($owner === $user_uid) {
+                        return 30;
+                    }
+                    //文集
+                    break;
+                case 6: //workflow
+                    $owner = Project::where('uid', $res_id)->value('owner_id');
+                    if ($owner === $user_uid) {
+                        return 30;
+                    }
+                    break;
             }
-            $Fetch =Share::whereIn("cooperator_id",$userList)
-                        ->where('res_id',$res_id)
-                        ->select(['power'])->get();
-            $power=0;
-            foreach ($Fetch as $key => $value) {
-                # code...
-                if((int)$value["power"]>$power){
-                    $power = $value["power"];
-                }
+        }
+        # 找我加入的群
+        $my_group = GroupMember::where("user_id", $user_uid)->select('group_id')->get();
+        $userList[] = $user_uid;
+        foreach ($my_group as $key => $value) {
+            $userList[] = $value["group_id"];
+        }
+        $Fetch = Share::whereIn("cooperator_id", $userList)
+            ->where('res_id', $res_id)
+            ->select(['power'])->get();
+        $power = 0;
+        foreach ($Fetch as $key => $value) {
+            # code...
+            if ((int)$value["power"] > $power) {
+                $power = $value["power"];
             }
-            return $power;
+        }
+        return $power;
     }
-
 }
-