正在显示
4 个修改的文件
包含
83 行增加
和
11 行删除
@@ -7,6 +7,7 @@ use Lib\Err; | @@ -7,6 +7,7 @@ use Lib\Err; | ||
7 | use Lib\Mail\Mail; | 7 | use Lib\Mail\Mail; |
8 | use Lib\Mail\MailFun; | 8 | use Lib\Mail\MailFun; |
9 | use Model\folderSql; | 9 | use Model\folderSql; |
10 | +use Model\listsSql; | ||
10 | 11 | ||
11 | /** | 12 | /** |
12 | * 文件夹管理 | 13 | * 文件夹管理 |
@@ -158,7 +159,54 @@ class Folder extends Base { | @@ -158,7 +159,54 @@ class Folder extends Base { | ||
158 | * @time 2023/3/3 17:38 | 159 | * @time 2023/3/3 17:38 |
159 | */ | 160 | */ |
160 | public function delete(){ | 161 | public function delete(){ |
162 | + $email = $this->getEmail(); | ||
163 | + | ||
164 | + $folder_id = app()->request('folder_id'); | ||
165 | + | ||
166 | + $folder = db()->first(folderSql::first(dbWhere(['id'=>$folder_id,'email_id'=>$email['id']]))); | ||
167 | + | ||
168 | + if(!$folder){ | ||
169 | + app()->e('folder_not_fount'); | ||
170 | + } | ||
171 | + // 是否存在下级 | ||
172 | + if(db()->count(folderSql::first(dbWhere(['pid'=>$folder['pid'],'email_id'=>$email['id']])))){ | ||
173 | + app()->e('folder_delete_exist_child'); | ||
174 | + } | ||
175 | + | ||
176 | + // 是否存在邮件 | ||
177 | + if(db()->count(listsSql::first(dbWhere(['folder_id'=>$folder['id'],'email_id'=>$email['id']])))){ | ||
178 | + app()->e('folder_delete_exist_mail'); | ||
179 | + } | ||
161 | 180 | ||
181 | + // 远程创建 | ||
182 | + $mail = new Mail( | ||
183 | + $email['email'], | ||
184 | + base64_decode($email['password']), | ||
185 | + $email['imap'] | ||
186 | + ); | ||
187 | + | ||
188 | + if(!$mail->login()){ | ||
189 | + app()->e('login_error_imap'); | ||
190 | + } | ||
191 | + | ||
192 | + // 远程创建 | ||
193 | + $ret = $mail->client->folderDelete($folder['origin_folder']); | ||
194 | + | ||
195 | + if($ret[0] === false){ | ||
196 | + app()->e($ret[1]); | ||
197 | + } | ||
198 | + | ||
199 | + // 插入数据 | ||
200 | + $row = db()->delete(folderSql::$table,[ | ||
201 | + 'id' => $folder['id'] | ||
202 | + ]); | ||
203 | + | ||
204 | + if(!$row){ | ||
205 | + app()->e('folder_delete_error'); | ||
206 | + } | ||
207 | + | ||
208 | + // 返回数据 | ||
209 | + app()->_json($folder); | ||
162 | } | 210 | } |
163 | 211 | ||
164 | 212 |
@@ -188,17 +188,17 @@ class Home extends Base { | @@ -188,17 +188,17 @@ class Home extends Base { | ||
188 | // 开始远程 | 188 | // 开始远程 |
189 | $mailInstance = new Mail($emails[$eid]['email'],base64_decode($emails[$eid]['password']),$emails[$eid]['imap']); | 189 | $mailInstance = new Mail($emails[$eid]['email'],base64_decode($emails[$eid]['password']),$emails[$eid]['imap']); |
190 | 190 | ||
191 | - $mailInstance->login(); | ||
192 | - | ||
193 | - $mailInstance->seen(array_column($uid,'uid'),$folder['origin_folder'],$seen); | ||
194 | - | ||
195 | - $mailInstance = null; | ||
196 | - // 更新数据 | ||
197 | - db()->update(listsSql::$table,[ | ||
198 | - 'seen' => $seen | ||
199 | - ],dbWhere([ | ||
200 | - 'id' => array_column($uid,'id') | ||
201 | - ])); | 191 | + if($mailInstance->login()){ |
192 | + $mailInstance->seen(array_column($uid,'uid'),$folder['origin_folder'],$seen); | ||
193 | + | ||
194 | + $mailInstance = null; | ||
195 | + // 更新数据 | ||
196 | + db()->update(listsSql::$table,[ | ||
197 | + 'seen' => $seen | ||
198 | + ],dbWhere([ | ||
199 | + 'id' => array_column($uid,'id') | ||
200 | + ])); | ||
201 | + } | ||
202 | 202 | ||
203 | } | 203 | } |
204 | $folder = null; | 204 | $folder = null; |
@@ -28,6 +28,10 @@ return [ | @@ -28,6 +28,10 @@ return [ | ||
28 | 'folder_tree_max_two' => '文件夹最多2级', | 28 | 'folder_tree_max_two' => '文件夹最多2级', |
29 | 'folder_is_exist' => '文件夹已存在', | 29 | 'folder_is_exist' => '文件夹已存在', |
30 | 'folder_create_save_error' => '文件夹新增失败', | 30 | 'folder_create_save_error' => '文件夹新增失败', |
31 | + 'folder_not_fount' => '文件夹不存在', | ||
32 | + 'folder_delete_exist_child' => '无法删除带有子文件夹的目录', | ||
33 | + 'folder_delete_exist_mail' => '无法删除存在邮件的目录', | ||
34 | + 'folder_delete_error' => '文件夹删除失败', | ||
31 | 35 | ||
32 | 'sync_request_param_error' => '同步请求参数异常', | 36 | 'sync_request_param_error' => '同步请求参数异常', |
33 | 37 |
@@ -160,6 +160,26 @@ class DbPool { | @@ -160,6 +160,26 @@ class DbPool { | ||
160 | return 0; | 160 | return 0; |
161 | } | 161 | } |
162 | 162 | ||
163 | + /** | ||
164 | + * 删除语句 | ||
165 | + * @param string $table | ||
166 | + * @param array $where | ||
167 | + * @return int | ||
168 | + * @author:dc | ||
169 | + * @time 2023/3/17 18:04 | ||
170 | + */ | ||
171 | + public function delete(string $table, array $where){ | ||
172 | + $sql = "delete from `{$table}` where ".dbUpdate($where); | ||
173 | + | ||
174 | + $query = $this->query($sql); | ||
175 | + | ||
176 | + if($query){ | ||
177 | + return $query->rowCount(); | ||
178 | + } | ||
179 | + | ||
180 | + return 0; | ||
181 | + } | ||
182 | + | ||
163 | 183 | ||
164 | /** | 184 | /** |
165 | * 统计数量 | 185 | * 统计数量 |
-
请 注册 或 登录 后发表评论