visuddhinanda преди 2 години
родител
ревизия
256a6adffe
променени са 1 файла, в които са добавени 0 реда и са изтрити 215 реда
  1. 0 215
      app/Http/Controllers/DhammaTermController.php

+ 0 - 215
app/Http/Controllers/DhammaTermController.php

@@ -404,219 +404,4 @@ class DhammaTermController extends Controller
 		return $this->ok($count);
     }
 
-    public function export(Request $request){
-        $user = AuthApi::current($request);
-        if(!$user){
-            return $this->error(__('auth.failed'));
-        }
-//TODO 判断是否有导出权限
-        switch ($request->get("view")) {
-            case 'channel':
-                # code...
-                $rows = DhammaTerm::where('channal',$request->get("id"))->cursor();
-                break;
-            case 'studio':
-                # code...
-                $studioId = StudioApi::getIdByName($request->get("name"));
-                $rows = DhammaTerm::where('owner',$studioId)->cursor();
-                break;
-            default:
-                $this->error('no view');
-                break;
-        }
-
-        $spreadsheet = new Spreadsheet();
-        $activeWorksheet = $spreadsheet->getActiveSheet();
-        $activeWorksheet->setCellValue('A1', 'id');
-        $activeWorksheet->setCellValue('B1', 'word');
-        $activeWorksheet->setCellValue('C1', 'meaning');
-        $activeWorksheet->setCellValue('D1', 'other_meaning');
-        $activeWorksheet->setCellValue('E1', 'note');
-        $activeWorksheet->setCellValue('F1', 'tag');
-        $activeWorksheet->setCellValue('G1', 'language');
-        $activeWorksheet->setCellValue('H1', 'channel_id');
-
-        $currLine = 2;
-        foreach ($rows as $key => $row) {
-            # code...
-            $activeWorksheet->setCellValue("A{$currLine}", $row->guid);
-            $activeWorksheet->setCellValue("B{$currLine}", $row->word);
-            $activeWorksheet->setCellValue("C{$currLine}", $row->meaning);
-            $activeWorksheet->setCellValue("D{$currLine}", $row->other_meaning);
-            $activeWorksheet->setCellValue("E{$currLine}", $row->note);
-            $activeWorksheet->setCellValue("F{$currLine}", $row->tag);
-            $activeWorksheet->setCellValue("G{$currLine}", $row->language);
-            $activeWorksheet->setCellValue("H{$currLine}", $row->channal);
-            $currLine++;
-        }
-        $writer = new Xlsx($spreadsheet);
-        $fId = Str::uuid();
-        $filename = storage_path("app/tmp/{$fId}");
-        $writer->save($filename);
-        RedisClusters::put("download/tmp/{$fId}",file_get_contents($filename),300);
-        unlink($filename);
-        return $this->ok(['uuid'=>$fId,'filename'=>"term.xlsx",'type'=>"application/vnd.ms-excel"]);
-    }
-
-    public function import(Request $request){
-        $user = AuthApi::current($request);
-        if(!$user){
-            return $this->error(__('auth.failed'));
-        }
-        /**
-         * 判断是否有权限
-         */
-        switch ($request->get('view')) {
-            case 'channel':
-                # 向channel里面导入,忽略源数据的channel id 和 owner 都设置为这个channel 的
-                $channel = ChannelApi::getById($request->get('id'));
-                $owner_id = $channel['studio_id'];
-                if($owner_id !== $user["user_uid"]){
-                    //判断是否为协作
-                    $power = ShareApi::getResPower($user["user_uid"],$request->get('id'));
-                    if($power<20){
-                        return $this->error(__('auth.failed'),[],403);
-                    }
-                }
-                $language = $channel['lang'];
-                break;
-            case 'studio':
-                # 向 studio 里面导入,忽略源数据的 owner 但是要检测 channel id 是否有权限
-                $owner_id = StudioApi::getIdByName($request->get('name'));
-                if(!$owner_id){
-                    return $this->error('no studio name',[],403);
-                }
-
-                break;
-        }
-
-        $message = "";
-        $filename = $request->get('filename');
-        $reader = new \PhpOffice\PhpSpreadsheet\Reader\Xlsx();
-        $reader->setReadDataOnly(true);
-        $spreadsheet = $reader->load($filename);
-        $activeWorksheet = $spreadsheet->getActiveSheet();
-        $currLine = 2;
-        $countFail = 0;
-
-        do {
-            # code...
-            $id = $activeWorksheet->getCell("A{$currLine}")->getValue();
-            $word = $activeWorksheet->getCell("B{$currLine}")->getValue();
-            $meaning = $activeWorksheet->getCell("C{$currLine}")->getValue();
-            $other_meaning = $activeWorksheet->getCell("D{$currLine}")->getValue();
-            $note = $activeWorksheet->getCell("E{$currLine}")->getValue();
-            $tag = $activeWorksheet->getCell("F{$currLine}")->getValue();
-            $language = $activeWorksheet->getCell("G{$currLine}")->getValue();
-            $channel_id = $activeWorksheet->getCell("H{$currLine}")->getValue();
-            $query = ['word'=>$word,'tag'=>$tag];
-            $channelId = null;
-            switch ($request->get('view')) {
-                case 'channel':
-                    # 向channel里面导入,忽略源数据的channel id 和 owner 都设置为这个channel 的
-                    $query['channal'] = $request->get('id');
-                    $channelId = $request->get('id');
-                    break;
-                case 'studio':
-                    # 向 studio 里面导入,忽略源数据的owner 但是要检测 channel id 是否有权限
-                    $query['owner'] = $owner_id;
-                    if(!empty($channel_id)){
-
-                        //有channel 数据,查看是否在studio中
-                        $channel = ChannelApi::getById($channel_id);
-                        if($channel === false){
-                            $message .= "没有查到版本信息:{$channel_id} - {$word}\n";
-                            $currLine++;
-                            $countFail++;
-                            continue 2;
-                        }
-                        if($owner_id != $channel['studio_id']){
-                            $message .= "版本不在studio中:{$channel_id} - {$word}\n";
-                            $currLine++;
-                            $countFail++;
-                            continue 2;
-                        }
-                        $query['channal'] = $channel_id;
-                        $channelId = $channel_id;
-                    }
-                    # code...
-                    break;
-            }
-
-            if(empty($id) && empty($word)){
-                break;
-            }
-
-            //查询此id是否有旧数据
-            if(!empty($id)){
-                $oldRow = DhammaTerm::find($id);
-                //TODO 有 id 无 word 删除数据
-                if(empty($word)){
-                    //查看权限
-                    if($oldRow->owner !== $user['user_uid']){
-                        if(!empty($oldRow->channal)){
-                            //看是否为协作
-                            $power = ShareApi::getResPower($user['user_uid'],$oldRow->channal);
-                            if($power < 20){
-                                $message .= "无删除权限:{$id} - {$word}\n";
-                                $currLine++;
-                                $countFail++;
-                                continue;
-                            }
-                        }else{
-                            $message .= "无删除权限:{$id} - {$word}\n";
-                            $currLine++;
-                            $countFail++;
-                            continue;
-                        }
-                    }
-                    //删除
-                    $oldRow->delete();
-                    $currLine++;
-                    continue;
-                }
-            }else{
-                $oldRow = null;
-            }
-            //查询是否跟已有数据重复
-            $row = DhammaTerm::where($query)->first();
-            if(!$row){
-                //不重复
-                if(isset($oldRow) && $oldRow){
-                    //找到旧的记录-修改旧数据
-                    $row = $oldRow;
-                }else{
-                    //没找到旧的记录-新建
-                    $row = new DhammaTerm();
-                    $row->id = app('snowflake')->id();
-                    $row->guid = Str::uuid();
-                    $row->word = $word;
-                    $row->create_time = time()*1000;
-                }
-            }else{
-                //重复-如果与旧的id不同,报错
-                if(isset($oldRow) && $oldRow && $row->guid !== $id){
-                    $message .= "重复的数据:{$id} - {$word}\n";
-                    $currLine++;
-                    $countFail++;
-                    continue;
-                }
-            }
-            $row->word = $word;
-            $row->word_en = Tools::getWordEn($word);
-            $row->meaning = $meaning;
-            $row->other_meaning = $other_meaning;
-            $row->note = $note;
-            $row->tag = $tag;
-            $row->language = $language;
-            $row->channal = $channelId;
-            $row->editor_id = $user['user_id'];
-            $row->owner = $owner_id;
-            $row->modify_time = time()*1000;
-            $row->save();
-
-            $currLine++;
-        } while (true);
-        return $this->ok(["success"=>$currLine-2-$countFail,'fail'=>($countFail)],$message);
-    }
 }