Files
junhong_cmp_fiber/.planning/phases/02-perm-fin-realname-poll/02-02-SUMMARY.md
huang facc766993 docs(02-02): 完成实名激活架构重构计划 REALNAME-01~05
- 新增 02-02-SUMMARY.md
- 更新 STATE.md 进度(plan 2/2)
- 更新 ROADMAP.md 进度
- 标记 REALNAME-01~05 需求完成
2026-03-28 10:42:04 +08:00

96 lines
3.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
phase: 02-perm-fin-realname-poll
plan: "02"
subsystem: realname-activation
tags: [realname, package, migration, refactor]
dependency_graph:
requires: []
provides: [REALNAME-01, REALNAME-02, REALNAME-03, REALNAME-04, REALNAME-05]
affects: [package, order, client_order, activation_service]
tech_stack:
added: []
patterns: [three-dimensional-decision, expiry-base-enum]
key_files:
created:
- migrations/000089_realname_expiry_base.up.sql
- migrations/000089_realname_expiry_base.down.sql
modified:
- internal/model/package.go
- internal/model/dto/package_dto.go
- internal/store/postgres/package_store.go
- internal/service/order/service.go
- internal/service/client_order/service.go
- internal/service/package/service.go
- internal/service/package/activation_service.go
- internal/task/auto_purchase.go
decisions:
- "expiry_base 枚举替代 enable_realname_activation 布尔字段,清晰分离等实名语义与计时起点语义"
- "三维决策行业卡永远直接激活C 端购买直接激活,后台囤货按 expiry_base 决定"
- "auto_purchase.go 被认定为 C 端路径,不适用 expiry_base 三维决策"
metrics:
duration: "~25min"
completed_date: "2026-03-28"
tasks: 2
files: 8
---
# Phase 02 Plan 02: 实名激活架构重构 Summary
`enable_realname_activation` 布尔字段替换为 `expiry_base` 枚举from_activation/from_purchase重构激活决策为三维判断卡类型+购买路径+expiry_base全链路原子完成。
## Tasks Completed
| Task | Description | Commits |
|------|-------------|---------|
| 1 | DB 迁移 + Model + Store 清理REALNAME-01 | `344850f` |
| 2a | DTO 更新REALNAME-05 | `244a274` |
| 2b | activateMainPackage 三维决策REALNAME-02 | `7dd5563` |
| 2c | C 端实名检查按卡类型REALNAME-03 | `0ebb3d7` |
| 2d | ActivateByRealname 按 ExpiryBase 选时间基准REALNAME-04 | `60b43bb` |
| 2e | auto_purchase.go 废弃引用清除(偏差修复) | `4be473c` |
## Verification
```
migrate-version: 89, dirty=false ✓
EnableRealnameActivation/enable_realname_activation/packagesNeedRealname 零引用 ✓
ExpiryBase 引用出现在 package.go、package_dto.go、order/service.go、
client_order/service.go、activation_service.go ✓
go build ./internal/... 零错误 ✓
```
## Deviations from Plan
### Auto-fixed Issues
**1. [Rule 1 - Bug] auto_purchase.go 含废弃 EnableRealnameActivation 引用**
- **发现于:** Task 2 完成后编译验证
- **问题:** `internal/task/auto_purchase.go:433` 引用已删除的 `pkg.EnableRealnameActivation` 字段,导致编译失败
- **修复:** 识别 auto_purchase 为 C 端充值触发路径,不适用 expiry_base 三维决策,删除该分支并添加注释说明
- **文件:** `internal/task/auto_purchase.go`
- **Commit** `4be473c`
**2. [Rule 1 - Bug] package/service.go DTO 映射引用 EnableRealnameActivation**
- **发现于:** Task 2 DTO 替换后 LSP 报错
- **问题:** `service.go` 的 Create/Update/toResponse 函数仍映射旧字段
- **修复:** 同步更新三处映射为 `ExpiryBase`
- **文件:** `internal/service/package/service.go`
- **Commit** 含于 `244a274`
## Known Stubs
无已知留桩。全链路变更已完整实现。
## Self-Check: PASSED
- `migrations/000089_realname_expiry_base.up.sql` — FOUND ✓
- `migrations/000089_realname_expiry_base.down.sql` — FOUND ✓
- `internal/model/package.go` ExpiryBase 字段 — FOUND ✓
- `internal/model/dto/package_dto.go` ExpiryBase 三处 — FOUND ✓
- `internal/store/postgres/package_store.go` 直接一步 Create — FOUND ✓
- Commit `344850f` (REALNAME-01) — FOUND ✓
- Commit `244a274` (REALNAME-05) — FOUND ✓
- Commit `7dd5563` (REALNAME-02) — FOUND ✓
- Commit `0ebb3d7` (REALNAME-03) — FOUND ✓
- Commit `60b43bb` (REALNAME-04) — FOUND ✓