Quellcode durchsuchen

📋 docs: 修正史诗010 - GenericCrudService使用方式

修正史诗010文档中的技术实现细节:
- GenericCrudService是抽象类,需要继承而非直接实例化
- 更新代码示例为正确的继承模式(参考文件模块实现)
- 保持共享CRUD包的简化优势

🤖 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 vor 1 Monat
Ursprung
Commit
35c896529c
1 geänderte Dateien mit 21 neuen und 12 gelöschten Zeilen
  1. 21 12
      docs/epic-010-system-config-multi-tenant.md

+ 21 - 12
docs/epic-010-system-config-multi-tenant.md

@@ -118,18 +118,27 @@ export class SystemConfig {
 
 ### 共享CRUD集成(核心简化)
 ```typescript
-// 服务实现 - 复用GenericCrudService
-const systemConfigService = new GenericCrudService(dataSource, SystemConfig, {
-  tenantOptions: {
-    enabled: true,
-    tenantIdField: 'tenantId',
-    autoExtractFromContext: true
-  },
-  userTracking: {
-    createdByField: 'createdBy',
-    updatedByField: 'updatedBy'
+// 服务实现 - 继承GenericCrudService(参考文件模块模式)
+export class SystemConfigService extends GenericCrudService<SystemConfig> {
+  constructor(dataSource: DataSource) {
+    super(dataSource, SystemConfig, {
+      tenantOptions: {
+        enabled: true,
+        tenantIdField: 'tenantId',
+        autoExtractFromContext: true
+      },
+      userTracking: {
+        createdByField: 'createdBy',
+        updatedByField: 'updatedBy'
+      }
+    });
   }
-});
+
+  // 可添加自定义方法,如Redis缓存相关方法
+  async getConfigByKey(tenantId: number, key: string): Promise<string | null> {
+    // Redis缓存逻辑
+  }
+}
 
 // 路由生成 - 一行代码获得完整CRUD API
 const systemConfigRoutes = createCrudRoutes({
@@ -184,7 +193,7 @@ const systemConfigRoutes = createCrudRoutes({
 "请为这个棕地史诗开发详细的用户故事。关键考虑因素:
 
 - 这是对运行TypeORM + PostgreSQL + Hono + Redis + @d8d/shared-crud的现有系统的增强
-- **核心简化**: 直接复用共享CRUD包,自动获得多租户隔离、用户跟踪、完整CRUD API
+- **核心简化**: 继承GenericCrudService抽象类,自动获得多租户隔离、用户跟踪、完整CRUD API
 - 集成点:共享CRUD包的GenericCrudService和createCrudRoutes、认证模块的MiniAuthService、支付模块的PaymentService、Redis缓存
 - 要遵循的现有模式:共享CRUD包的通用模式、文件模块的CRUD模式、多租户实体模式
 - 关键兼容性要求:现有API保持不变,数据库schema向后兼容