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.
 
 
 
 
 
 

9.4 KiB

01 商机域词汇表与模块边界

Type: grilling Status: resolved

Decisions

  • 商机 = 独立聚合(写法 B):商机的定义是「销售推进中、待转项目的销售任务」;source_lead_id 是可空的来源字段/快照,不参与身份。线索转来的与直接创建的商机在模型里完全平权,状态机、公海、四视图不按来源切片。
  • 下游边界 = 写法 ① 承认「已转项目」终态:商机词汇表里有「已转项目」终态(对称线索的「已转商机」),锁死、不可回退。“转项目端口”名字先占位,具体契约、项目查重规则 out of scope,留给 A5 项目模块那张图定义。
  • 横向边界(客户)= 写法 ① 引用+快照占位:词汇表现在就收录「关联客户」术语(商机↔客户/联系人多对多),本域只存 customer_id 引用 + 快照字段;客户实体本身归 A4 客户模块,A4 未建前引用留空、快照前端手填。
  • 两条正交轴命名:轴 1(归属流转)= 中文「状态」/ oppStatus / OpportunityStatus;轴 2(业务阶段)= 中文「阶段」/ oppStage / OpportunityStage。字段名/类名统一用 opp 前缀;模块名与表名保持全拼 crm-opportunity / opportunity_*
  • 模块依赖方向 = crm-opportunity → crm-rule → (crm-auth/crm-dict/crm-file)(与线索同构)。商机规则(原型 A7-3-2 六类:阶段模板/方案卡模板/方案推送规则/项目查重规则/商机公海与提醒规则/商机相关字典)crm-rule(写法 A)crm-rule 从「线索规则」升级为「通用业务规则域」,内部按子域并列(线索规则子域 lead_pool 等 / 商机规则子域 opportunity_*),对上层业务域零反向依赖(既不知道 lead、也不知道 opportunity,靠 code/id 弱引用)。后续需改写 crm-rule/CONTEXT.md 标题与开篇(现文字仍写“线索规则 / 公海池不知道线索存在”,与本决策冲突)。
  • 持有与协作角色模型(产品已确认修正)领取人owner_user_id)= 归属 + 可见性两层含义;团队成员 = 行级授权白名单(绕开 DataScope 部门天花板的可见性)+ 每人配项目角色权限(原型 A3-1-1-1-8:销售负责人/方案工程师/招标专员/现场工程师 等,权限如读写/只读/可写跟进/可推进节点)。
    • 按钮可见即可点,权限全由权限点配置决定,与“是否领取人”无关(产品明确)。→ 废除旧版“归属级动作必须是领取人”的 guard;不再分 A/B 档。此规则适用于详情页顶部操作区的动作(暂缓/取消暂缓/关闭/重启/抛公海)。
    • 无独立“转让”动作;负责人变更 = 团队成员页的【移交】,移交只换负责人(产品明确)。关键:移交不在详情页顶部操作区,而在团队成员页 A3-1-1-1-8 内。因此“转让只有负责人能转”**不是一道额外 guard,而是移交入口就在团队成员管理里——而团队管理权实际落在负责人手上(原型:“当前用户只能维护其权限范围内的团队成员及权限设置”)。所以移交权限随团队成员页的管理权走,与上一条“可见即可点”不矛盾(不同位置的不同操作)。⚠:团队成员页 A3-1-1-1-8 现版正文只有 添加/改权限/改角色/移除,未见“移交”按钮(待核实,见下方 To-verify)。
    • 抛公海只清空负责人,不动其他团队成员(产品明确,纠正旧决策)。→ 废除旧版“归属换人时团队成员清空”。
  • 流转动作全集(产品补充后)
    • 详情页顶部操作区:暂缓商机(A3-1-1-2-6)/ 取消暂缓 / 抛公海(A3-1-1-2-7)/ 关闭商机(A3-1-1-2-9)/ 重启商机(重新开启)/ 转项目——均由权限点控制可见性,可见即可点,与负责人无关。
    • 团队成员页(A3-1-1-1-8):移交(换负责人)——权限随团队成员页的管理权,实际落在负责人手上。
    • 「中止」不存在。
  • 流转动作以原型为准(活数据 V1.0-20260815 核实,纠偏):A3-1-1-2 相关操作文件夹的状态相关动作为 暂缓商机(A3-1-1-2-6)/ 抛公海(A3-1-1-2-7)/ 关闭商机(A3-1-1-2-9) 三个(外加公海侧 A3-3-1-1-2 领取 / A3-3-1-1-4 分配 / A3-3-1-1-3 关注)。「中止」不存在(charting 对线索脑补的误字,地图/票 04 需把「暂缓/中止/关闭」改成「暂缓/抛公海/关闭」)。事实细节见 research-close-pause-actions.md
    • 关闭商机:选关闭原因(字典)+ 补充说明(选「其他」必填)+ 确认勾选框 → 状态「已关闭」,保留关闭前状态/节点(只读锁定);重开须管理权限用户 + 填重开原因。已关闭不可重复关闭。(注:原型写“管理权限”,但产品后来统一为“重启商机按钮由权限点控制、与负责人无关”,以产品口径为准)
    • 暂缓商机:选暂缓原因(字典)+ 预计重启日期(必填,不早于今天)+ 补充说明 → 状态「暂缓中」,保留负责人+团队、不进公海,保留暂缓前节点;到期不自动恢复,负责人人工选 恢复推进/继续暂缓/关闭;「恢复推进」由有权限用户执行(原型未要求必须管理员)。
    • 两者原型明确并列且互斥语义:短期有价值→暂缓,明确无价值→关闭。
    • 取消暂缓 / 重启商机(产品补充):暂缓中可「取消暂缓」恢复推进;已关闭可「重启商机(重新开启)」。两者按钮可见性由权限点配置,可见即可点,与负责人无关。

Product-confirmed (产品已确认,原两条 TODO 已拍板)

  • 商机来源 vs 来源线索 = 两回事(产品已确认)商机来源oppSource 字典码,必填,渠道归因,原型 A3-1-1-2-1)与 来源线索source_lead_id 可空 FK,线索转入血缘)是两个独立字段,都保留。从线索转来的商机,oppSource 默认置为「线索转入」(产品明确);直接新建的由用户选。「直接创建」= source_lead_id IS NULL,不单列术语。

To-verify (下一会话拉原型核实)

  • 团队成员页「移交」按钮:产品称负责人变更靠团队成员页的【移交】,但原型 A3-1-1-1-8 正文只有 添加/改权限/改角色/移除,未见“移交”字样。可能原型未画出或在另一交互里;以产品口径为准先记下,建表时保留“移交=只换 owner_user_id”语义。
  • 取消暂缓 / 重启商机独立原型页:产品提及这两个动作,原型 A3 相关操作文件夹无独立页(推测为详情页按钮/弹窗),建表/状态机时按产品口径实现。

钉死 crm-opportunity 域的 ubiquitous language 与模块边界,产出 crm-opportunity/CONTEXT.md 骨架(对称 crm-lead/CONTEXT.md)。

需要拍板的核心术语(含 Avoid 反义词):

  • 商机(Opportunity):域的核心聚合根。与线索、客户、项目的边界("从线索领取后 → 转项目前"的销售任务)。
  • 归属流转状态 vs 业务阶段:两条正交轴各自的中文/英文命名(避免混用"状态/阶段")。
  • 领取人 / 创建人 / 团队成员:商机的持有与协作角色(对称线索"领取人/创建人",但商机多了团队成员)。
  • 商机公海 / 抛公海 / 暂缓 / 关闭 / 转项目:流转动作的精确定义与边界(原型三动作:暂缓/抛公海/关闭,无「中止」)。
  • 来源线索 / 直接创建:商机两个入口(lead 转入 vs 销售直接创建,跳过线索)。

产出:crm-opportunity/CONTEXT.md(Language 段)+ 在 CONTEXT-MAP.md 增行。定模块依赖方向(初判 crm-opportunity → crm-rule → (crm-auth/crm-dict/crm-file),与线索同构)。

Answer

已产出 crm-opportunity/CONTEXT.md(Language 段 20 条术语,对称 crm-lead/CONTEXT.md 风格 + _Avoid_),并在 CONTEXT-MAP.md 新增 crm-opportunity 行、把 crm-rule 描述改为“业务规则域(线索公海池 + 商机规则子域)”。

已拍板决策(见 Decisions 段)

  1. 商机 = 独立聚合,source_lead_id 可空不参与身份;线索转入/直接创建平权。
  2. 下游 = 承认「已转项目」终态,转项目端口占位,项目查重归 A5。
  3. 客户 = 引用+快照占位(customer_id + 快照),实体归 A4。
  4. 两轴命名:状态 oppStatus / 阶段 oppStage,字段类名 opp 前缀、表/模块全拼。
  5. 依赖方向 crm-opportunity → crm-rule → (auth/dict/file);商机规则入 crm-rule(升级为通用业务规则域,对上层零反依赖)。
  6. 角色模型:领取人=归属+可见性;团队成员=行级授权白名单+项目角色/权限;按钮可见即可点、与领取人无关(废除旧 guard)。
  7. 流转动作 = 暂缓/取消暂缓/抛公海/关闭/重启 + 移交(团队成员页,只换负责人)+ 转项目;「中止」不存在;抛公海只清领取人不动团队。
  8. 商机来源(oppSource 渠道) 与 来源线索(source_lead_id 血缘) 两回事都保留;线索转入时 oppSource 默认「线索转入」。

遗留 To-verify(不阻塞建模,下会话拉原型/问产品):团队成员页「移交」按钮原型未见;取消暂缓/重启商机无独立原型页。