Files
junhong_cmp_fiber/.sisyphus/notepads/realname-trigger-priority-enhancement/learnings.md
huang 7308afe801
All checks were successful
构建并部署到测试环境(无 SSH) / build-and-deploy (push) Successful in 7m18s
归档
2026-04-13 15:03:02 +08:00

38 lines
1.9 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.
# 项目约定和模式
## 模块路径
- 项目模块路径:`github.com/break/junhong_cmp_fiber`
## 关键包路径(区分 pkg vs internal
- `pkg/middleware` - 包含 `SetUserContext`, `UserContextInfo`, `GetUserTypeFromContext`
- `internal/middleware` - 包含 `GetCustomerID(c *fiber.Ctx)` (C端个人客户认证)
- `internal/service/polling` - ManualTriggerService 所在包
- `pkg/constants` - UserTypePlatform, TaskTypePollingRealname 等常量
## 重要发现
- `SetUserContext``pkg/middleware` 包,不在 `internal/middleware`
- `UserContextInfo` 字段UserID(uint), UserType(int), ShopID(uint), EnterpriseID(uint), CustomerID(uint)
- `GetCustomerID(c *fiber.Ctx)``internal/middleware/personal_auth.go`,返回 (uint, bool)
- manual_trigger_service.go 当前 469 行,进行重构
## 当前待修复 Bug
- `todayCount >= 100` 在 3 处行58, 129, 238需改为 `>= 500`
- `time.Hour` TTL 在 2 处行72, 192需改为 `24*time.Hour`
- `RedisPollingManualDedupeKey` 注释写的"1小时"需改为"24小时"
## client_realname.go 重构要点
- 当前 `GetRealnameLink` 函数 127 行,加新代码会超 100 行限制
- 需提取 `resolveTargetCard(c *fiber.Ctx, asset, iccid)` - 资产类型 switch
- 需提取 `buildRealnameResponse(ctx, card, carrier)` - 运营商 URL 调度
- 注意:`findCardInDeviceBindings``findFirstBoundCard` 已存在,可从 resolveTargetCard 调用
- goroutine 传标量值uint, string不能捕获 `c *fiber.Ctx`
## 依赖注入
- `handlers.go` 第 66 行:`ClientRealname: app.NewClientRealnameHandler(...)` 需加第8个参数
- `docs.go``gendocs/main.go` 各有一处 `NewClientRealnameHandler(nil*7)` 需改为 8个nil
- `svc.PollingManualTrigger` 已在 services.go:210 初始化,可直接使用
## Commit 3 后临时编译失败
- Task 4 修改构造函数后、Task 5 接线前,全量编译报错是预期行为
- 只做文件级 LSP 检查,不跑全量 build