| 
@@ -46,13 +46,15 @@ class Folder extends Base { | 
 | 
@@ -46,13 +46,15 @@ class Folder extends Base { | 
| 
46
 | 
      * @time 2023/2/18 17:56
 | 
46
 | 
      * @time 2023/2/18 17:56
 | 
| 
47
 | 
      */
 | 
47
 | 
      */
 | 
| 
48
 | 
     public function create(){
 | 
48
 | 
     public function create(){
 | 
| 
49
 | 
-        $email = $this->getEmail('id');
 | 
49
 | 
+        $email = $this->getEmail();
 | 
| 
50
 | 
 
 | 
50
 | 
 
 | 
| 
51
 | 
         $formData = app()->request(['pid','folder']);
 | 
51
 | 
         $formData = app()->request(['pid','folder']);
 | 
| 
52
 | 
         // 验证目录 可以输入中文英文数字
 | 
52
 | 
         // 验证目录 可以输入中文英文数字
 | 
| 
53
 | 
         if(empty($formData['folder'])){
 | 
53
 | 
         if(empty($formData['folder'])){
 | 
| 
54
 | 
             app()->e('folder_create_name_error');
 | 
54
 | 
             app()->e('folder_create_name_error');
 | 
| 
55
 | 
         }
 | 
55
 | 
         }
 | 
| 
 | 
   | 
56
 | 
+        // 加密后的文件夹
 | 
| 
 | 
   | 
57
 | 
+        $origin_folder = MailFun::folderEncoding($formData['folder']);
 | 
| 
56
 | 
         // 不为空上级
 | 
58
 | 
         // 不为空上级
 | 
| 
57
 | 
         if(!empty($formData['pid'])){
 | 
59
 | 
         if(!empty($formData['pid'])){
 | 
| 
58
 | 
             $parent = db()->first(folderSql::first(['id'=>$formData['pid']]));
 | 
60
 | 
             $parent = db()->first(folderSql::first(['id'=>$formData['pid']]));
 | 
 | 
@@ -63,6 +65,8 @@ class Folder extends Base { | 
 | 
@@ -63,6 +65,8 @@ class Folder extends Base { | 
| 
63
 | 
                 app()->e('folder_tree_max_two');
 | 
65
 | 
                 app()->e('folder_tree_max_two');
 | 
| 
64
 | 
             }
 | 
66
 | 
             }
 | 
| 
65
 | 
 
 | 
67
 | 
 
 | 
| 
 | 
   | 
68
 | 
+            // 加密后的文件夹
 | 
| 
 | 
   | 
69
 | 
+            $origin_folder = $parent['origin_folder'].'/'.$origin_folder;
 | 
| 
66
 | 
         }
 | 
70
 | 
         }
 | 
| 
67
 | 
 
 | 
71
 | 
 
 | 
| 
68
 | 
         $formData['folder'] = str_replace(["'",'"','/','\\','&','*','(',')'],'',$formData['folder']);
 | 
72
 | 
         $formData['folder'] = str_replace(["'",'"','/','\\','&','*','(',')'],'',$formData['folder']);
 | 
 | 
@@ -71,7 +75,7 @@ class Folder extends Base { | 
 | 
@@ -71,7 +75,7 @@ class Folder extends Base { | 
| 
71
 | 
         $has = db()->count(folderSql::has(
 | 
75
 | 
         $has = db()->count(folderSql::has(
 | 
| 
72
 | 
             [
 | 
76
 | 
             [
 | 
| 
73
 | 
                 'email_id'  =>  $email['id'],
 | 
77
 | 
                 'email_id'  =>  $email['id'],
 | 
| 
74
 | 
-                'origin_folder' =>  MailFun::folderEncoding($formData['folder'])
 | 
78
 | 
+                'origin_folder' =>  $origin_folder
 | 
| 
75
 | 
             ]
 | 
79
 | 
             ]
 | 
| 
76
 | 
         ));
 | 
80
 | 
         ));
 | 
| 
77
 | 
 
 | 
81
 | 
 
 | 
 | 
@@ -90,15 +94,28 @@ class Folder extends Base { | 
 | 
@@ -90,15 +94,28 @@ class Folder extends Base { | 
| 
90
 | 
             app()->e('login_error_imap');
 | 
94
 | 
             app()->e('login_error_imap');
 | 
| 
91
 | 
         }
 | 
95
 | 
         }
 | 
| 
92
 | 
 
 | 
96
 | 
 
 | 
| 
 | 
   | 
97
 | 
+        // 远程创建
 | 
| 
 | 
   | 
98
 | 
+        $ret = $mail->client->folderCreate($origin_folder);
 | 
| 
93
 | 
 
 | 
99
 | 
 
 | 
| 
 | 
   | 
100
 | 
+        if($ret[0] === false){
 | 
| 
 | 
   | 
101
 | 
+            app()->e($ret[1]);
 | 
| 
 | 
   | 
102
 | 
+        }
 | 
| 
94
 | 
 
 | 
103
 | 
 
 | 
| 
 | 
   | 
104
 | 
+        // 插入数据
 | 
| 
 | 
   | 
105
 | 
+        $id = db()->insert(folderSql::$table,[
 | 
| 
 | 
   | 
106
 | 
+            'pid'   =>  $parent['id']??0,
 | 
| 
 | 
   | 
107
 | 
+            'email_id'  =>  $email['id'],
 | 
| 
 | 
   | 
108
 | 
+            'folder'    =>  $formData['folder'],
 | 
| 
 | 
   | 
109
 | 
+            'origin_folder' =>  $origin_folder,
 | 
| 
 | 
   | 
110
 | 
+            'uuid' =>  md5($email['id'].$origin_folder),
 | 
| 
 | 
   | 
111
 | 
+        ]);
 | 
| 
95
 | 
 
 | 
112
 | 
 
 | 
| 
96
 | 
-        $folder = $mail->client->folderCreate($formData['folder']);
 | 
 | 
   | 
| 
97
 | 
-
 | 
 | 
   | 
| 
98
 | 
-
 | 
 | 
   | 
| 
99
 | 
-
 | 
 | 
   | 
| 
100
 | 
-
 | 
113
 | 
+        if(!$id){
 | 
| 
 | 
   | 
114
 | 
+            app()->e('folder_create_save_error');
 | 
| 
 | 
   | 
115
 | 
+        }
 | 
| 
101
 | 
 
 | 
116
 | 
 
 | 
| 
 | 
   | 
117
 | 
+        // 返回数据
 | 
| 
 | 
   | 
118
 | 
+        app()->_json(db()->first(folderSql::first($id)));
 | 
| 
102
 | 
 
 | 
119
 | 
 
 | 
| 
103
 | 
     }
 | 
120
 | 
     }
 | 
| 
104
 | 
 
 | 
121
 | 
 
 |