本次提交包含: 1. 11个Maven模块全部创建并编译通过 2. 4个数据库初始化脚本(14张表) 3. fund-sys服务启动验证 4. Gateway路由配置完成 5. API端到端测试通过 核心能力: - 多租户数据隔离(MyBatis-Plus) - JWT认证+BCrypt密码 - 统一返回结构 - 参数校验 - OpenFeign示例 - API网关统一入口 修复: - MyBatis-Plus与Spring Boot 3兼容性问题 - BaseEntity字段类型统一(Long) - Gateway版本兼容性
74 lines
3.6 KiB
SQL
74 lines
3.6 KiB
SQL
-- =============================================
|
|
-- 资金服务平台 - 项目管理数据库初始化脚本
|
|
-- Database: fund_proj
|
|
-- Version: 1.0
|
|
-- Created: 2026-02-17
|
|
-- =============================================
|
|
|
|
CREATE DATABASE IF NOT EXISTS fund_proj DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
USE fund_proj;
|
|
|
|
-- =============================================
|
|
-- 1. 项目表 (project)
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS project (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '项目ID',
|
|
tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
|
|
project_code VARCHAR(64) NOT NULL COMMENT '项目编码',
|
|
project_name VARCHAR(128) NOT NULL COMMENT '项目名称',
|
|
customer_id BIGINT NOT NULL COMMENT '客户ID',
|
|
project_type VARCHAR(32) NOT NULL COMMENT '项目类型',
|
|
budget_amount DECIMAL(18,2) COMMENT '预算金额',
|
|
start_date DATE COMMENT '开始日期',
|
|
end_date DATE COMMENT '结束日期',
|
|
project_manager VARCHAR(64) COMMENT '项目经理',
|
|
status TINYINT NOT NULL DEFAULT 1 COMMENT '状态: 0-已关闭, 1-进行中, 2-已完成',
|
|
remark VARCHAR(500) COMMENT '备注',
|
|
created_by BIGINT COMMENT '创建人',
|
|
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
updated_by BIGINT COMMENT '更新人',
|
|
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记: 0-未删除, 1-已删除',
|
|
PRIMARY KEY (id),
|
|
UNIQUE KEY uk_tenant_code (tenant_id, project_code, deleted),
|
|
KEY idx_tenant_id (tenant_id),
|
|
KEY idx_customer_id (customer_id),
|
|
KEY idx_project_name (project_name),
|
|
KEY idx_status (status)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目表';
|
|
|
|
-- =============================================
|
|
-- 2. 项目成员表 (project_member)
|
|
-- =============================================
|
|
CREATE TABLE IF NOT EXISTS project_member (
|
|
id BIGINT NOT NULL AUTO_INCREMENT COMMENT '成员ID',
|
|
tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '租户ID',
|
|
project_id BIGINT NOT NULL COMMENT '项目ID',
|
|
user_id BIGINT NOT NULL COMMENT '用户ID',
|
|
user_name VARCHAR(64) COMMENT '用户姓名',
|
|
role VARCHAR(32) COMMENT '角色',
|
|
join_date DATE COMMENT '加入日期',
|
|
remark VARCHAR(500) COMMENT '备注',
|
|
created_by BIGINT COMMENT '创建人',
|
|
created_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
|
updated_by BIGINT COMMENT '更新人',
|
|
updated_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
|
deleted TINYINT NOT NULL DEFAULT 0 COMMENT '删除标记: 0-未删除, 1-已删除',
|
|
PRIMARY KEY (id),
|
|
KEY idx_tenant_id (tenant_id),
|
|
KEY idx_project_id (project_id),
|
|
KEY idx_user_id (user_id)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='项目成员表';
|
|
|
|
-- =============================================
|
|
-- 初始化测试数据(租户ID=1)
|
|
-- =============================================
|
|
INSERT INTO project (id, tenant_id, project_code, project_name, customer_id, project_type, budget_amount, start_date, status, created_by, created_time)
|
|
VALUES (1, 1, 'PROJ001', '测试项目A', 1, '开发项目', 1000000.00, '2026-01-01', 1, 1, NOW())
|
|
ON DUPLICATE KEY UPDATE project_code=project_code;
|
|
|
|
INSERT INTO project_member (tenant_id, project_id, user_id, user_name, role, join_date, created_by, created_time)
|
|
VALUES (1, 1, 1, '管理员', '项目经理', '2026-01-01', 1, NOW())
|
|
ON DUPLICATE KEY UPDATE user_name=user_name;
|