|
|
@@ -41,16 +41,18 @@
|
|
|
```
|
|
|
packages/
|
|
|
├── server/ # 核心服务器 (现有,重构后)
|
|
|
-├── crud-core/ # CRUD核心基础设施 (新增)
|
|
|
-├── database-core/ # 数据库核心 (新增)
|
|
|
-├── auth-core/ # 认证核心 (新增)
|
|
|
-├── utils-core/ # 工具核心 (新增)
|
|
|
├── shared-types/ # 共享类型定义 (新增)
|
|
|
-├── mini-auth/ # 小程序认证增强 (新增)
|
|
|
-├── mini-payment/ # 小程序支付 (新增)
|
|
|
-├── geo-areas/ # 地区模块 (新增)
|
|
|
-├── geo-locations/ # 地点模块 (新增)
|
|
|
-└── passenger-management/ # 乘客管理 (新增)
|
|
|
+├── shared-utils/ # 工具核心 (新增)
|
|
|
+├── shared-crud/ # CRUD核心基础设施 (新增)
|
|
|
+├── shared-test-util/ # 测试基础设施 (新增)
|
|
|
+├── user-module/ # 用户管理模块 (新增)
|
|
|
+├── auth-module/ # 认证管理模块 (新增)
|
|
|
+├── file-module/ # 文件管理模块 (新增)
|
|
|
+├── mini-auth/ # 小程序认证增强 (待实现)
|
|
|
+├── mini-payment/ # 小程序支付 (待实现)
|
|
|
+├── geo-areas/ # 地区模块 (待实现)
|
|
|
+├── geo-locations/ # 地点模块 (待实现)
|
|
|
+└── passenger-management/ # 乘客管理 (待实现)
|
|
|
```
|
|
|
|
|
|
**How it integrates:**
|
|
|
@@ -71,14 +73,13 @@ packages/
|
|
|
|
|
|
## Stories
|
|
|
|
|
|
-### 阶段 1: 基础设施重构
|
|
|
-1. **Story 1:** 基础设施核心包 - 从 packages/server/src 拆分迁移 shared-types、database-core、auth-core、utils-core package
|
|
|
-2. **Story 2:** CRUD基础设施包 - 从 packages/server/src 拆分迁移 crud-core package,重构server依赖关系
|
|
|
+### 阶段 1: 基础设施重构 (已完成 ✅)
|
|
|
+1. **Story 1:** 基础设施和业务模块包拆分 - 从 packages/server/src 拆分迁移 shared-types、shared-utils、shared-crud、shared-test-util、user-module、auth-module、file-module package,重构server依赖关系
|
|
|
|
|
|
### 阶段 2: 业务模块 Package 化
|
|
|
-3. **Story 3:** 地区模块 package - 从 mini-auth-demo/packages/server/src 拆分反哺省市区三级联动数据管理和API
|
|
|
-4. **Story 4:** 地理位置和乘客模块 package - 从 mini-auth-demo/packages/server/src 拆分反哺地点模块和乘客管理模块
|
|
|
-5. **Story 5:** 小程序生态模块 package - 从 mini-auth-demo/packages/server/src 拆分反哺小程序认证和支付模块
|
|
|
+2. **Story 2:** 地区模块 package - 从 mini-auth-demo/packages/server/src 拆分反哺省市区三级联动数据管理和API
|
|
|
+3. **Story 3:** 地理位置和乘客模块 package - 从 mini-auth-demo/packages/server/src 拆分反哺地点模块和乘客管理模块
|
|
|
+4. **Story 4:** 小程序生态模块 package - 从 mini-auth-demo/packages/server/src 拆分反哺小程序认证和支付模块
|
|
|
|
|
|
## Compatibility Requirements
|
|
|
|
|
|
@@ -109,13 +110,14 @@ packages/
|
|
|
|
|
|
## Definition of Done
|
|
|
|
|
|
-- [ ] 所有 stories 完成且验收标准满足
|
|
|
-- [ ] 现有功能通过回归测试验证
|
|
|
-- [ ] 集成点正常工作,API 调用无冲突
|
|
|
-- [ ] 模块文档和类型定义完整
|
|
|
-- [ ] 现有功能无回归问题
|
|
|
-- [ ] 所有 package 独立构建和测试通过
|
|
|
-- [ ] Package 依赖关系清晰,无循环依赖
|
|
|
+- [x] 阶段 1 stories 完成且验收标准满足
|
|
|
+- [x] 现有功能通过回归测试验证
|
|
|
+- [x] 集成点正常工作,API 调用无冲突
|
|
|
+- [x] 模块文档和类型定义完整
|
|
|
+- [x] 现有功能无回归问题
|
|
|
+- [x] 所有 package 独立构建和测试通过
|
|
|
+- [x] Package 依赖关系清晰,无循环依赖
|
|
|
+- [ ] 阶段 2 stories 完成且验收标准满足
|
|
|
|
|
|
## 架构设计详情
|
|
|
|
|
|
@@ -127,43 +129,51 @@ packages/
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── crud-core/ # CRUD核心基础设施 (新增)
|
|
|
+├── shared-types/ # 共享类型定义 (新增)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── database-core/ # 数据库核心 (新增)
|
|
|
+├── shared-utils/ # 工具核心 (新增)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── auth-core/ # 认证核心 (新增)
|
|
|
+├── shared-crud/ # CRUD核心基础设施 (新增)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── utils-core/ # 工具核心 (新增)
|
|
|
+├── shared-test-util/ # 测试基础设施 (新增)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── shared-types/ # 共享类型定义 (新增)
|
|
|
+├── user-module/ # 用户管理模块 (新增)
|
|
|
+│ ├── src/
|
|
|
+│ ├── package.json
|
|
|
+│ └── tsconfig.json
|
|
|
+├── auth-module/ # 认证管理模块 (新增)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── mini-auth/ # 小程序认证增强 (新增)
|
|
|
+├── file-module/ # 文件管理模块 (新增)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── mini-payment/ # 小程序支付 (新增)
|
|
|
+├── mini-auth/ # 小程序认证增强 (待实现)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── geo-areas/ # 地区模块 (新增)
|
|
|
+├── mini-payment/ # 小程序支付 (待实现)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-├── geo-locations/ # 地点模块 (新增)
|
|
|
+├── geo-areas/ # 地区模块 (待实现)
|
|
|
│ ├── src/
|
|
|
│ ├── package.json
|
|
|
│ └── tsconfig.json
|
|
|
-└── passenger-management/ # 乘客管理 (新增)
|
|
|
+├── geo-locations/ # 地点模块 (待实现)
|
|
|
+│ ├── src/
|
|
|
+│ ├── package.json
|
|
|
+│ └── tsconfig.json
|
|
|
+└── passenger-management/ # 乘客管理 (待实现)
|
|
|
├── src/
|
|
|
├── package.json
|
|
|
└── tsconfig.json
|
|
|
@@ -175,26 +185,24 @@ packages/
|
|
|
```
|
|
|
shared-types (基础类型)
|
|
|
↑
|
|
|
-database-core (数据库基础设施)
|
|
|
+shared-utils (工具基础设施)
|
|
|
↑
|
|
|
-auth-core (认证基础设施) + utils-core (工具基础设施)
|
|
|
+shared-crud (CRUD基础设施) + shared-test-util (测试基础设施)
|
|
|
↑
|
|
|
-crud-core (CRUD基础设施)
|
|
|
- ↑
|
|
|
-业务模块 (geo-areas, mini-auth等)
|
|
|
+业务模块 (user-module, auth-module, file-module)
|
|
|
↑
|
|
|
server (应用入口)
|
|
|
```
|
|
|
|
|
|
#### 基础设施 Package 依赖关系
|
|
|
|
|
|
-**crud-core package**
|
|
|
+**shared-crud package**
|
|
|
```json
|
|
|
{
|
|
|
- "name": "@d8d/crud-core",
|
|
|
+ "name": "@d8d/shared-crud",
|
|
|
"dependencies": {
|
|
|
"@d8d/shared-types": "workspace:*",
|
|
|
- "@d8d/database-core": "workspace:*",
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
"typeorm": "^0.3.20",
|
|
|
"@hono/zod-openapi": "1.0.2",
|
|
|
"zod": "^4.1.12"
|
|
|
@@ -202,36 +210,31 @@ server (应用入口)
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-**database-core package**
|
|
|
+**shared-utils package**
|
|
|
```json
|
|
|
{
|
|
|
- "name": "@d8d/database-core",
|
|
|
+ "name": "@d8d/shared-utils",
|
|
|
"dependencies": {
|
|
|
"@d8d/shared-types": "workspace:*",
|
|
|
+ "jsonwebtoken": "^9.0.2",
|
|
|
+ "bcrypt": "^6.0.0",
|
|
|
"typeorm": "^0.3.20",
|
|
|
"pg": "^8.16.3"
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-**auth-core package**
|
|
|
-```json
|
|
|
-{
|
|
|
- "name": "@d8d/auth-core",
|
|
|
- "dependencies": {
|
|
|
- "@d8d/shared-types": "workspace:*",
|
|
|
- "jsonwebtoken": "^9.0.2",
|
|
|
- "bcrypt": "^6.0.0"
|
|
|
- }
|
|
|
-}
|
|
|
-```
|
|
|
-
|
|
|
-**utils-core package**
|
|
|
+**shared-test-util package**
|
|
|
```json
|
|
|
{
|
|
|
- "name": "@d8d/utils-core",
|
|
|
+ "name": "@d8d/shared-test-util",
|
|
|
"dependencies": {
|
|
|
- "@d8d/shared-types": "workspace:*"
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
+ "typeorm": "^0.3.20",
|
|
|
+ "vitest": "^3.2.4"
|
|
|
+ },
|
|
|
+ "peerDependencies": {
|
|
|
+ "hono": "^4.8.5"
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
@@ -248,63 +251,50 @@ server (应用入口)
|
|
|
|
|
|
#### 业务模块 Package 依赖关系
|
|
|
|
|
|
-**geo-areas package**
|
|
|
+**user-module package**
|
|
|
```json
|
|
|
{
|
|
|
- "name": "@d8d/geo-areas",
|
|
|
+ "name": "@d8d/user-module",
|
|
|
"dependencies": {
|
|
|
"@d8d/shared-types": "workspace:*",
|
|
|
- "@d8d/crud-core": "workspace:*",
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
+ "@d8d/shared-crud": "workspace:*",
|
|
|
"typeorm": "^0.3.20"
|
|
|
+ },
|
|
|
+ "devDependencies": {
|
|
|
+ "@d8d/shared-test-util": "workspace:*"
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-**geo-locations package**
|
|
|
+**auth-module package**
|
|
|
```json
|
|
|
{
|
|
|
- "name": "@d8d/geo-locations",
|
|
|
+ "name": "@d8d/auth-module",
|
|
|
"dependencies": {
|
|
|
"@d8d/shared-types": "workspace:*",
|
|
|
- "@d8d/crud-core": "workspace:*",
|
|
|
- "@d8d/geo-areas": "workspace:*",
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
+ "@d8d/user-module": "workspace:*",
|
|
|
"typeorm": "^0.3.20"
|
|
|
+ },
|
|
|
+ "devDependencies": {
|
|
|
+ "@d8d/shared-test-util": "workspace:*"
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
|
|
|
-**passenger-management package**
|
|
|
+**file-module package**
|
|
|
```json
|
|
|
{
|
|
|
- "name": "@d8d/passenger-management",
|
|
|
+ "name": "@d8d/file-module",
|
|
|
"dependencies": {
|
|
|
"@d8d/shared-types": "workspace:*",
|
|
|
- "@d8d/crud-core": "workspace:*",
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
+ "@d8d/shared-crud": "workspace:*",
|
|
|
"typeorm": "^0.3.20"
|
|
|
- }
|
|
|
-}
|
|
|
-```
|
|
|
-
|
|
|
-**mini-auth package**
|
|
|
-```json
|
|
|
-{
|
|
|
- "name": "@d8d/mini-auth",
|
|
|
- "dependencies": {
|
|
|
- "@d8d/shared-types": "workspace:*",
|
|
|
- "@d8d/auth-core": "workspace:*",
|
|
|
- "jsonwebtoken": "^9.0.2",
|
|
|
- "axios": "^1.12.2"
|
|
|
- }
|
|
|
-}
|
|
|
-```
|
|
|
-
|
|
|
-**mini-payment package**
|
|
|
-```json
|
|
|
-{
|
|
|
- "name": "@d8d/mini-payment",
|
|
|
- "dependencies": {
|
|
|
- "@d8d/shared-types": "workspace:*",
|
|
|
- "wechatpay-node-v3": "^1.0.0"
|
|
|
+ },
|
|
|
+ "devDependencies": {
|
|
|
+ "@d8d/shared-test-util": "workspace:*"
|
|
|
}
|
|
|
}
|
|
|
```
|
|
|
@@ -315,16 +305,11 @@ server (应用入口)
|
|
|
"name": "@d8d/server",
|
|
|
"dependencies": {
|
|
|
"@d8d/shared-types": "workspace:*",
|
|
|
- "@d8d/crud-core": "workspace:*",
|
|
|
- "@d8d/database-core": "workspace:*",
|
|
|
- "@d8d/auth-core": "workspace:*",
|
|
|
- "@d8d/utils-core": "workspace:*",
|
|
|
- // 业务模块依赖
|
|
|
- "@d8d/geo-areas": "workspace:*",
|
|
|
- "@d8d/geo-locations": "workspace:*",
|
|
|
- "@d8d/passenger-management": "workspace:*",
|
|
|
- "@d8d/mini-auth": "workspace:*",
|
|
|
- "@d8d/mini-payment": "workspace:*",
|
|
|
+ "@d8d/shared-utils": "workspace:*",
|
|
|
+ "@d8d/shared-crud": "workspace:*",
|
|
|
+ "@d8d/user-module": "workspace:*",
|
|
|
+ "@d8d/auth-module": "workspace:*",
|
|
|
+ "@d8d/file-module": "workspace:*",
|
|
|
// 其他现有依赖保持不变
|
|
|
}
|
|
|
}
|
|
|
@@ -546,6 +531,23 @@ import {
|
|
|
|
|
|
---
|
|
|
|
|
|
+## 当前进展总结
|
|
|
+
|
|
|
+### 已完成 ✅
|
|
|
+- **阶段 1: 基础设施重构** - 全部完成
|
|
|
+ - **Story 1:** 基础设施和业务模块包拆分 - 已完成
|
|
|
+ - 创建了 4 个基础设施包:shared-types、shared-utils、shared-crud、shared-test-util
|
|
|
+ - 创建了 3 个业务模块包:user-module、auth-module、file-module
|
|
|
+ - 成功重构 server package 依赖关系
|
|
|
+ - 所有包通过单元测试和集成测试验证
|
|
|
+ - 保持向后兼容性,现有功能无回归
|
|
|
+
|
|
|
+### 待完成 🔄
|
|
|
+- **阶段 2: 业务模块 Package 化** - 待实现
|
|
|
+ - **Story 2:** 地区模块 package (geo-areas)
|
|
|
+ - **Story 3:** 地理位置和乘客模块 package (geo-locations, passenger-management)
|
|
|
+ - **Story 4:** 小程序生态模块 package (mini-auth, mini-payment)
|
|
|
+
|
|
|
## Story Manager Handoff
|
|
|
|
|
|
"请为这个brownfield epic开发详细的用户故事。关键考虑因素:
|