From ca189682e589f63bc9f8298ef61d30885797b5bb Mon Sep 17 00:00:00 2001 From: FalingCliff Date: Sun, 15 Jun 2025 16:26:54 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin-server):=20=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=BA=93=E5=88=9D=E5=A7=8B=E5=8C=96=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=B9=B6=E6=9B=B4=E6=96=B0=E8=A1=A8=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E5=8F=8A=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/resources/application.yml | 4 ++ src/main/resources/db/init.sql | 78 ++++++++++-------------------- 2 files changed, 29 insertions(+), 53 deletions(-) diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4b77a17..78b313c 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -3,6 +3,10 @@ server: # application.yml (公用配置) spring: + sql: + init: + mode: always + schema-locations: classpath:db/init.sql mvc: path match: matching-strategy: ant_path_matcher diff --git a/src/main/resources/db/init.sql b/src/main/resources/db/init.sql index f4622a5..8a7c69b 100644 --- a/src/main/resources/db/init.sql +++ b/src/main/resources/db/init.sql @@ -1,73 +1,45 @@ --- 初始化数据库脚本 --- 创建于 2023-05-24 --- 作者: FallingCliff - --- 创建数据库(如果不存在) --- CREATE DATABASE IF NOT EXISTS admin_server DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; - --- USE admin_server; - --- 删除表(如果存在) -DROP TABLE IF EXISTS `admin`; -DROP TABLE IF EXISTS `customer`; - --- 创建管理员表 -CREATE TABLE `admin` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', +-- 创建admin表 +CREATE TABLE IF NOT EXISTS `admin` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `username` varchar(50) NOT NULL COMMENT '用户名', `password` varchar(100) NOT NULL COMMENT '密码', - `real_name` varchar(50) DEFAULT NULL COMMENT '姓名', + `nickname` varchar(50) DEFAULT NULL COMMENT '昵称', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `phone` varchar(20) DEFAULT NULL COMMENT '手机号', `avatar` varchar(255) DEFAULT NULL COMMENT '头像', - `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '状态:0禁用,1正常', - `is_super` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为超级管理员:1是,0否', + `status` tinyint(1) DEFAULT 1 COMMENT '状态:0禁用,1正常', + `is_super` tinyint(1) DEFAULT 0 COMMENT '是否为超级管理员:1是,0否', `last_login_ip` varchar(50) DEFAULT NULL COMMENT '上次登录IP', `last_login_time` datetime DEFAULT NULL COMMENT '上次登录时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint(1) DEFAULT 0 COMMENT '是否删除:0未删除,1已删除', PRIMARY KEY (`id`), UNIQUE KEY `uk_username` (`username`) -) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员表'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='后台管理员表'; --- 创建客户表 -CREATE TABLE `customer` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键ID', +-- 创建customer表 +CREATE TABLE IF NOT EXISTS `customer` ( + `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `openid` varchar(100) DEFAULT NULL COMMENT '微信openid', `session_key` varchar(100) DEFAULT NULL COMMENT '微信会话密钥(可选存储)', `unionid` varchar(100) DEFAULT NULL COMMENT '微信unionid(如果获取到)', `username` varchar(50) DEFAULT NULL COMMENT '用户名', `password` varchar(100) DEFAULT NULL COMMENT '密码', `nickname` varchar(50) DEFAULT NULL COMMENT '用户昵称', - `avatar_url` varchar(255) DEFAULT NULL COMMENT '头像URL', + `avatar` varchar(255) DEFAULT NULL COMMENT '头像URL', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `phone` varchar(20) DEFAULT NULL COMMENT '手机号(后续绑定时)', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `deleted` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否删除:0未删除,1已删除', + `sex` varchar(10) DEFAULT NULL COMMENT '性别', + `points` int(11) DEFAULT 0 COMMENT '积分', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `deleted` tinyint(1) DEFAULT 0 COMMENT '是否删除:0未删除,1已删除', PRIMARY KEY (`id`), - UNIQUE KEY `uk_openid` (`openid`), - UNIQUE KEY `uk_username` (`username`) -) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4 COMMENT='客户表'; + UNIQUE KEY `uk_openid` (`openid`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='客户表'; --- 插入初始管理员数据(密码为 admin123,实际应用中应该使用加密后的密码) -INSERT INTO `admin` (`username`, `password`, `real_name`, `email`, `phone`, `avatar`, `status`, `is_super`, `create_time`, `update_time`) -VALUES ('admin', '$2a$10$X/XuYqF.zhAy5GYlWw0QHO3KzQRw.1p.9FyQ4jqEPVMbZGNi3YKLi', '超级管理员', 'admin@example.com', '13800138000', 'https://example.com/avatar/default.png', 1, 1, NOW(), NOW()); - --- 插入测试管理员数据 -INSERT INTO `admin` (`username`, `password`, `real_name`, `email`, `phone`, `avatar`, `status`, `is_super`, `create_time`, `update_time`) -VALUES ('test', '$2a$10$X/XuYqF.zhAy5GYlWw0QHO3KzQRw.1p.9FyQ4jqEPVMbZGNi3YKLi', '测试管理员', 'test@example.com', '13900139000', 'https://example.com/avatar/test.png', 1, 0, NOW(), NOW()); - --- 插入示例客户数据 -INSERT INTO `customer` (`openid`, `session_key`, `username`, `nickname`, `avatar_url`, `email`, `phone`, `create_time`, `update_time`) -VALUES ('wx_openid_123456', 'session_key_123', 'customer1', '张三', 'https://example.com/avatar/customer1.png', 'customer1@example.com', '13700137000', NOW(), NOW()); - -INSERT INTO `customer` (`openid`, `session_key`, `username`, `nickname`, `avatar_url`, `email`, `phone`, `create_time`, `update_time`) -VALUES ('wx_openid_234567', 'session_key_234', 'customer2', '李四', 'https://example.com/avatar/customer2.png', 'customer2@example.com', '13700137001', NOW(), NOW()); - -INSERT INTO `customer` (`openid`, `session_key`, `username`, `nickname`, `avatar_url`, `email`, `phone`, `create_time`, `update_time`) -VALUES ('wx_openid_345678', 'session_key_345', 'customer3', '王五', 'https://example.com/avatar/customer3.png', 'customer3@example.com', '13700137002', NOW(), NOW()); - --- 注意:实际应用中,密码应该使用BCrypt或其他安全的哈希算法进行加密存储 --- 上面示例中的密码是BCrypt加密后的字符串,原始密码为 admin123 +-- 初始化超级管理员账号 +INSERT INTO `admin` (`username`, `password`, `nickname`, `is_super`, `status`) +VALUES ('admin', 'e10adc3949ba59abbe56e057f20f883e', '超级管理员', 1, 1) +ON DUPLICATE KEY UPDATE `id` = `id`;