|
@@ -18,6 +18,7 @@ Draft
|
|
|
5. 集成到现有的用户管理系统和地区管理系统
|
|
5. 集成到现有的用户管理系统和地区管理系统
|
|
|
6. 保持与现有认证系统的兼容性
|
|
6. 保持与现有认证系统的兼容性
|
|
|
7. 提供单元测试和集成测试,覆盖率满足要求
|
|
7. 提供单元测试和集成测试,覆盖率满足要求
|
|
|
|
|
+8. 将省市区字段从旧的 City 实体迁移到 @d8d/geo-areas 包的 AreaEntity
|
|
|
|
|
|
|
|
## Tasks / Subtasks
|
|
## Tasks / Subtasks
|
|
|
|
|
|
|
@@ -28,15 +29,20 @@ Draft
|
|
|
- [ ] 配置 vitest.config.ts,参考广告模块配置 [Source: packages/advertisements-module/vitest.config.ts#L1-L21]
|
|
- [ ] 配置 vitest.config.ts,参考广告模块配置 [Source: packages/advertisements-module/vitest.config.ts#L1-L21]
|
|
|
- [ ] 创建 src/index.ts 导出文件
|
|
- [ ] 创建 src/index.ts 导出文件
|
|
|
|
|
|
|
|
-- [ ] Task 2: 迁移配送地址实体和类型定义 (AC: 2, 4)
|
|
|
|
|
|
|
+- [ ] Task 2: 迁移配送地址实体和类型定义 (AC: 2, 4, 8)
|
|
|
- [ ] 迁移 DeliveryAddress 实体到 packages/delivery-address-module/src/entities/
|
|
- [ ] 迁移 DeliveryAddress 实体到 packages/delivery-address-module/src/entities/
|
|
|
|
|
+ - [ ] 将省市区字段从 City 实体关联更新为 AreaEntity 关联
|
|
|
|
|
+ - [ ] 更新实体字段映射,使用 AreaEntity 的 level 枚举
|
|
|
- [ ] 迁移 DeliveryAddressSchema、CreateDeliveryAddressDto、UpdateDeliveryAddressDto 到 packages/delivery-address-module/src/schemas/
|
|
- [ ] 迁移 DeliveryAddressSchema、CreateDeliveryAddressDto、UpdateDeliveryAddressDto 到 packages/delivery-address-module/src/schemas/
|
|
|
- [ ] 创建类型定义文件 packages/delivery-address-module/src/types/delivery-address.types.ts
|
|
- [ ] 创建类型定义文件 packages/delivery-address-module/src/types/delivery-address.types.ts
|
|
|
- [ ] 更新实体导入路径,使用 workspace:* 依赖
|
|
- [ ] 更新实体导入路径,使用 workspace:* 依赖
|
|
|
|
|
+ - [ ] 添加 @d8d/geo-areas 包依赖
|
|
|
|
|
|
|
|
-- [ ] Task 3: 迁移配送地址服务 (AC: 2, 3)
|
|
|
|
|
|
|
+- [ ] Task 3: 迁移配送地址服务 (AC: 2, 3, 8)
|
|
|
- [ ] 迁移 DeliveryAddressService 到 packages/delivery-address-module/src/services/
|
|
- [ ] 迁移 DeliveryAddressService 到 packages/delivery-address-module/src/services/
|
|
|
- [ ] 重构服务使用 shared-crud 基础设施
|
|
- [ ] 重构服务使用 shared-crud 基础设施
|
|
|
|
|
+ - [ ] 集成 AreaService 用于省市区数据验证和查询
|
|
|
|
|
+ - [ ] 更新地址验证逻辑,使用 AreaEntity 的层级枚举
|
|
|
- [ ] 确保 findByUser、setDefault、findDefaultByUser 方法正常工作
|
|
- [ ] 确保 findByUser、setDefault、findDefaultByUser 方法正常工作
|
|
|
- [ ] 更新服务依赖注入配置
|
|
- [ ] 更新服务依赖注入配置
|
|
|
|
|
|
|
@@ -46,22 +52,25 @@ Draft
|
|
|
- [ ] 集成认证中间件
|
|
- [ ] 集成认证中间件
|
|
|
- [ ] 配置用户追踪字段
|
|
- [ ] 配置用户追踪字段
|
|
|
|
|
|
|
|
-- [ ] Task 5: 集成到现有系统 (AC: 5, 6)
|
|
|
|
|
|
|
+- [ ] Task 5: 集成到现有系统 (AC: 5, 6, 8)
|
|
|
- [ ] 更新 server package 依赖,添加 @d8d/delivery-address-module
|
|
- [ ] 更新 server package 依赖,添加 @d8d/delivery-address-module
|
|
|
- [ ] 在 server 中注册配送地址路由
|
|
- [ ] 在 server 中注册配送地址路由
|
|
|
- [ ] 验证与用户模块的集成
|
|
- [ ] 验证与用户模块的集成
|
|
|
- - [ ] 验证与地区模块的集成
|
|
|
|
|
|
|
+ - [ ] 验证与 @d8d/geo-areas 包的集成
|
|
|
|
|
+ - [ ] 确保省市区数据关联正常工作
|
|
|
|
|
+ - [ ] 验证地址创建和更新时的地区验证
|
|
|
|
|
|
|
|
-- [ ] Task 6: 创建测试套件 (AC: 7)
|
|
|
|
|
- - [ ] 创建单元测试 packages/delivery-address-module/tests/unit/
|
|
|
|
|
|
|
+- [ ] Task 6: 创建测试套件 (AC: 7, 8)
|
|
|
- [ ] 创建集成测试 packages/delivery-address-module/tests/integration/,参考广告模块集成测试结构 [Source: packages/advertisements-module/tests/integration/advertisements.integration.test.ts#L1-L50]
|
|
- [ ] 创建集成测试 packages/delivery-address-module/tests/integration/,参考广告模块集成测试结构 [Source: packages/advertisements-module/tests/integration/advertisements.integration.test.ts#L1-L50]
|
|
|
- [ ] 配置测试数据库连接,使用 shared-test-util [Source: packages/shared-test-util/src/integration-test-db.ts#L1-L30]
|
|
- [ ] 配置测试数据库连接,使用 shared-test-util [Source: packages/shared-test-util/src/integration-test-db.ts#L1-L30]
|
|
|
|
|
+ - [ ] 添加省市区关联测试场景
|
|
|
|
|
+ - [ ] 测试地址创建时的地区验证逻辑
|
|
|
|
|
+ - [ ] 测试地址查询时的地区数据关联
|
|
|
- [ ] 确保测试覆盖率满足要求
|
|
- [ ] 确保测试覆盖率满足要求
|
|
|
|
|
|
|
|
- [ ] Task 7: 验证和文档 (AC: 4, 6)
|
|
- [ ] Task 7: 验证和文档 (AC: 4, 6)
|
|
|
- [ ] 运行所有测试验证功能
|
|
- [ ] 运行所有测试验证功能
|
|
|
- - [ ] 生成 API 文档
|
|
|
|
|
- - [ ] 更新 README.md 文档
|
|
|
|
|
|
|
+ - [ ] 更新 docs/architecture/source-tree.md 文档
|
|
|
- [ ] 验证向后兼容性
|
|
- [ ] 验证向后兼容性
|
|
|
|
|
|
|
|
## Dev Notes
|
|
## Dev Notes
|
|
@@ -85,6 +94,20 @@ Draft
|
|
|
- `findDefaultByUser(userId)` - 获取用户默认地址 [Source: packages/server/src/modules/delivery-address/delivery-address.service.ts#L52-L57]
|
|
- `findDefaultByUser(userId)` - 获取用户默认地址 [Source: packages/server/src/modules/delivery-address/delivery-address.service.ts#L52-L57]
|
|
|
- **Schema 定义**: 完整的 Zod Schema 验证规则 [Source: packages/server/src/modules/delivery-address/delivery-address.schema.ts#L18-L144]
|
|
- **Schema 定义**: 完整的 Zod Schema 验证规则 [Source: packages/server/src/modules/delivery-address/delivery-address.schema.ts#L18-L144]
|
|
|
|
|
|
|
|
|
|
+### 省市区迁移说明
|
|
|
|
|
+- **从 City 实体迁移到 AreaEntity**:
|
|
|
|
|
+ - 当前使用 City 实体管理省市区数据 [Source: packages/server/src/modules/system/city.entity.ts#L1-L34]
|
|
|
|
|
+ - 迁移到 @d8d/geo-areas 包的 AreaEntity [Source: packages/geo-areas/src/modules/areas/area.entity.ts#L1-L62]
|
|
|
|
|
+ - AreaEntity 提供更清晰的层级枚举:PROVINCE(1), CITY(2), DISTRICT(3) [Source: packages/geo-areas/src/modules/areas/area.entity.ts#L4-L8]
|
|
|
|
|
+- **字段映射关系**:
|
|
|
|
|
+ - `receiver_province` → 关联 AreaEntity.level = PROVINCE
|
|
|
|
|
+ - `receiver_city` → 关联 AreaEntity.level = CITY
|
|
|
|
|
+ - `receiver_district` → 关联 AreaEntity.level = DISTRICT
|
|
|
|
|
+ - `receiver_town` → 保留现有逻辑,可考虑扩展 AreaEntity.level = TOWN(4)
|
|
|
|
|
+- **服务集成**:
|
|
|
|
|
+ - 使用 AreaService 进行地区数据验证和查询 [Source: packages/geo-areas/src/modules/areas/area.service.ts#L1-L163]
|
|
|
|
|
+ - 支持树形结构查询和地区路径获取 [Source: packages/geo-areas/src/modules/areas/area.service.ts#L126-L145]
|
|
|
|
|
+
|
|
|
### 依赖关系
|
|
### 依赖关系
|
|
|
- **基础设施依赖**:
|
|
- **基础设施依赖**:
|
|
|
- `@d8d/shared-types` - 基础类型定义 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L269-L276]
|
|
- `@d8d/shared-types` - 基础类型定义 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L269-L276]
|
|
@@ -93,6 +116,7 @@ Draft
|
|
|
- **业务模块依赖**:
|
|
- **业务模块依赖**:
|
|
|
- `@d8d/user-module` - 用户管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L321-L334]
|
|
- `@d8d/user-module` - 用户管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L321-L334]
|
|
|
- `@d8d/auth-module` - 认证管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L337-L350]
|
|
- `@d8d/auth-module` - 认证管理 [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L337-L350]
|
|
|
|
|
+ - `@d8d/geo-areas` - 省市区管理 [Source: packages/geo-areas/package.json#L1-L71]
|
|
|
- **测试依赖**: `@d8d/shared-test-util` [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L294-L306]
|
|
- **测试依赖**: `@d8d/shared-test-util` [Source: docs/prd/epic-005-mini-auth-modules-integration.md#L294-L306]
|
|
|
|
|
|
|
|
### 配置参考
|
|
### 配置参考
|
|
@@ -132,12 +156,16 @@ Draft
|
|
|
- 默认地址设置功能
|
|
- 默认地址设置功能
|
|
|
- 地址状态管理
|
|
- 地址状态管理
|
|
|
- 认证和权限验证
|
|
- 认证和权限验证
|
|
|
|
|
+- 省市区数据关联验证
|
|
|
|
|
+- 地区层级关系验证
|
|
|
|
|
+- 地址创建时的地区验证逻辑
|
|
|
|
|
|
|
|
## Change Log
|
|
## Change Log
|
|
|
|
|
|
|
|
| Date | Version | Description | Author |
|
|
| Date | Version | Description | Author |
|
|
|
|------|---------|-------------|--------|
|
|
|------|---------|-------------|--------|
|
|
|
| 2025-11-11 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
| 2025-11-11 | 1.0 | 初始故事创建 | Bob (Scrum Master) |
|
|
|
|
|
+| 2025-11-11 | 1.1 | 更新省市区关联,集成 @d8d/geo-areas 包 | Bob (Scrum Master) |
|
|
|
|
|
|
|
|
## Dev Agent Record
|
|
## Dev Agent Record
|
|
|
|
|
|