作者 邓超

x

@@ -107,18 +107,29 @@ class Folder extends Base { @@ -107,18 +107,29 @@ class Folder extends Base {
107 107
108 // 加密后的文件夹 108 // 加密后的文件夹
109 $origin_folder = MailFun::folderEncoding($formData['folder']); 109 $origin_folder = MailFun::folderEncoding($formData['folder']);
110 - // 不为空上级  
111 - if(!empty($formData['pid'])){  
112 - $parent = db()->first(folderSql::first(['id'=>$formData['pid']]));  
113 - if(!$parent || $parent['email_id'] != $email['id']){  
114 - app()->e('folder_parent_not_fount');  
115 - }  
116 - if($parent['pid']){  
117 - app()->e('folder_tree_max_two'); 110 +
  111 + // 修改
  112 + $id = app()->request('id',0,'intval');
  113 + if($id){
  114 + $folder = db()->first(folderSql::first($id));
  115 + if(!$folder || $folder['email_id'] != $email['id']){
  116 + app()->e('folder_not_exist');
118 } 117 }
119 118
120 - // 加密后的文件夹  
121 - $origin_folder = $parent['origin_folder'].'/'.$origin_folder; 119 + }else{
  120 + // 不为空上级
  121 + if(!empty($formData['pid'])){
  122 + $parent = db()->first(folderSql::first(['id'=>$formData['pid']]));
  123 + if(!$parent || $parent['email_id'] != $email['id']){
  124 + app()->e('folder_parent_not_fount');
  125 + }
  126 + if($parent['pid']){
  127 + app()->e('folder_tree_max_two');
  128 + }
  129 +
  130 + // 加密后的文件夹
  131 + $origin_folder = $parent['origin_folder'].'/'.$origin_folder;
  132 + }
122 } 133 }
123 134
124 // 判断文件夹是否存在 135 // 判断文件夹是否存在
@@ -144,21 +155,37 @@ class Folder extends Base { @@ -144,21 +155,37 @@ class Folder extends Base {
144 app()->e('login_error_imap'); 155 app()->e('login_error_imap');
145 } 156 }
146 157
147 - // 远程创建  
148 - $ret = $mail->client->folderCreate($origin_folder); 158 + if($id){
  159 + // 远程创建
  160 + $ret = $mail->client->folderRename($folder['origin_folder'],$origin_folder);
  161 +
  162 + }else{
  163 + // 远程创建
  164 + $ret = $mail->client->folderCreate($origin_folder);
  165 + }
149 166
150 if($ret[0] === false){ 167 if($ret[0] === false){
151 app()->e($ret[1]); 168 app()->e($ret[1]);
152 } 169 }
153 170
154 - // 插入数据,就算插入失败了,也会把文件夹同步回来  
155 - $id = db()->insert(folderSql::$table,[  
156 - 'pid' => $parent['id']??0,  
157 - 'email_id' => $email['id'],  
158 - 'folder' => $formData['folder'],  
159 - 'origin_folder' => $origin_folder,  
160 - 'uuid' => md5($email['id'].$origin_folder),  
161 - ],false); 171 + if($id){
  172 + // 更新
  173 + db()->update(folderSql::$table,[
  174 + 'folder' => $formData['folder'],
  175 + 'origin_folder' => $origin_folder,
  176 + 'uuid' => md5($email['id'].$origin_folder),
  177 + ],dbWhere(['id'=>$id]),false);
  178 + }else{
  179 + // 插入数据,就算插入失败了,也会把文件夹同步回来
  180 + $id = db()->insert(folderSql::$table,[
  181 + 'pid' => $parent['id']??0,
  182 + 'email_id' => $email['id'],
  183 + 'folder' => $formData['folder'],
  184 + 'origin_folder' => $origin_folder,
  185 + 'uuid' => md5($email['id'].$origin_folder),
  186 + ],false);
  187 +
  188 + }
162 189
163 // if(!$id){ 190 // if(!$id){
164 // app()->e('folder_create_save_error'); 191 // app()->e('folder_create_save_error');