完成租户登录

This commit is contained in:
2025-10-29 23:07:53 +08:00
parent b9938b4c0d
commit ddf90424ba
43 changed files with 7761 additions and 474 deletions
+119
View File
@@ -0,0 +1,119 @@
# 租户表数据库创建说明
## 创建步骤
### 方法1:执行独立的 SQL 文件(推荐)
```bash
# 在 MySQL 中执行
mysql -u root -p your_database < server/database/yz_tenants.sql
```
### 方法2:手动执行 SQL
```sql
-- 1. 进入 MySQL
mysql -u root -p your_database
-- 2. 执行 SQL 脚本
SOURCE server/database/yz_tenants.sql;
```
### 方法3:在 MySQL 客户端中复制粘贴
直接打开 `server/database/yz_tenants.sql` 文件,复制所有内容,在 MySQL 客户端中执行。
## 创建的表
**yz_tenants** - 租户管理表
### 表结构说明
#### 基本信息字段
- `id` - 租户ID(主键,自增)
- `name` - 租户名称(必填)
- `code` - 租户编码(必填,唯一)
- `owner` - 负责人(必填)
- `phone` - 联系电话(可选)
- `email` - 邮箱地址(可选)
#### 状态字段
- `status` - 状态:`enabled`(启用)或 `disabled`(禁用)
- `audit_status` - 审核状态:
- `pending` - 待审核
- `approved` - 已通过
- `rejected` - 已拒绝
#### 审核信息字段
- `audit_comment` - 审核意见(可选)
- `audit_by` - 审核人(可选)
- `audit_time` - 审核时间(可选)
#### 其他字段
- `remark` - 备注(可选)
- `create_time` - 创建时间(自动)
- `update_time` - 更新时间(自动)
- `create_by` - 创建人(可选)
- `update_by` - 更新人(可选)
### 索引说明
- `uk_code` - 租户编码唯一索引
- `idx_name` - 租户名称索引
- `idx_owner` - 负责人索引
- `idx_status` - 状态索引
- `idx_audit_status` - 审核状态索引
- `idx_create_time` - 创建时间索引
## 测试数据
SQL 文件中包含 10 条测试数据,涵盖了以下场景:
1. **默认租户** - 已通过审核的系统默认租户
2. **示例租户A** - 已通过审核的演示租户
3. **示例租户B** - 待审核的租户
4. **新申请租户C** - 待审核的新申请租户
5. **已拒绝租户D** - 被拒绝的租户示例
6. **企业租户E** - 已通过审核的企业级租户
7. **测试租户F** - 已通过审核的测试环境租户
8. **禁用租户G** - 已通过审核但被禁用的租户
9. **小公司租户H** - 待审核的小型公司
10. **个人开发者I** - 已通过审核的个人开发者账户
## 验证创建
```sql
-- 查看租户表结构
DESC yz_tenants;
-- 查看所有租户数据
SELECT * FROM yz_tenants;
-- 查看特定状态的租户
SELECT * FROM yz_tenants WHERE audit_status = 'pending';
SELECT * FROM yz_tenants WHERE status = 'enabled';
-- 查看租户统计
SELECT
audit_status,
COUNT(*) as count
FROM yz_tenants
GROUP BY audit_status;
```
## 如果表已存在
如果想重新创建表(会清空现有数据):
```sql
DROP TABLE IF EXISTS yz_tenants;
```
然后再执行创建脚本。
## 与其他表的关系
租户表是系统中重要的基础表:
- `yz_files` 表中的 `tenant_id` 字段引用租户编码(VARCHAR 类型,不是外键)
- 未来可能会在 `yz_users` 表中添加 `tenant_id` 字段来关联租户
## 注意事项
1. **租户编码唯一性**`code` 字段设置了唯一索引,确保每个租户编码都是唯一的
2. **审核流程**:新创建的租户默认 `audit_status``pending`(待审核)
3. **状态管理**:租户可以同时拥有 `status``audit_status` 两个状态字段,分别控制启用状态和审核状态
4. **时间字段**`create_time``update_time` 会自动管理,无需手动设置
+38
View File
@@ -99,6 +99,44 @@ CREATE TABLE IF NOT EXISTS yz_program_info (
CONSTRAINT yz_fk_program_category FOREIGN KEY (category_id) REFERENCES yz_program_category (category_id) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='程序信息表';
-- 检查并创建租户表(如果不存在)
CREATE TABLE IF NOT EXISTS yz_tenants (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '租户ID',
-- 基本信息
name VARCHAR(100) NOT NULL COMMENT '租户名称',
code VARCHAR(50) NOT NULL COMMENT '租户编码(唯一)',
owner VARCHAR(50) NOT NULL COMMENT '负责人',
phone VARCHAR(20) DEFAULT NULL COMMENT '联系电话',
email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
-- 状态信息
status VARCHAR(20) DEFAULT 'enabled' COMMENT '状态:enabled-启用,disabled-禁用',
audit_status VARCHAR(20) DEFAULT 'pending' COMMENT '审核状态:pending-待审核,approved-已通过,rejected-已拒绝',
-- 审核信息
audit_comment TEXT DEFAULT NULL COMMENT '审核意见',
audit_by VARCHAR(50) DEFAULT NULL COMMENT '审核人',
audit_time DATETIME DEFAULT NULL COMMENT '审核时间',
-- 其他信息
remark TEXT DEFAULT NULL COMMENT '备注',
-- 时间戳
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
-- 索引
UNIQUE KEY uk_code (code),
INDEX idx_name (name),
INDEX idx_owner (owner),
INDEX idx_status (status),
INDEX idx_audit_status (audit_status),
INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';
-- 检查并创建文件表(如果不存在)
CREATE TABLE IF NOT EXISTS yz_files (
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '文件ID',
+50 -2
View File
@@ -107,7 +107,49 @@ CREATE TABLE yz_program_info (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='程序信息表';
-- =============================================
-- 4. 文件管理相关表
-- 4. 租户管理相关表
-- =============================================
-- 创建租户表
CREATE TABLE yz_tenants (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '租户ID',
-- 基本信息
name VARCHAR(100) NOT NULL COMMENT '租户名称',
code VARCHAR(50) NOT NULL COMMENT '租户编码(唯一)',
owner VARCHAR(50) NOT NULL COMMENT '负责人',
phone VARCHAR(20) DEFAULT NULL COMMENT '联系电话',
email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
-- 状态信息
status VARCHAR(20) DEFAULT 'enabled' COMMENT '状态:enabled-启用,disabled-禁用',
audit_status VARCHAR(20) DEFAULT 'pending' COMMENT '审核状态:pending-待审核,approved-已通过,rejected-已拒绝',
-- 审核信息
audit_comment TEXT DEFAULT NULL COMMENT '审核意见',
audit_by VARCHAR(50) DEFAULT NULL COMMENT '审核人',
audit_time DATETIME DEFAULT NULL COMMENT '审核时间',
-- 其他信息
remark TEXT DEFAULT NULL COMMENT '备注',
-- 时间戳
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
-- 索引
UNIQUE KEY uk_code (code),
INDEX idx_name (name),
INDEX idx_owner (owner),
INDEX idx_status (status),
INDEX idx_audit_status (audit_status),
INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';
-- =============================================
-- 5. 文件管理相关表
-- =============================================
-- 创建文件表
@@ -146,9 +188,15 @@ CREATE TABLE yz_files (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表';
-- =============================================
-- 5. 插入初始数据
-- 6. 插入初始数据
-- =============================================
-- 插入默认租户数据
INSERT INTO yz_tenants (name, code, owner, phone, email, status, audit_status, audit_comment, audit_by, audit_time, remark, create_by) VALUES
('默认租户', 'default', 'admin', '13800138000', 'admin@yunzer.com', 'enabled', 'approved', '系统默认租户,自动通过审核', 'system', NOW(), '系统默认租户,用于初始化数据', 'system'),
('示例租户A', 'demo-a', '张三', '13900139000', 'zhangsan@demo.com', 'enabled', 'approved', '资料完整,审核通过', 'admin', DATE_SUB(NOW(), INTERVAL 30 DAY), '演示租户A,用于展示功能', 'admin'),
('示例租户B', 'demo-b', '李四', '13700137000', 'lisi@demo.com', 'enabled', 'pending', NULL, NULL, NULL, '待审核租户,资料已提交', 'admin');
-- 插入默认管理员用户
-- 注意:实际使用时需要生成真实的加密密码和盐值
INSERT INTO yz_users (username, password, salt, email, nickname, role, status, create_by) VALUES
+111
View File
@@ -0,0 +1,111 @@
-- 创建租户表
-- 创建时间: 2025
-- 描述: 云泽系统租户管理表
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- 检查并创建租户表(如果不存在)
CREATE TABLE IF NOT EXISTS yz_tenants (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '租户ID',
-- 基本信息
name VARCHAR(100) NOT NULL COMMENT '租户名称',
code VARCHAR(50) NOT NULL COMMENT '租户编码(唯一)',
owner VARCHAR(50) NOT NULL COMMENT '负责人',
phone VARCHAR(20) DEFAULT NULL COMMENT '联系电话',
email VARCHAR(100) DEFAULT NULL COMMENT '邮箱地址',
-- 状态信息
status VARCHAR(20) DEFAULT 'enabled' COMMENT '状态:enabled-启用,disabled-禁用',
audit_status VARCHAR(20) DEFAULT 'pending' COMMENT '审核状态:pending-待审核,approved-已通过,rejected-已拒绝',
-- 审核信息
audit_comment TEXT DEFAULT NULL COMMENT '审核意见',
audit_by VARCHAR(50) DEFAULT NULL COMMENT '审核人',
audit_time DATETIME DEFAULT NULL COMMENT '审核时间',
-- 其他信息
remark TEXT DEFAULT NULL COMMENT '备注',
-- 时间戳
create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
create_by VARCHAR(50) DEFAULT NULL COMMENT '创建人',
update_by VARCHAR(50) DEFAULT NULL COMMENT '更新人',
-- 索引
UNIQUE KEY uk_code (code),
INDEX idx_name (name),
INDEX idx_owner (owner),
INDEX idx_status (status),
INDEX idx_audit_status (audit_status),
INDEX idx_create_time (create_time)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='租户表';
SET FOREIGN_KEY_CHECKS = 1;
-- =============================================
-- 插入测试数据
-- =============================================
-- 清空现有测试数据(可选,注释掉以保留现有数据)
-- DELETE FROM yz_tenants WHERE id > 0;
-- 插入测试租户数据
INSERT INTO yz_tenants (
name,
code,
owner,
phone,
email,
status,
audit_status,
audit_comment,
audit_by,
audit_time,
remark,
create_by
) VALUES
-- 默认租户(已通过审核)
('默认租户', 'default', 'admin', '13800138000', 'admin@yunzer.com', 'enabled', 'approved', '系统默认租户,自动通过审核', 'system', NOW(), '系统默认租户,用于初始化数据', 'system'),
-- 示例租户A(已通过审核)
('示例租户A', 'demo-a', '张三', '13900139000', 'zhangsan@demo.com', 'enabled', 'approved', '资料完整,审核通过', 'admin', DATE_SUB(NOW(), INTERVAL 30 DAY), '演示租户A,用于展示功能', 'admin'),
-- 示例租户B(待审核)
('示例租户B', 'demo-b', '李四', '13700137000', 'lisi@demo.com', 'enabled', 'pending', NULL, NULL, NULL, '待审核租户,资料已提交', 'admin'),
-- 新申请租户C(待审核)
('新申请租户C', 'new-tenant-c', '王五', '13600136000', 'wangwu@new.com', 'enabled', 'pending', NULL, NULL, NULL, '新申请的租户,等待审核', 'admin'),
-- 已拒绝租户D
('已拒绝租户D', 'rejected-tenant', '赵六', '13500135000', 'zhaoliu@reject.com', 'disabled', 'rejected', '申请资料不完整,缺少必要信息', 'admin', DATE_SUB(NOW(), INTERVAL 10 DAY), '申请被拒绝的租户示例', 'admin'),
-- 企业租户E(已通过)
('企业租户E', 'enterprise-e', '陈七', '13400134000', 'chenqi@enterprise.com', 'enabled', 'approved', '企业级用户,认证通过', 'admin', DATE_SUB(NOW(), INTERVAL 15 DAY), '大型企业客户租户', 'admin'),
-- 测试租户F(已通过)
('测试租户F', 'test-f', '刘八', '13300133000', 'liuba@test.com', 'enabled', 'approved', '测试环境使用,已通过', 'admin', DATE_SUB(NOW(), INTERVAL 5 DAY), '测试环境租户', 'admin'),
-- 禁用租户G
('禁用租户G', 'disabled-g', '周九', '13200132000', 'zhoujiu@disabled.com', 'disabled', 'approved', '已通过审核但被禁用', 'admin', DATE_SUB(NOW(), INTERVAL 20 DAY), '已禁用的租户示例', 'admin'),
-- 小公司租户H(待审核)
('小公司租户H', 'small-h', '吴十', '13100131000', 'wushi@small.com', 'enabled', 'pending', NULL, NULL, NULL, '小型公司申请,等待审核', 'admin'),
-- 个人开发者租户I(已通过)
('个人开发者I', 'developer-i', '郑十一', '13000130000', 'zhengshiyi@dev.com', 'enabled', 'approved', '个人开发者账户,审核通过', 'admin', DATE_SUB(NOW(), INTERVAL 8 DAY), '个人开发者租户', 'admin');
-- 查询验证
SELECT 'Tenants table created and test data inserted successfully!' as message;
SELECT COUNT(*) as total_tenants FROM yz_tenants;
SELECT
id,
name,
code,
status,
audit_status,
create_time
FROM yz_tenants
ORDER BY id;