You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
2.9 KiB
2.9 KiB
06 — 客户详情页(8 页签 + 跟进记录 + 操作日志)
What to build: 客户详情页能展示公共头部 + 汇总卡片 + 8 个页签;跟进记录能追加(不可改删)且写库刷新超期提醒锚点;操作日志按 append-only 审计记录并可分页查询。外部模块页签(关联项目/战略协议)显"--"占位。
Blocked by: 02 — 客户主表 CRUD + 查重校验;05 — 客户阶段(seam 版)
Status: ready-for-agent
Spec 依据(详见 issues/07-answer.md):D13 详情 8 页签 + append-only 跟进 + 字段级 oplog;§5.5 拍板 A = oplog 无限期保留。
关联商机反查的依赖方向(关键):「关联商机」页签需读 crm-opportunity,但 Maven 依赖只能 opportunity → customer。故 customer 侧定义出站 port(如 CustomerOpportunityQueryPort),由 crm-opportunity 实现(对称 ADR-0029 lead→opp port 范式,票 11 落实现);本票只定义 port + 页签消费契约,反查真源接线归票 11。
- 公共头部(票 07 §A,8 页签共享):客户名称/阶段只读条/客户星级/关系星级/战略协议等级(快照)/已成交VIP等级(快照)/档案状态/负责人+部门/最近跟进摘要/待跟进提醒/关联业务计数
- 汇总卡片 4 张(票 07 §A):均外部模块提供,接口失败显"--"+重试、不显 0(grill Q18)
- 8 页签骨架(票 07 §A):1 客户信息(票02) / 2 联系人(票03) / 3 跟进记录 / 4 关联商机(port 反查) / 5 关联项目(A5 显"--") / 6 战略协议(显"--") / 7 团队成员 / 8 操作日志;首次打开才加载,切回保留条件/分页
customer_follow跟进记录(票 07 §B):followWay(字典 follow_way)/followContent/nextFollowTime/跟进人快照;提交后不可改删(纠错=新增补充);防重复提交- 跟进写库副作用(关键):
customer.last_valid_follow_time = now(超期提醒锚点刷新,票 09);更新"待跟进"状态 - 跟进契约:
POST /api/customer/{id}/follow/GET /api/customer/{id}/follow/page(时间倒序+日期分组,按 follow_way/关键字/时间范围过滤) - 团队成员页签(票 07 §D):销售负责人快照 + 协同人列表;
GET /api/customer/{id}/members customer_oplog(票 07 §E):action 枚举(CREATE/UPDATE/FOLLOW/ARCHIVE/RESTORE/TRANSFER/CLAIM/POOL/STAGE_CHANGE)/detail把{字段}从{旧}修改为{新}/操作人快照;只追加不可改删;§5.5 无限期保留(不设保留期/清理/冷热分离)- oplog 契约:
GET /api/customer/{id}/oplog/page(时间倒序+日期分组+关键字/时间范围过滤) CustomerOpportunityQueryPortseam 定义(关联商机页签只读反查,真源归票 11);GET /api/customer/{id}/detail- crm-dict 新增
follow_way分组(微信/拜访/电话/邮件/会议)