Răsfoiți Sursa

📋 docs: 创建史诗010 - 系统配置多租户模块

创建史诗010文档,描述在多租户核心包中创建系统配置模块的需求:
- 支持租户隔离的系统配置管理
- 集成Redis缓存提高访问性能
- 在管理后台提供配置管理界面
- 集成到认证和支付模块使用

🤖 Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname 1 lună în urmă
părinte
comite
eb7a763b27
1 a modificat fișierele cu 157 adăugiri și 0 ștergeri
  1. 157 0
      docs/epic-010-system-config-multi-tenant.md

+ 157 - 0
docs/epic-010-system-config-multi-tenant.md

@@ -0,0 +1,157 @@
+# 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
+
+1. **Story 1:** 创建系统配置多租户模块包 - 实现系统配置实体、Schema、服务和基础CRUD路由
+2. **Story 2:** 实现系统配置Redis缓存和租户隔离 - 添加Redis缓存支持,实现租户ID隔离的配置管理
+3. **Story 3:** 集成系统配置到认证和支付模块 - 修改小程序登录和支付功能使用系统配置
+4. **Story 4:** 创建系统配置UI包并集成到管理后台 - 开发系统配置管理界面
+
+## Compatibility Requirements
+
+- [ ] 现有API保持不变
+- [ ] 数据库schema变化向后兼容
+- [ ] UI变化遵循现有模式
+- [ ] 性能影响最小化
+
+## Risk Mitigation
+
+**Primary Risk:** 系统配置模块可能影响现有认证和支付功能的稳定性
+
+**Mitigation:** 分阶段实施,先创建独立模块,再逐步集成到现有功能
+
+**Rollback Plan:** 如果出现问题,可以回退到使用环境变量的方式,系统配置模块作为可选功能
+
+## Definition of Done
+
+- [ ] 所有故事完成且验收标准满足
+- [ ] 现有功能通过测试验证
+- [ ] 集成点正常工作
+- [ ] 文档适当更新
+- [ ] 现有功能无回归
+
+## Technical Implementation Details
+
+### 系统配置实体设计
+```typescript
+@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
+- [x] Epic可以在4个故事内完成
+- [x] 不需要架构文档
+- [x] 增强遵循现有模式
+- [x] 集成复杂度可控
+
+### Risk Assessment
+- [x] 对现有系统风险较低
+- [x] 回滚计划可行
+- [x] 测试方法覆盖现有功能
+- [x] 团队对集成点有足够了解
+
+### Completeness Check
+- [x] Epic目标清晰可实现
+- [x] 故事范围适当
+- [x] 成功标准可衡量
+- [x] 依赖项已识别
+
+---
+
+**Story Manager Handoff:**
+
+"请为这个棕地史诗开发详细的用户故事。关键考虑因素:
+
+- 这是对运行TypeORM + PostgreSQL + Hono + Redis的现有系统的增强
+- 集成点:认证模块的MiniAuthService、支付模块的PaymentService、Redis缓存
+- 要遵循的现有模式:文件模块的CRUD模式、多租户实体模式
+- 关键兼容性要求:现有API保持不变,数据库schema向后兼容
+- 每个故事必须包括验证现有功能保持完整的验证
+
+该史诗应在保持系统完整性的同时交付多租户系统配置管理功能。"