From d67e19df007060b237b4c7b0dc0a5bc81ce13e20 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Thu, 13 Mar 2025 11:54:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E7=95=99=E8=A8=80?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=EF=BC=88=E8=81=94=E7=B3=BB=E6=88=91=E4=BB=AC?= =?UTF-8?q?=EF=BC=89=E5=88=86=E9=A1=B5/=E5=AF=BC=E5=87=BA=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/admin/controller/v1/LeaveMessage.php | 75 +++++++++++++++++++ app/admin/model/v1/LeaveMessageModel.php | 32 ++++++++ app/admin/route/v1.php | 9 +++ app/common/model/LeaveMessageBaseModel.php | 29 +++++++ ...> 20241224025811_create_leave_message.php} | 4 +- 5 files changed, 147 insertions(+), 2 deletions(-) create mode 100644 app/admin/controller/v1/LeaveMessage.php create mode 100644 app/admin/model/v1/LeaveMessageModel.php create mode 100644 app/common/model/LeaveMessageBaseModel.php rename database/migrations/{20241224025811_create_contact_us.php => 20241224025811_create_leave_message.php} (90%) diff --git a/app/admin/controller/v1/LeaveMessage.php b/app/admin/controller/v1/LeaveMessage.php new file mode 100644 index 00000000..f8a9cabd --- /dev/null +++ b/app/admin/controller/v1/LeaveMessage.php @@ -0,0 +1,75 @@ +param([ + 'created_at', + 'page/d' => 1, + 'size/d' => 10 + ]); + + $msgs = LeaveMessageModel::withoutField([ + 'language_id', + 'user_agent' + ]) + ->withSearch(['created_at'], [ + 'created_at' => !empty($param['created_at']) ? explode(',', $param['created_at']) : null + ]) + ->language(request()->lang_id) + ->order(['id' => 'desc']) + ->paginate([ + 'list_rows' => $param['size'], + 'page' => $param['page'] + ]); + + return success('获取成功', $msgs); + } + + // 导出 + public function export() + { + $schema = [ + 'id' => 'ID', + 'name' => '姓名', + 'email' => '邮箱', + 'ip' => 'IP', + 'content' => '留言内容', + 'created_at' => '提交时间' + ]; + + // 获取留言导出数据 + $msgs = $this->getLeaveMessageExportData(); + + // 导出 + return xlsx_writer($msgs, $schema); + } + // 获取留言导出数据 + private function getLeaveMessageExportData() + { + $param = request()->param([ + 'created_at' + ]); + + return LeaveMessageModel::withoutField([ + 'language_id', + 'user_agent' + ]) + ->withSearch(['created_at'], [ + 'created_at' => !empty($param['created_at']) ? explode(',', $param['created_at']) : null + ]) + ->language(request()->lang_id) + ->order(['id' => 'desc']) + ->select(); + } +} diff --git a/app/admin/model/v1/LeaveMessageModel.php b/app/admin/model/v1/LeaveMessageModel.php new file mode 100644 index 00000000..31a1d064 --- /dev/null +++ b/app/admin/model/v1/LeaveMessageModel.php @@ -0,0 +1,32 @@ +where('language_id', '=', $value); + } + + // 按添加时间搜索 + public function searchCreatedAtAttr($query, $value, $data) + { + if (is_null($value)) return; + if (is_array($value)) { + if (count($value) > 1) { + $query->whereBetweenTime('created_at', $value[0], $value[1]); + } else { + $query->whereTime('created_at', '>=', $value[0]); + } + } + } +} diff --git a/app/admin/route/v1.php b/app/admin/route/v1.php index 2f89c0f0..e249bcac 100644 --- a/app/admin/route/v1.php +++ b/app/admin/route/v1.php @@ -519,6 +519,15 @@ Route::group('v1', function () { Route::delete('delete/:id', 'Faq/delete'); }); + // 反馈管理 - 留言记录(联系我们) + Route::group('leavemsg', function() { + // 留言记录(联系我们)分页 + Route::get('index', 'LeaveMessage/index'); + + // 留言记录(联系我们)导出 + Route::get('export', 'LeaveMessage/export'); + }); + // 配置项列表 Route::group('config', function() { // 配置分组 diff --git a/app/common/model/LeaveMessageBaseModel.php b/app/common/model/LeaveMessageBaseModel.php new file mode 100644 index 00000000..ffe650dc --- /dev/null +++ b/app/common/model/LeaveMessageBaseModel.php @@ -0,0 +1,29 @@ + 'int', + 'language_id' => 'int', + 'name' => 'string', + 'email' => 'string', + 'content' => 'string', + 'ip' => 'string', + 'user_agent' => 'string', + 'created_at' => 'datetime', + ]; +} diff --git a/database/migrations/20241224025811_create_contact_us.php b/database/migrations/20241224025811_create_leave_message.php similarity index 90% rename from database/migrations/20241224025811_create_contact_us.php rename to database/migrations/20241224025811_create_leave_message.php index e012df32..afd7e43e 100644 --- a/database/migrations/20241224025811_create_contact_us.php +++ b/database/migrations/20241224025811_create_leave_message.php @@ -2,7 +2,7 @@ use think\migration\Migrator; -class CreateContactUs extends Migrator +class CreateLeaveMessage extends Migrator { /** * Change Method. @@ -27,7 +27,7 @@ class CreateContactUs extends Migrator */ public function change() { - $table = $this->table('contact_us', ['engine' => 'MyISAM', 'comment' => '联系我们表']); + $table = $this->table('leave_message', ['engine' => 'MyISAM', 'comment' => '留言记录(联系我们)表']); $table->addColumn('language_id', 'integer', ['signed' => false, 'null' => false, 'comment' => '语言ID']) ->addColumn('name', 'string', ['limit' => 64, 'null' => false, 'comment' => '姓名']) ->addColumn('email', 'string', ['limit' => 128, 'null' => false, 'comment' => '邮箱'])