Epic 010 - 系统配置多租户模块 - Brownfield Enhancement
Epic Goal
在多租户核心包中创建系统配置多租户模块,为小程序登录、支付等场景提供租户隔离的系统配置管理,支持在管理后台进行配置,并通过Redis缓存提高访问性能。
Epic Description
Existing System Context
Current relevant functionality:
- 文件模块已实现完整的CRUD路由、实体和Schema模式
- 认证模块已实现小程序登录和手机号解密功能
- 支付模块已实现微信小程序支付功能
- 多租户认证模块已实现租户隔离的用户管理
- Redis缓存已用于session_key存储
Technology stack:
- TypeORM + PostgreSQL (数据库)
- Hono + Zod OpenAPI (API框架)
- Redis (缓存)
- 微信小程序SDK (认证和支付)
Integration points:
- 认证模块的MiniAuthService (小程序登录)
- 支付模块的PaymentService (小程序支付)
- 文件模块的CRUD模式 (系统配置实体)
- Redis缓存工具 (配置缓存)
Enhancement Details
What's being added/changed:
- 创建系统配置多租户模块包,包含实体、Schema、服务和路由
- 实现基于租户ID的系统配置管理,支持key-value存储
- 添加Redis缓存支持,提高配置访问性能
- 创建系统配置UI包,集成到web admin管理后台
- 修改认证和支付模块,使用系统配置获取租户相关参数
How it integrates:
- 遵循文件模块的CRUD模式创建系统配置模块
- 使用Redis缓存系统配置,减少数据库访问
- 在认证和支付服务中通过租户ID获取配置
- 在管理后台提供系统配置管理界面
Success criteria:
- 系统配置模块支持多租户隔离
- 配置访问通过Redis缓存优化
- 认证和支付模块正确使用系统配置
- 管理后台可以配置租户系统参数
Stories
- Story 1: 创建系统配置多租户模块包 - 实现系统配置实体、Schema、服务和基础CRUD路由
- Story 2: 实现系统配置Redis缓存和租户隔离 - 添加Redis缓存支持,实现租户ID隔离的配置管理
- Story 3: 集成系统配置到认证和支付模块 - 修改小程序登录和支付功能使用系统配置
- Story 4: 创建系统配置UI包并集成到管理后台 - 开发系统配置管理界面
Compatibility Requirements
Risk Mitigation
Primary Risk: 系统配置模块可能影响现有认证和支付功能的稳定性
Mitigation: 分阶段实施,先创建独立模块,再逐步集成到现有功能
Rollback Plan: 如果出现问题,可以回退到使用环境变量的方式,系统配置模块作为可选功能
Definition of Done
Technical Implementation Details
系统配置实体设计
@Entity('system_config')
export class SystemConfig {
@PrimaryGeneratedColumn()
id!: number;
@Column()
tenantId!: number;
@Column()
configKey!: string;
@Column('text')
configValue!: string;
@Column()
description?: string;
@Column()
createdAt!: Date;
@Column()
updatedAt!: Date;
}
Redis缓存策略
- 缓存键格式:
system_config:{tenantId}:{configKey}
- 默认TTL: 1小时
- 配置更新时自动清除缓存
集成点修改
- MiniAuthService: 从系统配置获取微信小程序AppID和Secret
- PaymentService: 从系统配置获取微信支付商户配置
- PhoneDecrypt: 使用租户特定的配置参数
管理后台界面
- 基于现有UI模式创建系统配置管理页面
- 支持按租户筛选和配置管理
- 提供配置项的增删改查功能
Validation Checklist
Scope Validation
Risk Assessment
Completeness Check
Story Manager Handoff:
"请为这个棕地史诗开发详细的用户故事。关键考虑因素:
- 这是对运行TypeORM + PostgreSQL + Hono + Redis的现有系统的增强
- 集成点:认证模块的MiniAuthService、支付模块的PaymentService、Redis缓存
- 要遵循的现有模式:文件模块的CRUD模式、多租户实体模式
- 关键兼容性要求:现有API保持不变,数据库schema向后兼容
- 每个故事必须包括验证现有功能保持完整的验证
该史诗应在保持系统完整性的同时交付多租户系统配置管理功能。"