diff --git a/app/enterprise/model/Message.php b/app/enterprise/model/Message.php index 7b6961e..9bcb2bb 100644 --- a/app/enterprise/model/Message.php +++ b/app/enterprise/model/Message.php @@ -397,4 +397,39 @@ class Message extends BaseModel $msgInfo['toContactId'] = (int)$from_user; return $msgInfo; } + + // 一键清除数据 + public function oneClickDelMsg($type) + { + switch ($type) { + case "user": + self::delMsg(); + break; + case "group": + self::delMsg(1); + break; + case "all": + self::delMsg(); + self::delMsg(1); + break; + default: + return false; + } + return true; + } + + // 删除消息 + public static function delMsg($is_group = 0) + { + $where = [ + ['is_group', '=', $is_group], + ['file_id', '>', 0] + ]; + $model = new self(); + $file_id_arr = $model->where($where)->column('file_id'); + foreach ($file_id_arr as $file_id) { + File::syncDelFile($file_id); + } + $model->where('is_group',0)->force()->delete(); + } } \ No newline at end of file diff --git a/app/manage/controller/Config.php b/app/manage/controller/Config.php index 9bd1a2f..727a825 100644 --- a/app/manage/controller/Config.php +++ b/app/manage/controller/Config.php @@ -114,5 +114,20 @@ class Config extends BaseController $mail->sendEmail([$email],lang('email.testTitle'),lang('email.testContent')); return success(lang('system.sendOk')); - } + } + + // 一键删除 + public function oneClickMsg() + { + $type=$this->request->param('type'); + $value = Conf::where(['name'=>'chatInfo'])->value('value'); + $messageOneClickDel = $value['messageOneClickDel'] ?? 0; + if ($messageOneClickDel == 1) { + $res = \app\enterprise\model\Message::oneClickDelMsg($type); + if (!$res) { + return success(lang('system.fail')); + } + } + return success(lang('system.success')); + } } \ No newline at end of file diff --git a/public/sql/database.sql b/public/sql/database.sql index 1dfb19d..1b2978b 100644 --- a/public/sql/database.sql +++ b/public/sql/database.sql @@ -26,7 +26,7 @@ CREATE TABLE `yu_config` ( INSERT INTO `yu_config` (`id`, `name`, `value`, `create_user`, `update_time`, `create_time`, `remark`, `status`) VALUES (1, 'sysInfo', '{\"logo\": \"\", \"name\": \"Raingad-IM\", \"state\": \"1\", \"regauth\": \"0\", \"regtype\": \"2\", \"runMode\": \"1\", \"ipregion\": \"1\", \"closeTips\": \"系统升级维护中,请稍候再试!\", \"description\": \"一款基于vue2.0的即时通信系统\", \"registerInterval\": \"600\"}', 0, 1688462862, 1688462862, NULL, 1), -(2, 'chatInfo', '{\"stun\": \"\", \"online\": \"1\", \"webrtc\": \"0\", \"dbDelMsg\": \"1\", \"msgClear\": \"1\", \"redoTime\": \"120\", \"stunPass\": \"\", \"stunUser\": \"\", \"groupChat\": \"1\", \"simpleChat\": \"1\", \"autoAddUser\": {\"status\": \"0\", \"welcome\": \"你好啊,欢迎来到Raingad-IM\", \"user_ids\": [\"1\", \"2\", \"3\"], \"user_items\": [\"1\", \"2\", \"3\"]}, \"msgClearDay\": \"30\", \"autoAddGroup\": {\"name\": \"春游交流\", \"status\": \"0\", \"userMax\": \"100\", \"owner_uid\": \"1\", \"owner_info\": [{\"id\": \"1\", \"avatar\": \"", \"user_id\": \"1\", \"realname\": \"管理员\"}]}, \"groupUserMax\": \"0\", \"sendInterval\": \"0\", \"userMsgClear\":\"0\", \"userMsgClearDay\":[]}', 0, 1688463300, 1688463300, NULL, 1), +(2, 'chatInfo', '{\"stun\": \"\", \"online\": \"1\", \"webrtc\": \"0\", \"dbDelMsg\": \"1\", \"msgClear\": \"1\", \"redoTime\": \"120\", \"stunPass\": \"\", \"stunUser\": \"\", \"groupChat\": \"1\", \"simpleChat\": \"1\", \"autoAddUser\": {\"status\": \"0\", \"welcome\": \"你好啊,欢迎来到Raingad-IM\", \"user_ids\": [\"1\", \"2\", \"3\"], \"user_items\": [\"1\", \"2\", \"3\"]}, \"msgClearDay\": \"30\", \"autoAddGroup\": {\"name\": \"春游交流\", \"status\": \"0\", \"userMax\": \"100\", \"owner_uid\": \"1\", \"owner_info\": [{\"id\": \"1\", \"avatar\": \"", \"user_id\": \"1\", \"realname\": \"管理员\"}]}, \"groupUserMax\": \"0\", \"sendInterval\": \"0\", \"userMsgClear\":\"0\", \"userMsgClearDay\":[], \"messageOneClickDel\":\"0\"}', 0, 1688463300, 1688463300, NULL, 1), (3, 'smtp', '{\"addr\": \"xiekunyu@sss.com\", \"host\": \"smtp.exmail.qq.com\", \"pass\": \"ssss\", \"port\": \"465\", \"sign\": \"Raingad-IM\", \"security\": \"ssl\"}', 0, 1688464072, 1688464072, NULL, 1), (4, 'fileUpload', '{\"disk\": \"local\", \"size\": \"50\", \"qiniu\": {\"url\": \"\", \"bucket\": \"\", \"accessKey\": \"\", \"secretKey\": \"\"}, \"aliyun\": {\"url\": \"\", \"bucket\": \"\", \"accessId\": \"\", \"endpoint\": \"\", \"accessSecret\": \"\"}, \"qcloud\": {\"cdn\": \"\", \"appId\": \"\", \"bucket\": \"\", \"region\": \"\", \"secretId\": \"\", \"secretKey\": \"\"}, \"fileExt\": [\"jpg\", \"jpeg\", \"ico\", \"webp\", \"bmp\", \"gif\", \"pdf\", \"mp3\", \"wav\", \"wmv\", \"amr\", \"mp4\", \"3gp\", \"avi\", \"m2v\", \"mkv\", \"mov\", \"ppt\", \"pptx\", \"doc\", \"docx\", \"xls\", \"xlsx\", \"txt\", \"md\", \"hevc\", \"png\", \"KLKV\"], \"preview\": \"\"}', 0, 1688464130, 1688464130, NULL, 1), (5, 'compass', '{\"list\": [], \"mode\": 1, \"status\": 0}', 0, 1688464130, 1688464130, NULL, 1);