Pārlūkot izejas kodu

:fire: 对 copy & move的支持

visuddhinanda 2 gadi atpakaļ
vecāks
revīzija
2aead18a86
1 mainītis faili ar 8 papildinājumiem un 102 dzēšanām
  1. 8 102
      app/Http/Controllers/DhammaTermController.php

+ 8 - 102
app/Http/Controllers/DhammaTermController.php

@@ -202,6 +202,7 @@ class DhammaTermController extends Controller
             'meaning' => 'required',
         ]);
 
+
         /**
          * 查询重复的
          * 一个channel下面word+tag+language 唯一
@@ -230,11 +231,16 @@ class DhammaTermController extends Controller
             $term->tag = $request->get("tag");
             $term->channal = $request->get("channel");
             $term->language = $request->get("language");
-            if($request->has("channel")){
+            if(!empty($request->get("channel"))){
                 $channelInfo = ChannelApi::getById($request->get("channel"));
                 if(!$channelInfo){
                     return $this->error("channel id failed");
                 }else{
+                    //查看有没有channel权限
+                    $power = ShareApi::getResPower($user["user_uid"],$request->get("channel"),2);
+                    if($power < 20){
+                        return $this->error(__('auth.failed'));
+                    }
                     $term->owner = $channelInfo['studio_id'];
                     $term->language = $channelInfo['lang'];
                 }
@@ -311,102 +317,17 @@ class DhammaTermController extends Controller
             return $this->error('404');
         }
 
-        $srcCanEdit = true;
         if(empty($dhammaTerm->channal)){
             //查看有没有studio权限
             if($user['user_uid'] !== $dhammaTerm->owner){
-                $srcCanEdit = false;
+                return $this->error(__('auth.failed'),[],403);
             }
         }else{
             //查看有没有channel权限
             $power = ShareApi::getResPower($user["user_uid"],$dhammaTerm->channal,2);
             if($power < 20){
-                $srcCanEdit = false;
-            }
-        }
-        $destCanEdit = true;
-        if(empty($request->get("channel"))){
-            //查看有没有studio权限
-            if($user['user_uid'] !== $dhammaTerm->owner){
-                $destCanEdit = false;
-            }
-        }else{
-            //查看有没有channel权限
-            $power = ShareApi::getResPower($user["user_uid"],$request->get("channel"),2);
-            if($power < 20){
-                $destCanEdit = false;
-            }
-        }
-
-        $channelSame = true;
-        if(empty($dhammaTerm->channal)){
-            if(empty($request->get("channel"))){
-                $channelSame = true;
-            }else{
-                $channelSame = false;
-            }
-        }else{
-            if($dhammaTerm->channal===$request->get("channel")){
-                $channelSame = true;
-            }else{
-                $channelSame = false;
-            }
-        }
-
-        if($channelSame){
-            //两个一样,只判断源权限
-            if(!$srcCanEdit){
                 return $this->error(__('auth.failed'),[],403);
             }
-        }else{
-            if($request->get("copy")==='copy'){
-                //复制模式 只判断目标权限
-                if(!$destCanEdit){
-                    return $this->error(__('auth.failed'),[],403);
-                }
-            }else{
-                //移动模式 源目标两个都判断
-                if(!$destCanEdit || !$srcCanEdit){
-                    return $this->error(__('auth.failed'),[],403);
-                }
-            }
-        }
-
-        if(!$channelSame){
-            /**
-             * 新建
-            */
-            /**
-             * 查询重复的
-             * 一个channel下面word+tag+language+channel 唯一
-             *
-             */
-            $existTerm = DhammaTerm::where('word',$request->get("word"))
-                                ->where('tag',$request->get("tag"));
-            if($request->has("channel")){
-                $existTerm->where('channal',$request->get("channel"));
-            }else{
-                if($request->has("studioName")){
-                    $existTerm->where('owner', StudioApi::getIdByName($request->get("studioName")))
-                            ->whereNull('channal')
-                            ->where('language', $request->get("language"));
-                }else if($request->has("studioId")){
-                    $existTerm->whereNull('channal')
-                            ->where('owner', $request->get("studioId"))
-                            ->where('language', $request->get("language"));
-                }
-            }
-            $exist = $existTerm->exists();
-            if($exist){
-                return $this->error("word existed",[],200);
-            }
-            $dhammaTerm = new DhammaTerm;
-            $dhammaTerm->id = app('snowflake')->id();
-            $dhammaTerm->guid = Str::uuid();
-        }
-        if($request->get("copy")==='move'){
-            //删除旧数据
-            DhammaTerm::find($id)->delete();
         }
 
         $dhammaTerm->word = $request->get("word");
@@ -415,22 +336,7 @@ class DhammaTermController extends Controller
         $dhammaTerm->other_meaning = $request->get("other_meaning");
         $dhammaTerm->note = $request->get("note");
         $dhammaTerm->tag = $request->get("tag");
-        $dhammaTerm->channal = $request->get("channel");
         $dhammaTerm->language = $request->get("language");
-
-        if($request->has("studioName")){
-            $dhammaTerm->owner = StudioApi::getIdByName($request->get("studioName"));
-        }else if($request->has("studioId")){
-            $dhammaTerm->owner = $request->get("studioId");
-        }
-        if($request->has("channel") && Str::isUuid($request->get("channel"))){
-            $channelInfo = ChannelApi::getById($request->get("channel"));
-            if(!$channelInfo){
-                return $this->error("channel id failed");
-            }else{
-                $dhammaTerm->owner = $channelInfo['studio_id'];
-            }
-        }
         $dhammaTerm->editor_id = $user["user_id"];
         $dhammaTerm->create_time = time()*1000;
         $dhammaTerm->modify_time = time()*1000;