主要变更: 1. 新增 Md5Util 工具类,提供 MD5 加密和密码验证方法 2. 修改 AuthServiceImpl 直接比对 MD5 值(前端已加密,无需再次加密) 3. 修改 UserServiceImpl 使用 MD5 加密用户密码 4. 前端 Login.vue 添加 MD5 加密函数,提交前对密码进行 MD5 加密 5. 更新数据库初始化脚本,将 admin 密码改为 MD5 值 6. 更新设计文档中的密码加密说明 7. 添加 Lombok 依赖到 fund-sys 模块 8. 增加日志打印,记录密码加密过程便于调试 技术细节: - 前端流程:用户输入 → MD5 加密 → 传递给后端 - 后端流程:接收 MD5 值 → 与数据库 MD5 值直接 equals 比对 - 默认管理员密码:admin/admin123,MD5: 0192023a7bbd73250516f069df18b500
146 lines
5.9 KiB
SQL
146 lines
5.9 KiB
SQL
-- 资金服务平台 - MySQL 初始化脚本
|
||
-- 执行顺序: 01
|
||
|
||
-- 设置字符集
|
||
SET NAMES utf8mb4;
|
||
SET CHARACTER SET utf8mb4;
|
||
|
||
-- 创建 Nacos 配置数据库
|
||
CREATE DATABASE IF NOT EXISTS `nacos_config`
|
||
DEFAULT CHARACTER SET utf8mb4
|
||
COLLATE utf8mb4_unicode_ci;
|
||
|
||
-- 创建业务数据库
|
||
CREATE DATABASE IF NOT EXISTS `fund_platform`
|
||
DEFAULT CHARACTER SET utf8mb4
|
||
COLLATE utf8mb4_unicode_ci;
|
||
|
||
-- 授权(如果需要创建专用用户)
|
||
-- CREATE USER 'fund_user'@'%' IDENTIFIED BY 'fund123';
|
||
-- GRANT ALL PRIVILEGES ON fund_platform.* TO 'fund_user'@'%';
|
||
-- FLUSH PRIVILEGES;
|
||
|
||
USE `fund_platform`;
|
||
|
||
-- 用户表
|
||
CREATE TABLE IF NOT EXISTS `sys_user` (
|
||
`id` BIGINT NOT NULL COMMENT '用户ID',
|
||
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
|
||
`password` VARCHAR(100) NOT NULL COMMENT '密码',
|
||
`real_name` VARCHAR(50) COMMENT '真实姓名',
|
||
`phone` VARCHAR(20) COMMENT '手机号',
|
||
`email` VARCHAR(100) COMMENT '邮箱',
|
||
`dept_id` BIGINT COMMENT '部门ID',
|
||
`tenant_id` BIGINT NOT NULL DEFAULT 1 COMMENT '租户ID',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态:0禁用 1启用',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`deleted` TINYINT DEFAULT 0 COMMENT '是否删除',
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_username` (`username`, `tenant_id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_dept_id` (`dept_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
|
||
|
||
-- 角色表
|
||
CREATE TABLE IF NOT EXISTS `sys_role` (
|
||
`id` BIGINT NOT NULL COMMENT '角色ID',
|
||
`role_name` VARCHAR(50) NOT NULL COMMENT '角色名称',
|
||
`role_code` VARCHAR(50) NOT NULL COMMENT '角色编码',
|
||
`tenant_id` BIGINT NOT NULL DEFAULT 1 COMMENT '租户ID',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`deleted` TINYINT DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色表';
|
||
|
||
-- 菜单表
|
||
CREATE TABLE IF NOT EXISTS `sys_menu` (
|
||
`id` BIGINT NOT NULL COMMENT '菜单ID',
|
||
`parent_id` BIGINT DEFAULT 0 COMMENT '父菜单ID',
|
||
`menu_name` VARCHAR(50) NOT NULL COMMENT '菜单名称',
|
||
`menu_type` TINYINT DEFAULT 1 COMMENT '类型:1目录 2菜单 3按钮',
|
||
`path` VARCHAR(200) COMMENT '路由路径',
|
||
`component` VARCHAR(200) COMMENT '组件路径',
|
||
`perms` VARCHAR(100) COMMENT '权限标识',
|
||
`sort` INT DEFAULT 0 COMMENT '排序',
|
||
`icon` VARCHAR(100) COMMENT '图标',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`deleted` TINYINT DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_parent_id` (`parent_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='菜单表';
|
||
|
||
-- 用户角色关联表
|
||
CREATE TABLE IF NOT EXISTS `sys_user_role` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||
`user_id` BIGINT NOT NULL,
|
||
`role_id` BIGINT NOT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_user_role` (`user_id`, `role_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户角色关联表';
|
||
|
||
-- 角色菜单关联表
|
||
CREATE TABLE IF NOT EXISTS `sys_role_menu` (
|
||
`id` BIGINT NOT NULL AUTO_INCREMENT,
|
||
`role_id` BIGINT NOT NULL,
|
||
`menu_id` BIGINT NOT NULL,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_role_menu` (`role_id`, `menu_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='角色菜单关联表';
|
||
|
||
-- 部门表
|
||
CREATE TABLE IF NOT EXISTS `sys_dept` (
|
||
`id` BIGINT NOT NULL COMMENT '部门ID',
|
||
`parent_id` BIGINT DEFAULT 0 COMMENT '父部门ID',
|
||
`dept_name` VARCHAR(50) NOT NULL COMMENT '部门名称',
|
||
`tenant_id` BIGINT NOT NULL DEFAULT 1 COMMENT '租户ID',
|
||
`sort` INT DEFAULT 0,
|
||
`status` TINYINT DEFAULT 1,
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`deleted` TINYINT DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
KEY `idx_tenant_id` (`tenant_id`),
|
||
KEY `idx_parent_id` (`parent_id`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='部门表';
|
||
|
||
-- 租户表
|
||
CREATE TABLE IF NOT EXISTS `sys_tenant` (
|
||
`id` BIGINT NOT NULL COMMENT '租户ID',
|
||
`tenant_name` VARCHAR(100) NOT NULL COMMENT '租户名称',
|
||
`tenant_code` VARCHAR(50) NOT NULL COMMENT '租户编码',
|
||
`contact_name` VARCHAR(50) COMMENT '联系人',
|
||
`contact_phone` VARCHAR(20) COMMENT '联系电话',
|
||
`status` TINYINT DEFAULT 1 COMMENT '状态',
|
||
`expire_time` DATETIME COMMENT '过期时间',
|
||
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
|
||
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||
`deleted` TINYINT DEFAULT 0,
|
||
PRIMARY KEY (`id`),
|
||
UNIQUE KEY `uk_tenant_code` (`tenant_code`)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户表';
|
||
|
||
-- 插入默认租户
|
||
INSERT INTO `sys_tenant` (`id`, `tenant_name`, `tenant_code`, `contact_name`, `status`)
|
||
VALUES (1, '默认租户', 'DEFAULT', '系统管理员', 1) ON DUPLICATE KEY UPDATE `tenant_name` = VALUES(`tenant_name`);
|
||
|
||
-- 插入默认管理员用户 (密码:admin123,使用 MD5 加密)
|
||
-- MD5('admin123') = '0192023a7bbd73250516f069df18b500'
|
||
INSERT INTO `sys_user` (`id`, `username`, `password`, `real_name`, `tenant_id`, `status`)
|
||
VALUES (1, 'admin', '0192023a7bbd73250516f069df18b500', '系统管理员', 1, 1)
|
||
ON DUPLICATE KEY UPDATE `real_name` = VALUES(`real_name`);
|
||
|
||
-- 插入默认角色
|
||
INSERT INTO `sys_role` (`id`, `role_name`, `role_code`, `tenant_id`)
|
||
VALUES (1, '管理员', 'ADMIN', 1), (2, '普通用户', 'USER', 1)
|
||
ON DUPLICATE KEY UPDATE `role_name` = VALUES(`role_name`);
|
||
|
||
-- 分配管理员角色
|
||
INSERT INTO `sys_user_role` (`user_id`, `role_id`) VALUES (1, 1)
|
||
ON DUPLICATE KEY UPDATE `role_id` = VALUES(`role_id`);
|