From a23b718865b6a211a69e12028c5803b784409ae0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E7=90=A6?= Date: Fri, 16 Jan 2026 09:08:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E4=BD=9C=E9=A1=B5=E9=9D=A2=E7=9A=84?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/nl_blog.sql | 124 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 2 deletions(-) diff --git a/server/nl_blog.sql b/server/nl_blog.sql index c7da043..84783a6 100644 --- a/server/nl_blog.sql +++ b/server/nl_blog.sql @@ -11,7 +11,7 @@ Target Server Version : 80407 (8.4.7) File Encoding : 65001 - Date: 15/01/2026 17:03:48 + Date: 16/01/2026 09:08:18 */ SET NAMES utf8mb4; @@ -65,6 +65,55 @@ CREATE TABLE `access_logs` ( -- Records of access_logs -- ---------------------------- +-- ---------------------------- +-- Table structure for email_suffixes +-- ---------------------------- +DROP TABLE IF EXISTS `email_suffixes`; +CREATE TABLE `email_suffixes` ( + `id` int NOT NULL AUTO_INCREMENT, + `suffix` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮箱后缀', + `is_active` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否启用', + `sort_order` int NOT NULL DEFAULT 0 COMMENT '排序', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE, + UNIQUE INDEX `uk_suffix`(`suffix` ASC) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '邮箱后缀配置表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of email_suffixes +-- ---------------------------- +INSERT INTO `email_suffixes` VALUES (1, '@gmail.com', 1, 1, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); +INSERT INTO `email_suffixes` VALUES (2, '@163.com', 1, 2, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); +INSERT INTO `email_suffixes` VALUES (3, '@qq.com', 1, 3, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); +INSERT INTO `email_suffixes` VALUES (4, '@outlook.com', 1, 4, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); +INSERT INTO `email_suffixes` VALUES (5, '@foxmail.com', 1, 5, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); +INSERT INTO `email_suffixes` VALUES (6, '@sina.com', 1, 6, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); +INSERT INTO `email_suffixes` VALUES (7, '@126.com', 1, 7, '2026-01-16 08:37:46', '2026-01-16 08:37:46'); + +-- ---------------------------- +-- Table structure for inquiries +-- ---------------------------- +DROP TABLE IF EXISTS `inquiries`; +CREATE TABLE `inquiries` ( + `id` int NOT NULL AUTO_INCREMENT, + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '姓名', + `company` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公司/组织', + `contact_method` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系方式类型(email/wechat/phone)', + `contact_value` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '联系方式值', + `budget` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '预算范围', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '需求描述', + `status` tinyint NOT NULL DEFAULT 0 COMMENT '状态: 0-未读, 1-已读, 2-已联系', + `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 2 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '合作咨询表' ROW_FORMAT = Dynamic; + +-- ---------------------------- +-- Records of inquiries +-- ---------------------------- +INSERT INTO `inquiries` VALUES (1, '李先生', '萧康云医', 'wechat', 'ngzz_9527', '1w-5w', '我需要做一个诊所小程序', 2, '2026-01-16 08:52:45', '2026-01-16 09:01:19'); + -- ---------------------------- -- Table structure for operation_logs -- ---------------------------- @@ -83,7 +132,7 @@ CREATE TABLE `operation_logs` ( PRIMARY KEY (`id`) USING BTREE, INDEX `idx_user_id`(`user_id` ASC) USING BTREE, INDEX `idx_created_at`(`created_at` ASC) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 88 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC; +) ENGINE = InnoDB AUTO_INCREMENT = 108 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '操作日志表' ROW_FORMAT = DYNAMIC; -- ---------------------------- -- Records of operation_logs @@ -175,6 +224,51 @@ INSERT INTO `operation_logs` VALUES (84, 1, 'lq', '::1', '/api/admin/roles', 'GE INSERT INTO `operation_logs` VALUES (85, 1, 'lq', '::1', '/api/admin/users', 'GET', '', 200, 46, '2026-01-15 16:19:17'); INSERT INTO `operation_logs` VALUES (86, 1, 'lq', '::1', '/api/admin/users', 'GET', '', 200, 49, '2026-01-15 16:32:17'); INSERT INTO `operation_logs` VALUES (87, 1, 'lq', '::1', '/api/admin/posts', 'GET', '', 200, 47, '2026-01-15 16:32:18'); +INSERT INTO `operation_logs` VALUES (88, 1, 'lq', '::1', '/api/admin/dashboard/stats', 'GET', '', 200, 49, '2026-01-15 21:17:31'); +INSERT INTO `operation_logs` VALUES (89, 1, 'lq', '::1', '/api/admin/dashboard/activities', 'GET', '', 200, 93, '2026-01-15 21:17:31'); +INSERT INTO `operation_logs` VALUES (90, 1, 'lq', '::1', '/api/admin/works', 'GET', '', 200, 240, '2026-01-15 21:17:46'); +INSERT INTO `operation_logs` VALUES (91, 1, 'lq', '::1', '/api/admin/about', 'GET', '', 200, 50, '2026-01-15 21:17:54'); +INSERT INTO `operation_logs` VALUES (92, 1, 'lq', '::1', '/api/admin/dashboard/stats', 'GET', '', 200, 48, '2026-01-16 08:52:54'); +INSERT INTO `operation_logs` VALUES (93, 1, 'lq', '::1', '/api/admin/dashboard/activities', 'GET', '', 200, 47, '2026-01-16 08:52:54'); +INSERT INTO `operation_logs` VALUES (94, 1, 'lq', '::1', '/api/admin/snippets', 'GET', '', 200, 46, '2026-01-16 08:53:04'); +INSERT INTO `operation_logs` VALUES (95, 1, 'lq', '::1', '/api/admin/inquiries', 'GET', '', 200, 50, '2026-01-16 09:01:14'); +INSERT INTO `operation_logs` VALUES (96, 1, 'lq', '::1', '/api/admin/inquiries/1/status', 'PUT', '{\"status\":1}', 200, 49, '2026-01-16 09:01:16'); +INSERT INTO `operation_logs` VALUES (97, 1, 'lq', '::1', '/api/admin/inquiries', 'GET', '', 200, 46, '2026-01-16 09:01:16'); +INSERT INTO `operation_logs` VALUES (98, 1, 'lq', '::1', '/api/admin/inquiries/1/status', 'PUT', '{\"status\":2}', 200, 49, '2026-01-16 09:01:20'); +INSERT INTO `operation_logs` VALUES (99, 1, 'lq', '::1', '/api/admin/inquiries', 'GET', '', 200, 45, '2026-01-16 09:01:20'); +INSERT INTO `operation_logs` VALUES (100, 1, 'lq', '::1', '/api/admin/inquiries', 'GET', '', 200, 47, '2026-01-16 09:02:57'); +INSERT INTO `operation_logs` VALUES (101, 1, 'lq', '::1', '/api/admin/dashboard/stats', 'GET', '', 200, 48, '2026-01-16 09:03:49'); +INSERT INTO `operation_logs` VALUES (102, 1, 'lq', '::1', '/api/admin/dashboard/activities', 'GET', '', 200, 49, '2026-01-16 09:03:49'); +INSERT INTO `operation_logs` VALUES (103, 1, 'lq', '::1', '/api/admin/settings', 'GET', '', 200, 47, '2026-01-16 09:03:55'); +INSERT INTO `operation_logs` VALUES (104, 1, 'lq', '::1', '/api/admin/operation-logs', 'GET', '', 200, 43, '2026-01-16 09:03:57'); +INSERT INTO `operation_logs` VALUES (105, 1, 'lq', '::1', '/api/admin/operation-logs', 'GET', '', 200, 47, '2026-01-16 09:05:16'); +INSERT INTO `operation_logs` VALUES (106, 1, 'lq', '::1', '/api/admin/dashboard/stats', 'GET', '', 200, 49, '2026-01-16 09:05:22'); +INSERT INTO `operation_logs` VALUES (107, 1, 'lq', '::1', '/api/admin/dashboard/activities', 'GET', '', 200, 49, '2026-01-16 09:05:22'); + +-- ---------------------------- +-- Table structure for partners +-- ---------------------------- +DROP TABLE IF EXISTS `partners`; +CREATE TABLE `partners` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '合作伙伴名称', + `logo` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '合作伙伴Logo URL', + `description` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL COMMENT '合作伙伴介绍', + `url` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '合作伙伴官网链接', + `sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序权重', + `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '合作伙伴表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of partners +-- ---------------------------- +INSERT INTO `partners` VALUES (1, 'Vercel', 'https://upload.wikimedia.org/wikipedia/commons/5/5e/Vercel_logo_black.svg', '前端部署平台', 'https://vercel.com', 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `partners` VALUES (2, 'Supabase', 'https://seeklogo.com/images/S/supabase-logo-DCC676FFE2-seeklogo.com.png', '开源 Firebase 替代方案', 'https://supabase.com', 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `partners` VALUES (3, 'Stripe', 'https://upload.wikimedia.org/wikipedia/commons/b/ba/Stripe_Logo%2C_revised_2016.svg', '在线支付基础设施', 'https://stripe.com', 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `partners` VALUES (4, 'Algolia', 'https://upload.wikimedia.org/wikipedia/commons/6/69/Algolia-logo.svg', '搜索即服务 API', 'https://algolia.com', 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `partners` VALUES (5, 'Prisma', 'https://seeklogo.com/images/P/prisma-logo-3805665B69-seeklogo.com.png', '下一代 ORM', 'https://prisma.io', 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); -- ---------------------------- -- Table structure for permissions @@ -428,6 +522,32 @@ CREATE TABLE `tags` ( -- Records of tags -- ---------------------------- +-- ---------------------------- +-- Table structure for testimonials +-- ---------------------------- +DROP TABLE IF EXISTS `testimonials`; +CREATE TABLE `testimonials` ( + `id` int UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '客户姓名', + `role` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '客户职位', + `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '评价内容', + `avatar` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '客户头像URL', + `rating` tinyint UNSIGNED NULL DEFAULT 5 COMMENT '评分(1-5)', + `sort_order` int UNSIGNED NULL DEFAULT 0 COMMENT '排序权重', + `created_at` datetime NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `updated_at` datetime NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '客户评价表' ROW_FORMAT = DYNAMIC; + +-- ---------------------------- +-- Records of testimonials +-- ---------------------------- +INSERT INTO `testimonials` VALUES (1, 'Alex Chen', 'Product Owner @ TechFlow', '年糕不仅技术过硬,对设计细节的把控更是令人惊叹。', 'https://api.dicebear.com/7.x/avataaars/svg?seed=Alex', 5, 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `testimonials` VALUES (2, 'Sarah Wu', 'Design Director @ ArtSpace', '很少见到能把代码写得像诗一样的工程师,合作非常愉快!', 'https://api.dicebear.com/7.x/avataaars/svg?seed=Sarah', 5, 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `testimonials` VALUES (3, 'Mike Zhang', 'CTO @ FutureWave', '交付质量远超预期,特别是在性能优化方面做得非常出色。', 'https://api.dicebear.com/7.x/avataaars/svg?seed=Mike', 5, 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `testimonials` VALUES (4, 'Jessica Li', 'Founder @ ZenMode', '从交互动效到整体架构,都体现了极高的专业水准。', 'https://api.dicebear.com/7.x/avataaars/svg?seed=Jessica', 5, 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); +INSERT INTO `testimonials` VALUES (5, 'David Wang', 'Tech Lead @ Innovate', '代码结构清晰,注释完善,后续维护非常轻松。', 'https://api.dicebear.com/7.x/avataaars/svg?seed=David', 5, 0, '2026-01-15 21:16:33', '2026-01-15 21:16:33'); + -- ---------------------------- -- Table structure for users -- ----------------------------