迪诺学堂标识

03-CRM 客户中心详细PRD

CRM · 统一线索、客户、家长、学员、公海、跟进、邀约、试听和销售任务。

系统 迪诺学堂
版本 v1.0
日期 2026-06-23
阶段 模块详细 PRD

01 · 模块定位

CRM 客户中心

一条新线索可完成查重、分配、跟进、试听、反馈、报价和转合同。

业务目标

统一线索、客户、家长、学员、公海、跟进、邀约、试听和销售任务。

使用终端

PC Web 管理端由总部/区域/校区 CRM 管理员和销售主管使用,查看完整客户信息并处理审批、去重、归属仲裁、异常数据和线索重新分配;课程顾问、销售人员、市场人员只通过迪诺学堂教师端 App/小程序管理本人授权范围内的线索、客户、跟进、试听和活动线索,不提供 PC Web 操作入口。

验收主线

一条新线索可完成查重、分配、跟进、试听、反馈、报价和转合同。

02 · 范围边界

明确本模块负责什么、依赖什么、不负责什么

边界清晰后,原型、接口和数据库设计才能避免重复建设。

模块内范围

  • 线索池
  • 客户画像
  • 跟进任务
  • 试听邀约
  • 公海规则
  • 销售漏斗
  • 试听预约
  • 到访签到
  • 试听教师反馈
  • 试听家长评价
  • 未到访唤醒
  • 试听转化任务
  • 线索撞单
  • 客户合并
  • 归属仲裁

上游依赖

  • 组织校区与账号权限
  • 课程/客户/合同等主数据
  • 审批流、消息模板、文件中心
  • 必要的第三方接口密钥

下游输出

  • 业务状态和待办
  • 消息通知和审批记录
  • 报表指标和数据快照
  • 审计日志和接口回执

角色终端与权限边界

角色使用终端可见范围主要能力限制/说明
总部/区域 CRM 管理员PC Web 管理端总部全量或区域辖区全部线索、客户、跟进、试听、合同摘要和异常数据CRM 管理总览、全量查询、查重合并、误合并恢复、线索重新分配、归属仲裁、导入导出审批、异常关闭可查看完整信息;导出、明文查看、批量重分配等敏感动作需审批并审计
校区 CRM 管理员/校区主管PC Web 管理端本校区及授权跨校区线索、客户、顾问团队、市场活动线索和异常数据本校区线索治理、公海规则、保护期处理、销售团队分配、异常处理、试听转化跟踪仅限授权校区;跨校区流转和批量动作按审批规则执行
销售主管PC Web 管理端 + 移动端待办本人团队线索、客户、顾问跟进、试听和归属争议团队看板、分配与重新分配、跟进督办、归属仲裁、撞单处理、超时升级PC 用于管理和审批;移动端用于提醒、审批待办和轻量处理
课程顾问/销售人员迪诺学堂教师端 App/小程序本人负责、本人创建、本人协作或主管授权的线索、客户、试听和跟进任务销售工作台、我的线索、线索详情、移动端新增线索、记录跟进、试听邀约、转化跟进、归属申诉不提供 PC Web 操作入口;非本人数据脱敏或拦截;越权访问写审计
市场人员迪诺学堂教师端 App/小程序本人负责渠道、活动、扫码报名、活动留资和转销售状态市场线索工作台、活动线索查看、扫码报名、归因查看、转销售状态、归属申诉不提供 PC Web 操作入口;不可查看全量客户和其他市场人员活动数据
安全审计员PC Web 安全审计后台/CRM 审计入口CRM 敏感导出、明文查看、越权访问、合并恢复、重新分配和批量操作审计记录查看审计日志、导出审批复核、敏感访问追踪、异常操作追责不直接处理销售业务数据,仅处理安全审计和合规复核

03 · 确认口径、后台配置与默认实施规则

CRM 客户中心必须承接的已确认规则

本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。
分类事项本模块落地要求责任方
已确认CRM角色终端边界CRM 管理员、总部/区域/校区管理人员和销售主管使用 PC Web 管理端处理全量客户、审批、去重、归属仲裁、异常数据和重新分配;课程顾问、销售人员、市场人员只使用迪诺学堂教师端 App/小程序管理本人授权范围内的线索、客户、跟进、试听和活动线索,不提供 PC Web 操作入口。产品/研发/权限管理员
默认实施规则CRM数据范围控制移动端接口必须按本人负责、本人创建、本人参与、授权校区和授权活动过滤;PC Web 管理端按总部全量、区域辖区、校区本地、主管团队和管理员授权范围展示。研发/测试/安全合规
默认实施规则接口设计说明书组织方式采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。产品/研发
默认实施规则接口错误码与重试中间件所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。后端/测试/运维

04 · 业务流程

CRM 客户中心主流程

流程用于指导原型图的页面顺序、按钮状态和异常分支。
01线索池

线索池需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

02客户画像

客户画像需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

03跟进任务

跟进任务需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

04试听邀约

试听邀约需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

05公海规则

公海规则需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

06销售漏斗

销售漏斗需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

07试听预约

试听预约需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。

08到访签到

试听课需记录预约、提醒、到访签到、教师反馈、家长评价、顾问二次跟进和签约转化结果。

05 · 功能清单

按子模块拆到可设计、可开发、可测试的颗粒度

每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。
一级功能二级功能功能说明规则/验收
线索池角色化终端操作线索池按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
线索池业务处理线索池需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
线索池异常闭环重复客户处理失败原因可见、可重试、可转人工、可追溯
客户画像角色化终端操作客户画像按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
客户画像业务处理客户画像需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
客户画像异常闭环保护期冲突处理失败原因可见、可重试、可转人工、可追溯
跟进任务角色化终端操作跟进任务按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
跟进任务业务处理跟进任务需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
跟进任务异常闭环超时未跟进处理失败原因可见、可重试、可转人工、可追溯
试听邀约角色化终端操作试听邀约按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
试听邀约业务处理试听邀约需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
试听邀约异常闭环试听未到访处理失败原因可见、可重试、可转人工、可追溯
公海规则角色化终端操作公海规则按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
公海规则业务处理公海规则需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
公海规则异常闭环教师反馈缺失处理失败原因可见、可重试、可转人工、可追溯
销售漏斗角色化终端操作销售漏斗按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
销售漏斗业务处理销售漏斗需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
销售漏斗异常闭环家长评价未提交处理失败原因可见、可重试、可转人工、可追溯
试听预约角色化终端操作试听预约按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
试听预约业务处理试听预约需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
试听预约异常闭环转化任务未分配处理失败原因可见、可重试、可转人工、可追溯
到访签到角色化终端操作到访签到按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
到访签到业务处理试听课需记录预约、提醒、到访签到、教师反馈、家长评价、顾问二次跟进和签约转化结果。必须联动状态、权限、消息、审批和指标
到访签到异常闭环误合并处理失败原因可见、可重试、可转人工、可追溯
试听教师反馈角色化终端操作试听教师反馈按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
试听教师反馈业务处理试听教师反馈需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
试听教师反馈异常闭环归属争议超时处理失败原因可见、可重试、可转人工、可追溯
试听家长评价角色化终端操作试听家长评价按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
试听家长评价业务处理试听家长评价需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
试听家长评价异常闭环历史记录迁移失败处理失败原因可见、可重试、可转人工、可追溯
未到访唤醒角色化终端操作未到访唤醒按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
未到访唤醒业务处理未到访唤醒需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
未到访唤醒异常闭环重复客户处理失败原因可见、可重试、可转人工、可追溯
试听转化任务角色化终端操作试听转化任务按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
试听转化任务业务处理试听转化任务需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
试听转化任务异常闭环保护期冲突处理失败原因可见、可重试、可转人工、可追溯
线索撞单角色化终端操作线索撞单按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
线索撞单业务处理CRM 需支持线索撞单识别、客户家庭档案合并、顾问归属争议仲裁、历史跟进和试听合同归并,以及误合并恢复。必须联动状态、权限、消息、审批和指标
线索撞单异常闭环超时未跟进处理失败原因可见、可重试、可转人工、可追溯
客户合并角色化终端操作客户合并按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
客户合并业务处理客户合并需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
客户合并异常闭环试听未到访处理失败原因可见、可重试、可转人工、可追溯
归属仲裁角色化终端操作归属仲裁按角色拆分为 PC Web 管理端和迪诺学堂教师端 App/小程序端:管理员/主管处理全量治理、审批、去重、归属和异常;销售/市场只在移动端处理本人授权范围内的线索、客户、跟进、试听和活动线索。必须校验角色终端、组织范围、本人归属、协作授权、字段脱敏、敏感操作审批和操作审计
归属仲裁业务处理归属仲裁需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。必须联动状态、权限、消息、审批和指标
归属仲裁异常闭环教师反馈缺失处理失败原因可见、可重试、可转人工、可追溯

功能到数据对象/接口/表映射

功能域承接对象核心表代表接口状态机/状态字段研发落地校验
线索池Lead、LeadAssignment、DuplicateCandidate、MergeDisputecrm_lead、crm_lead_assignment、crm_duplicate_candidate、crm_merge_dispute建议接口资源组 /api/v1/crm/leadsduplicate_status、biz_status、assignment_status、approval_status、source_biz_type、handle_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
客户画像CustomerFamily、Guardian、Student、DuplicateCandidatecrm_customer_family、crm_guardian、stu_student、crm_duplicate_candidate建议接口资源组 /api/v1/crm/customersrisk_level、biz_status、verify_status、source_biz_type、handle_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
跟进任务Lead、FollowRecord、LeadAssignmentcrm_lead、crm_follow_record、crm_lead_assignment建议接口资源组 /api/v1/crm/follow-recordsduplicate_status、biz_status、follow_type、assignment_status、approval_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
试听邀约Lead、TrialLesson、TrialFeedbackcrm_lead、crm_trial_lesson、crm_trial_feedback建议接口资源组 /api/v1/crm/trialsduplicate_status、biz_status、trial_status、arrival_status、conversion_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
公海规则Lead、LeadAssignment、DuplicateCandidate、MergeDisputecrm_lead、crm_lead_assignment、crm_duplicate_candidate、crm_merge_dispute建议接口资源组 /api/v1/crm/leadsduplicate_status、biz_status、assignment_status、approval_status、source_biz_type、handle_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
销售漏斗CRMRoleTerminalPolicy、Lead、CustomerFamily、Guardiancrm_role_terminal_policy、crm_lead、crm_customer_family、crm_guardian接口资源组 /api/v1/crm/features/06duplicate_status、biz_status、risk_level、verify_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
试听预约Lead、TrialLesson、TrialFeedbackcrm_lead、crm_trial_lesson、crm_trial_feedback建议接口资源组 /api/v1/crm/trialsduplicate_status、biz_status、trial_status、arrival_status、conversion_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
到访签到Lead、TrialLesson、TrialFeedbackcrm_lead、crm_trial_lesson、crm_trial_feedback建议接口资源组 /api/v1/crm/trialsduplicate_status、biz_status、trial_status、arrival_status、conversion_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
试听教师反馈Lead、TrialLesson、TrialFeedbackcrm_lead、crm_trial_lesson、crm_trial_feedback建议接口资源组 /api/v1/crm/trialsduplicate_status、biz_status、trial_status、arrival_status、conversion_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
试听家长评价Lead、TrialLesson、TrialFeedbackcrm_lead、crm_trial_lesson、crm_trial_feedback建议接口资源组 /api/v1/crm/trialsduplicate_status、biz_status、trial_status、arrival_status、conversion_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
未到访唤醒Lead、TrialLesson、TrialFeedbackcrm_lead、crm_trial_lesson、crm_trial_feedback建议接口资源组 /api/v1/crm/trialsduplicate_status、biz_status、trial_status、arrival_status、conversion_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
试听转化任务Lead、FollowRecord、LeadAssignmentcrm_lead、crm_follow_record、crm_lead_assignment建议接口资源组 /api/v1/crm/follow-recordsduplicate_status、biz_status、follow_type、assignment_status、approval_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
线索撞单Lead、LeadAssignment、DuplicateCandidate、MergeDisputecrm_lead、crm_lead_assignment、crm_duplicate_candidate、crm_merge_dispute建议接口资源组 /api/v1/crm/leadsduplicate_status、biz_status、assignment_status、approval_status、source_biz_type、handle_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
客户合并CustomerFamily、Guardian、Student、DuplicateCandidatecrm_customer_family、crm_guardian、stu_student、crm_duplicate_candidate建议接口资源组 /api/v1/crm/customersrisk_level、biz_status、verify_status、source_biz_type、handle_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计
归属仲裁Lead、LeadAssignment、DuplicateCandidate、MergeDisputecrm_lead、crm_lead_assignment、crm_duplicate_candidate、crm_merge_dispute建议接口资源组 /api/v1/crm/leadsduplicate_status、biz_status、assignment_status、approval_status、source_biz_type、handle_status新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计

06 · 原子级功能需求

用于研发任务拆分和测试用例追踪

需求编号可直接进入项目管理工具。
编号需求描述入口页面关键动作输入校验输出结果异常处理验收标准
FR-CRM-001线索支持手动录入、表单导入、活动报名、批量导入和开放导入CRM 管理总览移动端新增线索校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务重复客户主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-002按手机号、微信、学员姓名、生日、家长姓名查重合并线索全量管理移动端跟进校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务保护期冲突主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-003支持自动分配、手动分配、抢单、公海回收和保护期客户全量档案移动端试听邀约校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务超时未跟进主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-004跟进记录支持电话、微信、面谈、短信、活动、试听和上门试听反馈台到访签到、教师反馈或转化跟进校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务试听未到访、反馈缺失或转化任务未分配主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-005试听后自动生成反馈、报价和签约任务试听反馈台到访签到、教师反馈或转化跟进校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务试听未到访、反馈缺失或转化任务未分配主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-006试听课需记录预约、提醒、到访签到、教师反馈、家长评价、顾问二次跟进和签约转化结果。试听反馈台到访签到、教师反馈或转化跟进校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务试听未到访、反馈缺失或转化任务未分配主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-007未到访试听需自动生成唤醒任务,并保留未到访原因、改约记录和顾问跟进结果。试听反馈台到访签到、教师反馈或转化跟进校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务试听未到访、反馈缺失或转化任务未分配主流程、异常流、权限流、接口失败和数据一致性均可通过测试
FR-CRM-008CRM 需支持线索撞单识别、客户家庭档案合并、顾问归属争议仲裁、历史跟进和试听合同归并,以及误合并恢复。试听反馈台到访签到、教师反馈或转化跟进校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务试听未到访、反馈缺失或转化任务未分配主流程、异常流、权限流、接口失败和数据一致性均可通过测试

07 · 关联闭环补充需求

CRM 客户中心在跨模块闭环中的责任边界

本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。
闭环项本模块责任关键场景页面/功能补充关联对象/接口验收口径
线索撞单负责撞单规则、归属判定、合并、申诉和审计多渠道重复获客、顾问抢单、跨校区线索转入PC 去重合并工作台、移动端撞单提示、撞单详情、归属申诉、合并确认Lead、Customer/Guardian/Student、/api/v1/crm/leads线索合并后保留来源、跟进、活动和归属变化记录
角色终端分工负责按角色拆分 PC 管理端与迪诺学堂教师端 App/小程序的入口、数据范围、审批动作和异常处理管理员需要全量治理,销售和市场只处理本人信息PC CRM 管理总览、PC 异常处理、教师端销售工作台、教师端市场线索工作台CRMRoleTerminalPolicy、User/Employee、LeadAssignment、/api/v1/crm/mobile/workbench销售/市场移动端无 PC Web 入口,越权访问必须拦截并审计
活动线索回流负责接收员工专属推广链接和二维码产生的留资线索,并按活动归因、员工归属、撞单规则和分配规则生成移动端待办员工分享活动后产生报名、试听预约、公开课报名或咨询留资活动线索详情、移动端新线索提醒、活动归因卡片、线索跟进待办Lead、LeadAssignment、EmployeePromotionAsset、EmployeeShareRecord、/api/v1/crm/activity-leads员工推广产生的线索必须自动回到对应员工或分配规则指定责任人,撞单时进入 PC 管理端仲裁
线索重新分配负责线索归属重新分配、主管审批、跨校区流转和归属审计离职交接、顾问超时、错误分配、跨校区转入、团队调整PC 重新分配工作台、批量分配确认、移动端归属变更通知LeadAssignment、MergeDispute、/api/v1/crm/leads/reassign重新分配需记录原责任人、新责任人、原因、审批、消息触达和数据影响范围

08 · 页面与原型设计说明

页面清单、布局要求、按钮字段和状态

原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。
终端页面用户页面目标布局结构关键按钮关键字段异常状态原型备注
PC Web 管理端CRM 管理总览总部/区域/校区 CRM 管理员、销售主管查看全量线索、客户、撞单、归属、异常和转化指标CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-crm_管理总览;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端线索全量管理总部/区域/校区 CRM 管理员、销售主管按组织范围查看、筛选、批量查重、批量分配和导出审批CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-线索全量管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端客户全量档案总部/区域/校区 CRM 管理员、销售主管查看客户家庭、监护人、学员、跟进、试听、合同和审计摘要CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-客户全量档案;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端去重合并工作台CRM 管理员、销售主管处理重复线索、重复客户、合并建议、误合并恢复和合并审计CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-去重合并工作台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端线索归属重新分配CRM 管理员、销售主管按离职、超时、错误分配、跨校区流转等原因重新分配线索CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-线索归属重新分配;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端归属仲裁审批CRM 管理员、销售主管处理课程顾问、销售人员、市场人员提交的归属申诉和撞单争议CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-归属仲裁审批;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端异常数据处理CRM 管理员、销售主管处理手机号异常、资料缺失、导入失败、回收失败、接口失败和重复提交CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-异常数据处理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端公海池与保护期规则CRM 管理员、销售主管配置公海领取、保护期、回收、转派、跨校区流转和超时提醒规则CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-公海池与保护期规则;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
PC Web 管理端CRM 数据导入导出审批CRM 管理员、销售主管/安全审计员导入线索并查看失败明细,导出客户数据需按敏感数据规则审批CRM PC 管理端采用统一后台框架,左侧为线索/客户/公海/异常导航,中部为全量列表和批量处理区,右侧使用详情抽屉展示客户画像、跟进时间轴、重复候选、归属记录、审批日志和审计链路。全量查询、批量查重、合并客户、恢复误合并、重新分配、归属仲裁、异常关闭、导出审批线索编号、家长手机号、学员姓名、来源渠道、校区、归属顾问、保护期、重复候选、仲裁状态、异常原因重复客户、保护期冲突、跨校区无权限、批量部分失败、归属争议超时、导出审批未通过PC 管理端需覆盖总部/区域/校区/主管数据范围、全量脱敏/明文审批、批量操作确认、处理进度、审批轨迹和异常兜底。 建议 Figma Frame:CRM-crm_数据导入导出审批;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序销售工作台课程顾问/销售人员查看本人线索、客户、跟进提醒、试听邀约和转化任务;不提供 PC Web 入口迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-销售工作台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序我的线索池课程顾问/销售人员查看本人负责、本人创建、本人协作和授权分配的线索迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-我的线索池;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序线索详情与跟进课程顾问/销售人员查看授权字段、跟进时间轴、撞单提示、保护期和下一步动作迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-线索详情与跟进;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序新增线索课程顾问/销售人员/市场人员录入家长手机号、学员姓名、意向课程、来源渠道并实时查重迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-新增线索;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序试听邀约课程顾问/销售人员选择课程、校区、课次,发送试听通知并跟踪到访和反馈迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-试听邀约;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序我的客户课程顾问/销售人员查看已转客户、服务状态、合同摘要、续费提醒和下一次跟进迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-我的客户;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序市场线索工作台市场人员查看本人渠道/活动线索、扫码报名、活动归因和转销售状态;不提供 PC Web 入口迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-市场线索工作台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序线索归属申诉课程顾问/销售人员/市场人员对归属异常、撞单结果、回收或重新分配结果发起申诉并查看处理进度迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-线索归属申诉;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序跟进超时提醒课程顾问/销售人员/市场人员接收跟进超时、保护期到期、公海回收和试听未到访提醒并处理迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-跟进超时提醒;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。
迪诺学堂教师端 App/小程序移动端无 PC 权限提示课程顾问/销售人员/市场人员当移动端角色访问 PC 链接或越权数据时展示原因、可用入口和申诉路径迪诺学堂教师端 App/小程序采用移动端任务流,首页展示今日跟进、我的线索、试听邀约、市场活动线索和归属提醒;详情页突出拨打电话、添加跟进、预约试听、提交申诉和下一步任务。新增线索、记录跟进、拨打电话、预约试听、提交反馈、申请归属、查看提醒、转化跟进线索编号、家长手机号、学员姓名、意向课程、来源活动、跟进状态、下次跟进、试听课次、撞单提示、申诉进度移动端无 PC 权限、重复线索、非本人线索、保护期冲突、超时未跟进、试听未到访、网络提交失败销售人员和市场人员不绘制 PC Web 操作原型;移动端必须体现本人数据范围、越权提示、脱敏字段、撞单提示和消息待办。 建议 Figma Frame:CRM-移动端无_pc_权限提示;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。

09 · 页面到接口的前后端闭环矩阵

把原型页面、后端接口、数据对象、状态和消息审批绑定到一起

设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。
原型页面关键接口关联对象状态流审批/权限触发消息/待办触达原型验收要求
CRM 管理总览GET /api/v1/crm/admin/leadsLead新线索 -> 待分配 -> 已分配 -> 跟进中 -> 已预约试听 -> 试听完成 -> 已转化 -> 已流失 -> 已回收公海 -> 异常待处理敏感客户信息导出审批:导出手机号、家庭信息、跟进记录、合同摘要等敏感数据撞单待处理提醒 -> 销售主管/CRM 管理员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
线索全量管理GET /api/v1/crm/admin/leadsLead新线索 -> 待分配 -> 已分配 -> 跟进中 -> 已预约试听 -> 试听完成 -> 已转化 -> 已流失 -> 已回收公海 -> 异常待处理敏感客户信息导出审批:导出手机号、家庭信息、跟进记录、合同摘要等敏感数据撞单待处理提醒 -> 销售主管/CRM 管理员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
客户全量档案GET /api/v1/crm/duplicate-candidatesCustomer/Guardian/Student待查重 -> 疑似重复 -> 合并待确认 -> 已合并 -> 误合并待恢复 -> 已恢复 -> 无需合并客户去重合并审批:涉及已转客户、已有合同、跨校区或高价值客户时触发审批撞单待处理提醒 -> 销售主管/CRM 管理员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
去重合并工作台GET /api/v1/crm/duplicate-candidatesCustomer/Guardian/Student待查重 -> 疑似重复 -> 合并待确认 -> 已合并 -> 误合并待恢复 -> 已恢复 -> 无需合并客户去重合并审批:涉及已转客户、已有合同、跨校区或高价值客户时触发审批撞单待处理提醒 -> 销售主管/CRM 管理员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
线索归属重新分配POST /api/v1/crm/leads/reassignLeadAssignment未归属 -> 本人负责 -> 团队协作 -> 主管待分配 -> 跨校区待审批 -> 已重新分配 -> 归属争议中 -> 已仲裁 -> 已回收线索重新分配审批:跨校区、批量、保护期内、主管外团队或高价值线索重新分配归属变更通知 -> 原责任人/新责任人/销售主管原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
归属仲裁审批POST/PATCH /api/v1/crm/merge-disputesLeadAssignment草稿 -> 已提交 -> 主管处理中 -> 需补充材料 -> 已通过 -> 已驳回 -> 已关闭归属仲裁审批:销售/市场对撞单、回收、重新分配或活动归因结果有争议归属变更通知 -> 原责任人/新责任人/销售主管原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
异常数据处理POST /api/v1/crm/leads/reassignTrialLesson未归属 -> 本人负责 -> 团队协作 -> 主管待分配 -> 跨校区待审批 -> 已重新分配 -> 归属争议中 -> 已仲裁 -> 已回收误合并恢复审批:已合并客户需要拆分或恢复历史快照撞单待处理提醒 -> 销售主管/CRM 管理员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
公海池与保护期规则GET /api/v1/crm/duplicate-candidatesTrialFeedback待跟进 -> 今日待办 -> 已完成 -> 超时 -> 已提醒 -> 已关闭 -> 转人工线索重新分配审批:跨校区、批量、保护期内、主管外团队或高价值线索重新分配试听结果提醒 -> 课程顾问/教师/销售主管原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
CRM 数据导入导出审批POST/PATCH /api/v1/crm/merge-disputesLeadAssignment待预约 -> 已预约 -> 待到访 -> 已到访 -> 未到访 -> 教师已反馈 -> 待二次跟进 -> 已转化 -> 已流失归属仲裁审批:销售/市场对撞单、回收、重新分配或活动归因结果有争议撞单待处理提醒 -> 销售主管/CRM 管理员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
销售工作台GET /api/v1/crm/mobile/workbenchLead待跟进 -> 今日待办 -> 已完成 -> 超时 -> 已提醒 -> 已关闭 -> 转人工敏感客户信息导出审批:导出手机号、家庭信息、跟进记录、合同摘要等敏感数据新线索分配提醒 -> 课程顾问/销售人员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
我的线索池POST/GET /api/v1/crm/my-leadsLead新线索 -> 待分配 -> 已分配 -> 跟进中 -> 已预约试听 -> 试听完成 -> 已转化 -> 已流失 -> 已回收公海 -> 异常待处理客户去重合并审批:涉及已转客户、已有合同、跨校区或高价值客户时触发审批新线索分配提醒 -> 课程顾问/销售人员原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口
线索详情与跟进POST /api/v1/crm/follow-recordsLead待跟进 -> 今日待办 -> 已完成 -> 超时 -> 已提醒 -> 已关闭 -> 转人工误合并恢复审批:已合并客户需要拆分或恢复历史快照跟进超时提醒 -> 课程顾问/销售人员/销售主管原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口

10 · 原型、UI、研发、测试交付补充

把关键闭环补强为下一阶段可执行任务

本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。
能力域功能补充要求原型交付要求UI 交互要求研发实现要求测试验收要求
角色终端补齐 CRM 角色终端边界:管理员/主管使用 PC Web 管理端处理全量治理、审批、去重、重分配和异常;课程顾问、销售人员、市场人员只使用迪诺学堂教师端 App/小程序处理本人授权数据。角色终端矩阵、PC CRM 管理总览、教师端销售工作台、教师端市场线索工作台、移动端无 PC 权限提示 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;销售/市场无 PC Web 操作入口,移动端只显示本人/授权数据;管理员 PC 端可处理全量治理事项且全程审计。
客户去重补齐撞单提示、合并申请、仲裁审批、恢复任务、跟进记录归并和审计链路。线索详情、客户详情、合并仲裁页 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;误合并可恢复,恢复后跟进、试听、合同关联不丢失。
试听闭环补齐试听课表、到访签到、未到访唤醒、教师反馈、顾问转化任务和流失原因。试听预约、试听反馈、顾问跟进 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;试听结束后必须进入转化、复约、流失或服务观察之一。
归属规则增加公海规则配置、保护期倒计时、回收原因、跨校区申请和归属变更审计。公海池、线索分配、归属变更 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;线索归属变化能追溯来源、审批和当前责任人。

11 · 数据对象与字段字典

明确页面、接口、数据库共同使用的数据语言

字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。

核心对象

对象说明
CRMRoleTerminalPolicyCRM 角色终端与字段权限策略;落地表:crm_role_terminal_policy
Lead销售线索主表;落地表:crm_lead
CustomerFamily客户家庭档案;落地表:crm_customer_family
Guardian监护人/家长资料;落地表:crm_guardian
Student学员基础档案;落地表:stu_student
FollowRecord线索/客户跟进记录;落地表:crm_follow_record
TrialLesson试听预约;落地表:crm_trial_lesson
TrialFeedback试听反馈与转化建议;落地表:crm_trial_feedback
LeadAssignment线索分配、重分配与申诉;落地表:crm_lead_assignment
DuplicateCandidate重复线索/客户候选;落地表:crm_duplicate_candidate
MergeDispute撞单、合并与归属仲裁;落地表:crm_merge_dispute

关联引用对象

对象说明
Organization集团、区域、校区、部门组织树;引用来源:FND / sys_organization
User/Employee统一登录账号;引用来源:FND / sys_user
Employee员工基础档案;引用来源:FND / sys_employee
Role角色定义;引用来源:FND / sys_role
ApprovalFlow审批流配置;引用来源:FND / sys_approval_flow
MessageTemplate消息模板与多端触达配置;引用来源:FND / sys_message_template
AuditLog全平台操作审计日志;引用来源:FND / sys_audit_log
IntegrationLog接口调用日志;引用来源:OPEN / int_integration_log
SensitiveFieldPolicy敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy
MarketingCampaign营销活动主数据;引用来源:MKT / mkt_campaign
CampaignFormSubmit活动表单留资;引用来源:MKT / mkt_form_submit
Course/Product课程产品;引用来源:EDU / edu_course
Contract合同主表;引用来源:CON / con_contract
Order订单和应收;引用来源:CON / ord_order
ServiceTicket服务工单;引用来源:SER / ser_service_ticket

完整字段字典

对象字段类型必填规则数据级别
CRMRoleTerminalPolicyidBIGINT主键,雪花或号段生成,禁止复用普通
CRMRoleTerminalPolicytenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
CRMRoleTerminalPolicyorg_idBIGINT所属组织,集团级或公共配置为空普通
CRMRoleTerminalPolicycampus_idBIGINT所属校区,跨校区或总部级数据为空普通
CRMRoleTerminalPolicycreated_byBIGINT创建人账号 ID普通
CRMRoleTerminalPolicycreated_atDATETIME创建时间普通
CRMRoleTerminalPolicyupdated_byBIGINT最后更新人账号 ID普通
CRMRoleTerminalPolicyupdated_atDATETIME最后更新时间普通
CRMRoleTerminalPolicyis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
CRMRoleTerminalPolicydeleted_atDATETIME删除时间,未删除为空普通
CRMRoleTerminalPolicydeleted_byBIGINT删除人账号 ID,未删除为空普通
CRMRoleTerminalPolicyversionINT乐观锁版本号,写操作必须校验普通
CRMRoleTerminalPolicyrole_codeVARCHAR(64)角色编码普通
CRMRoleTerminalPolicyterminal_scopeVARCHAR(64)PC Web/教师 App/教师小程序普通
CRMRoleTerminalPolicymenu_codesJSON可见菜单普通
CRMRoleTerminalPolicybutton_codesJSON可见按钮普通
CRMRoleTerminalPolicyfield_policy_jsonJSON字段明文/脱敏/隐藏策略普通
CRMRoleTerminalPolicydata_scope_ruleJSON数据范围规则普通
CRMRoleTerminalPolicyenabledTINYINT是否启用普通
LeadidBIGINT主键,雪花或号段生成,禁止复用普通
Leadtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
Leadorg_idBIGINT所属组织,集团级或公共配置为空普通
Leadcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
Leadcreated_byBIGINT创建人账号 ID普通
Leadcreated_atDATETIME创建时间普通
Leadupdated_byBIGINT最后更新人账号 ID普通
Leadupdated_atDATETIME最后更新时间普通
Leadis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
Leaddeleted_atDATETIME删除时间,未删除为空普通
Leaddeleted_byBIGINT删除人账号 ID,未删除为空普通
LeadversionINT乐观锁版本号,写操作必须校验普通
Leadlead_noVARCHAR(64)线索编号,唯一普通
Leadsource_channelVARCHAR(64)来源渠道普通
Leadcampaign_idBIGINT来源活动 ID普通
Leadguardian_mobileVARCHAR(32)家长手机号,敏感敏感
Leadstudent_nameVARCHAR(64)学员姓名普通
Leadintent_course_idBIGINT意向课程普通
Leadowner_idBIGINT当前归属销售/顾问普通
Leadprotect_untilDATETIME保护期截止时间普通
Leadduplicate_statusVARCHAR(32)未查重/疑似重复/已合并/已忽略普通
Leadbiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
LeadremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
CustomerFamilyidBIGINT主键,雪花或号段生成,禁止复用普通
CustomerFamilytenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
CustomerFamilyorg_idBIGINT所属组织,集团级或公共配置为空普通
CustomerFamilycampus_idBIGINT所属校区,跨校区或总部级数据为空普通
CustomerFamilycreated_byBIGINT创建人账号 ID普通
CustomerFamilycreated_atDATETIME创建时间普通
CustomerFamilyupdated_byBIGINT最后更新人账号 ID普通
CustomerFamilyupdated_atDATETIME最后更新时间普通
CustomerFamilyis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
CustomerFamilydeleted_atDATETIME删除时间,未删除为空普通
CustomerFamilydeleted_byBIGINT删除人账号 ID,未删除为空普通
CustomerFamilyversionINT乐观锁版本号,写操作必须校验普通
CustomerFamilyfamily_noVARCHAR(64)家庭编号,唯一普通
CustomerFamilyprimary_guardian_idBIGINT主监护人 ID普通
CustomerFamilystudent_idBIGINT主学员 ID普通
CustomerFamilyowner_idBIGINT客户归属人普通
CustomerFamilyrisk_levelVARCHAR(32)风险等级普通
CustomerFamilylast_follow_atDATETIME最近跟进时间普通
CustomerFamilybiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
CustomerFamilyremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
GuardianidBIGINT主键,雪花或号段生成,禁止复用普通
Guardiantenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
Guardianorg_idBIGINT所属组织,集团级或公共配置为空普通
Guardiancampus_idBIGINT所属校区,跨校区或总部级数据为空普通
Guardiancreated_byBIGINT创建人账号 ID普通
Guardiancreated_atDATETIME创建时间普通
Guardianupdated_byBIGINT最后更新人账号 ID普通
Guardianupdated_atDATETIME最后更新时间普通
Guardianis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
Guardiandeleted_atDATETIME删除时间,未删除为空普通
Guardiandeleted_byBIGINT删除人账号 ID,未删除为空普通
GuardianversionINT乐观锁版本号,写操作必须校验普通
Guardianfamily_idBIGINT家庭 ID普通
Guardianguardian_nameVARCHAR(64)监护人姓名普通
GuardianmobileVARCHAR(32)手机号,敏感敏感
GuardianrelationshipVARCHAR(32)与学员关系普通
Guardianwechat_openidVARCHAR(128)微信 OpenID,敏感敏感
Guardianverify_statusVARCHAR(32)未验证/已验证/已解绑普通
StudentidBIGINT主键,雪花或号段生成,禁止复用普通
Studenttenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
Studentorg_idBIGINT所属组织,集团级或公共配置为空普通
Studentcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
Studentcreated_byBIGINT创建人账号 ID普通
Studentcreated_atDATETIME创建时间普通
Studentupdated_byBIGINT最后更新人账号 ID普通
Studentupdated_atDATETIME最后更新时间普通
Studentis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
Studentdeleted_atDATETIME删除时间,未删除为空普通
Studentdeleted_byBIGINT删除人账号 ID,未删除为空普通
StudentversionINT乐观锁版本号,写操作必须校验普通
Studentstudent_noVARCHAR(64)学员编号,唯一普通
Studentfamily_idBIGINT家庭 ID普通
Studentstudent_nameVARCHAR(64)学员姓名普通
StudentgenderVARCHAR(16)性别普通
StudentbirthdayDATE出生日期普通
StudentgradeVARCHAR(32)年级普通
Studentschool_nameVARCHAR(128)学校名称普通
Studentbiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
StudentremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
FollowRecordidBIGINT主键,雪花或号段生成,禁止复用普通
FollowRecordtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
FollowRecordorg_idBIGINT所属组织,集团级或公共配置为空普通
FollowRecordcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
FollowRecordcreated_byBIGINT创建人账号 ID普通
FollowRecordcreated_atDATETIME创建时间普通
FollowRecordupdated_byBIGINT最后更新人账号 ID普通
FollowRecordupdated_atDATETIME最后更新时间普通
FollowRecordis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
FollowRecorddeleted_atDATETIME删除时间,未删除为空普通
FollowRecorddeleted_byBIGINT删除人账号 ID,未删除为空普通
FollowRecordversionINT乐观锁版本号,写操作必须校验普通
FollowRecordlead_idBIGINT线索 ID普通
FollowRecordfamily_idBIGINT客户家庭 ID普通
FollowRecordowner_idBIGINT跟进人 ID普通
FollowRecordfollow_typeVARCHAR(32)电话/微信/到访/试听/其他普通
FollowRecordfollow_contentTEXT跟进内容普通
FollowRecordnext_follow_atDATETIME下次跟进时间普通
FollowRecordfollow_resultVARCHAR(32)有效/无效/待跟进/转化普通
TrialLessonidBIGINT主键,雪花或号段生成,禁止复用普通
TrialLessontenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
TrialLessonorg_idBIGINT所属组织,集团级或公共配置为空普通
TrialLessoncampus_idBIGINT所属校区,跨校区或总部级数据为空普通
TrialLessoncreated_byBIGINT创建人账号 ID普通
TrialLessoncreated_atDATETIME创建时间普通
TrialLessonupdated_byBIGINT最后更新人账号 ID普通
TrialLessonupdated_atDATETIME最后更新时间普通
TrialLessonis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
TrialLessondeleted_atDATETIME删除时间,未删除为空普通
TrialLessondeleted_byBIGINT删除人账号 ID,未删除为空普通
TrialLessonversionINT乐观锁版本号,写操作必须校验普通
TrialLessontrial_noVARCHAR(64)试听编号,唯一普通
TrialLessonlead_idBIGINT线索 ID普通
TrialLessonstudent_idBIGINT学员 ID普通
TrialLessoncourse_idBIGINT试听课程 ID普通
TrialLessonlesson_timeDATETIME试听时间普通
TrialLessonteacher_idBIGINT试听教师 ID普通
TrialLessontrial_statusVARCHAR(32)待确认/已预约/已到访/未到访/已取消普通
TrialLessonarrival_statusVARCHAR(32)到访状态普通
TrialFeedbackidBIGINT主键,雪花或号段生成,禁止复用普通
TrialFeedbacktenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
TrialFeedbackorg_idBIGINT所属组织,集团级或公共配置为空普通
TrialFeedbackcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
TrialFeedbackcreated_byBIGINT创建人账号 ID普通
TrialFeedbackcreated_atDATETIME创建时间普通
TrialFeedbackupdated_byBIGINT最后更新人账号 ID普通
TrialFeedbackupdated_atDATETIME最后更新时间普通
TrialFeedbackis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
TrialFeedbackdeleted_atDATETIME删除时间,未删除为空普通
TrialFeedbackdeleted_byBIGINT删除人账号 ID,未删除为空普通
TrialFeedbackversionINT乐观锁版本号,写操作必须校验普通
TrialFeedbacktrial_idBIGINT试听预约 ID普通
TrialFeedbackteacher_feedbackTEXT教师反馈普通
TrialFeedbackguardian_ratingDECIMAL(4,2)家长评分普通
TrialFeedbacknext_actionVARCHAR(64)下一步动作普通
TrialFeedbackconversion_statusVARCHAR(32)待转化/已转化/暂不转化/失败普通
LeadAssignmentidBIGINT主键,雪花或号段生成,禁止复用普通
LeadAssignmenttenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
LeadAssignmentorg_idBIGINT所属组织,集团级或公共配置为空普通
LeadAssignmentcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
LeadAssignmentcreated_byBIGINT创建人账号 ID普通
LeadAssignmentcreated_atDATETIME创建时间普通
LeadAssignmentupdated_byBIGINT最后更新人账号 ID普通
LeadAssignmentupdated_atDATETIME最后更新时间普通
LeadAssignmentis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
LeadAssignmentdeleted_atDATETIME删除时间,未删除为空普通
LeadAssignmentdeleted_byBIGINT删除人账号 ID,未删除为空普通
LeadAssignmentversionINT乐观锁版本号,写操作必须校验普通
LeadAssignmentassignment_noVARCHAR(64)分配编号,唯一普通
LeadAssignmentlead_idBIGINT线索 ID普通
LeadAssignmentfrom_owner_idBIGINT原归属人普通
LeadAssignmentto_owner_idBIGINT新归属人普通
LeadAssignmentassignment_reasonVARCHAR(255)分配原因普通
LeadAssignmentassignment_statusVARCHAR(32)待处理/已生效/已驳回普通
LeadAssignmentapproval_statusVARCHAR(32)审批状态,未发起为空普通
LeadAssignmentapproval_instance_idBIGINT关联审批实例 ID普通
DuplicateCandidateidBIGINT主键,雪花或号段生成,禁止复用普通
DuplicateCandidatetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
DuplicateCandidateorg_idBIGINT所属组织,集团级或公共配置为空普通
DuplicateCandidatecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
DuplicateCandidatecreated_byBIGINT创建人账号 ID普通
DuplicateCandidatecreated_atDATETIME创建时间普通
DuplicateCandidateupdated_byBIGINT最后更新人账号 ID普通
DuplicateCandidateupdated_atDATETIME最后更新时间普通
DuplicateCandidateis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
DuplicateCandidatedeleted_atDATETIME删除时间,未删除为空普通
DuplicateCandidatedeleted_byBIGINT删除人账号 ID,未删除为空普通
DuplicateCandidateversionINT乐观锁版本号,写操作必须校验普通
DuplicateCandidatecandidate_noVARCHAR(64)候选编号,唯一普通
DuplicateCandidatesource_biz_typeVARCHAR(64)来源对象类型普通
DuplicateCandidatesource_biz_idBIGINT来源对象 ID普通
DuplicateCandidatematched_biz_idBIGINT疑似重复对象 ID普通
DuplicateCandidatematch_scoreDECIMAL(8,4)匹配分数普通
DuplicateCandidatehandle_statusVARCHAR(32)待处理/已合并/已忽略普通
MergeDisputeidBIGINT主键,雪花或号段生成,禁止复用普通
MergeDisputetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
MergeDisputeorg_idBIGINT所属组织,集团级或公共配置为空普通
MergeDisputecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
MergeDisputecreated_byBIGINT创建人账号 ID普通
MergeDisputecreated_atDATETIME创建时间普通
MergeDisputeupdated_byBIGINT最后更新人账号 ID普通
MergeDisputeupdated_atDATETIME最后更新时间普通
MergeDisputeis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
MergeDisputedeleted_atDATETIME删除时间,未删除为空普通
MergeDisputedeleted_byBIGINT删除人账号 ID,未删除为空普通
MergeDisputeversionINT乐观锁版本号,写操作必须校验普通
MergeDisputedispute_noVARCHAR(64)争议编号,唯一普通
MergeDisputelead_idsJSON涉及线索 ID 列表普通
MergeDisputefamily_idBIGINT客户家庭 ID普通
MergeDisputeowner_candidatesJSON候选归属人列表普通
MergeDisputerestore_snapshotJSON误合并恢复快照普通
MergeDisputearbitrate_statusVARCHAR(32)待仲裁/已通过/已驳回/已恢复普通
MergeDisputeapproval_statusVARCHAR(32)审批状态,未发起为空普通
MergeDisputeapproval_instance_idBIGINT关联审批实例 ID普通

引用对象字段字典

引用表对象字段类型必填规则数据级别
sys_organizationOrganizationidBIGINT主键,雪花或号段生成,禁止复用普通
sys_organizationOrganizationtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_organizationOrganizationorg_idBIGINT所属组织,集团级或公共配置为空普通
sys_organizationOrganizationcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_organizationOrganizationcreated_byBIGINT创建人账号 ID普通
sys_organizationOrganizationcreated_atDATETIME创建时间普通
sys_organizationOrganizationupdated_byBIGINT最后更新人账号 ID普通
sys_organizationOrganizationupdated_atDATETIME最后更新时间普通
sys_organizationOrganizationis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_organizationOrganizationdeleted_atDATETIME删除时间,未删除为空普通
sys_organizationOrganizationdeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_organizationOrganizationversionINT乐观锁版本号,写操作必须校验普通
sys_organizationOrganizationorg_codeVARCHAR(64)组织编码,租户内唯一普通
sys_organizationOrganizationorg_nameVARCHAR(128)组织名称普通
sys_organizationOrganizationorg_typeVARCHAR(32)集团/区域/校区/部门/法人主体普通
sys_organizationOrganizationparent_idBIGINT上级组织 ID,根节点为空普通
sys_organizationOrganizationsort_noINT同级排序普通
sys_organizationOrganizationenabledTINYINT是否启用普通
sys_userUser/EmployeeidBIGINT主键,雪花或号段生成,禁止复用普通
sys_userUser/Employeetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_userUser/Employeeorg_idBIGINT所属组织,集团级或公共配置为空普通
sys_userUser/Employeecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_userUser/Employeecreated_byBIGINT创建人账号 ID普通
sys_userUser/Employeecreated_atDATETIME创建时间普通
sys_userUser/Employeeupdated_byBIGINT最后更新人账号 ID普通
sys_userUser/Employeeupdated_atDATETIME最后更新时间普通
sys_userUser/Employeeis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_userUser/Employeedeleted_atDATETIME删除时间,未删除为空普通
sys_userUser/Employeedeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_userUser/EmployeeversionINT乐观锁版本号,写操作必须校验普通
sys_userUser/Employeeuser_noVARCHAR(64)账号编号,唯一普通
sys_userUser/Employeelogin_nameVARCHAR(64)登录名,唯一普通
sys_userUser/EmployeemobileVARCHAR(32)手机号,敏感脱敏展示敏感
sys_userUser/Employeepassword_hashVARCHAR(255)密码哈希,禁止前端返回高敏
sys_userUser/Employeeuser_typeVARCHAR(32)员工/学员/家长/外部账号普通
sys_userUser/Employeelogin_statusVARCHAR(32)正常/锁定/停用/待激活普通
sys_employeeEmployeeidBIGINT主键,雪花或号段生成,禁止复用普通
sys_employeeEmployeetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_employeeEmployeeorg_idBIGINT所属组织,集团级或公共配置为空普通
sys_employeeEmployeecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_employeeEmployeecreated_byBIGINT创建人账号 ID普通
sys_employeeEmployeecreated_atDATETIME创建时间普通
sys_employeeEmployeeupdated_byBIGINT最后更新人账号 ID普通
sys_employeeEmployeeupdated_atDATETIME最后更新时间普通
sys_employeeEmployeeis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_employeeEmployeedeleted_atDATETIME删除时间,未删除为空普通
sys_employeeEmployeedeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_employeeEmployeeversionINT乐观锁版本号,写操作必须校验普通
sys_employeeEmployeeemployee_noVARCHAR(64)工号,唯一普通
sys_employeeEmployeeuser_idBIGINT关联账号 ID普通
sys_employeeEmployeeemployee_nameVARCHAR(64)员工姓名普通
sys_employeeEmployeeprimary_campus_idBIGINT主校区 ID普通
sys_employeeEmployeejob_titleVARCHAR(64)岗位名称普通
sys_employeeEmployeehire_statusVARCHAR(32)在职/试用/离职/停用普通
sys_roleRoleidBIGINT主键,雪花或号段生成,禁止复用普通
sys_roleRoletenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_roleRoleorg_idBIGINT所属组织,集团级或公共配置为空普通
sys_roleRolecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_roleRolecreated_byBIGINT创建人账号 ID普通
sys_roleRolecreated_atDATETIME创建时间普通
sys_roleRoleupdated_byBIGINT最后更新人账号 ID普通
sys_roleRoleupdated_atDATETIME最后更新时间普通
sys_roleRoleis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_roleRoledeleted_atDATETIME删除时间,未删除为空普通
sys_roleRoledeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_roleRoleversionINT乐观锁版本号,写操作必须校验普通
sys_roleRolerole_codeVARCHAR(64)角色编码,唯一普通
sys_roleRolerole_nameVARCHAR(128)角色名称普通
sys_roleRolerole_levelVARCHAR(32)总部/区域/校区/个人普通
sys_roleRoledata_scope_typeVARCHAR(32)数据范围类型普通
sys_roleRoleenabledTINYINT是否启用普通
sys_approval_flowApprovalFlowidBIGINT主键,雪花或号段生成,禁止复用普通
sys_approval_flowApprovalFlowtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_approval_flowApprovalFloworg_idBIGINT所属组织,集团级或公共配置为空普通
sys_approval_flowApprovalFlowcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_approval_flowApprovalFlowcreated_byBIGINT创建人账号 ID普通
sys_approval_flowApprovalFlowcreated_atDATETIME创建时间普通
sys_approval_flowApprovalFlowupdated_byBIGINT最后更新人账号 ID普通
sys_approval_flowApprovalFlowupdated_atDATETIME最后更新时间普通
sys_approval_flowApprovalFlowis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_approval_flowApprovalFlowdeleted_atDATETIME删除时间,未删除为空普通
sys_approval_flowApprovalFlowdeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_approval_flowApprovalFlowversionINT乐观锁版本号,写操作必须校验普通
sys_approval_flowApprovalFlowflow_codeVARCHAR(64)审批流编码,唯一普通
sys_approval_flowApprovalFlowbiz_typeVARCHAR(64)业务类型普通
sys_approval_flowApprovalFlowflow_nameVARCHAR(128)审批流名称普通
sys_approval_flowApprovalFlowcondition_jsonJSON触发条件普通
sys_approval_flowApprovalFlownode_jsonJSON节点、审批人和超时规则普通
sys_approval_flowApprovalFlowversion_noINT审批流版本号普通
sys_approval_flowApprovalFlowenabledTINYINT是否启用普通
sys_message_templateMessageTemplateidBIGINT主键,雪花或号段生成,禁止复用普通
sys_message_templateMessageTemplatetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_message_templateMessageTemplateorg_idBIGINT所属组织,集团级或公共配置为空普通
sys_message_templateMessageTemplatecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_message_templateMessageTemplatecreated_byBIGINT创建人账号 ID普通
sys_message_templateMessageTemplatecreated_atDATETIME创建时间普通
sys_message_templateMessageTemplateupdated_byBIGINT最后更新人账号 ID普通
sys_message_templateMessageTemplateupdated_atDATETIME最后更新时间普通
sys_message_templateMessageTemplateis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_message_templateMessageTemplatedeleted_atDATETIME删除时间,未删除为空普通
sys_message_templateMessageTemplatedeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_message_templateMessageTemplateversionINT乐观锁版本号,写操作必须校验普通
sys_message_templateMessageTemplatetemplate_codeVARCHAR(64)模板编码,唯一普通
sys_message_templateMessageTemplatetemplate_nameVARCHAR(128)模板名称普通
sys_message_templateMessageTemplatechannelVARCHAR(32)站内信/短信/微信小程序/企微/Push普通
sys_message_templateMessageTemplatereceiver_ruleJSON接收人规则普通
sys_message_templateMessageTemplatecontent_templateTEXT模板内容普通
sys_message_templateMessageTemplateenabledTINYINT是否启用普通
sys_audit_logAuditLogidBIGINT主键,雪花或号段生成,禁止复用普通
sys_audit_logAuditLogtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sys_audit_logAuditLogorg_idBIGINT所属组织,集团级或公共配置为空普通
sys_audit_logAuditLogcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sys_audit_logAuditLogcreated_byBIGINT创建人账号 ID普通
sys_audit_logAuditLogcreated_atDATETIME创建时间普通
sys_audit_logAuditLogupdated_byBIGINT最后更新人账号 ID普通
sys_audit_logAuditLogupdated_atDATETIME最后更新时间普通
sys_audit_logAuditLogis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sys_audit_logAuditLogdeleted_atDATETIME删除时间,未删除为空普通
sys_audit_logAuditLogdeleted_byBIGINT删除人账号 ID,未删除为空普通
sys_audit_logAuditLogversionINT乐观锁版本号,写操作必须校验普通
sys_audit_logAuditLogoperator_idBIGINT操作人 ID普通
sys_audit_logAuditLogbiz_typeVARCHAR(64)业务类型普通
sys_audit_logAuditLogbiz_idBIGINT业务主键 ID普通
sys_audit_logAuditLogaction_codeVARCHAR(64)操作编码普通
sys_audit_logAuditLogbefore_snapshotJSON变更前快照普通
sys_audit_logAuditLogafter_snapshotJSON变更后快照普通
sys_audit_logAuditLogip_addressVARCHAR(64)操作 IP普通
int_integration_logIntegrationLogidBIGINT主键,雪花或号段生成,禁止复用普通
int_integration_logIntegrationLogtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
int_integration_logIntegrationLogorg_idBIGINT所属组织,集团级或公共配置为空普通
int_integration_logIntegrationLogcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
int_integration_logIntegrationLogcreated_byBIGINT创建人账号 ID普通
int_integration_logIntegrationLogcreated_atDATETIME创建时间普通
int_integration_logIntegrationLogupdated_byBIGINT最后更新人账号 ID普通
int_integration_logIntegrationLogupdated_atDATETIME最后更新时间普通
int_integration_logIntegrationLogis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
int_integration_logIntegrationLogdeleted_atDATETIME删除时间,未删除为空普通
int_integration_logIntegrationLogdeleted_byBIGINT删除人账号 ID,未删除为空普通
int_integration_logIntegrationLogversionINT乐观锁版本号,写操作必须校验普通
int_integration_logIntegrationLogrequest_idVARCHAR(128)请求 ID,幂等键普通
int_integration_logIntegrationLogsystem_codeVARCHAR(64)外部系统编码普通
int_integration_logIntegrationLogapi_pathVARCHAR(512)接口路径普通
int_integration_logIntegrationLogbiz_typeVARCHAR(64)业务类型普通
int_integration_logIntegrationLogbiz_idBIGINT业务 ID普通
int_integration_logIntegrationLogrequest_payloadJSON请求报文,敏感字段脱敏敏感
int_integration_logIntegrationLogresponse_payloadJSON响应报文普通
int_integration_logIntegrationLogcall_statusVARCHAR(32)成功/失败/超时/重试中普通
sec_sensitive_field_policySensitiveFieldPolicyidBIGINT主键,雪花或号段生成,禁止复用普通
sec_sensitive_field_policySensitiveFieldPolicytenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
sec_sensitive_field_policySensitiveFieldPolicyorg_idBIGINT所属组织,集团级或公共配置为空普通
sec_sensitive_field_policySensitiveFieldPolicycampus_idBIGINT所属校区,跨校区或总部级数据为空普通
sec_sensitive_field_policySensitiveFieldPolicycreated_byBIGINT创建人账号 ID普通
sec_sensitive_field_policySensitiveFieldPolicycreated_atDATETIME创建时间普通
sec_sensitive_field_policySensitiveFieldPolicyupdated_byBIGINT最后更新人账号 ID普通
sec_sensitive_field_policySensitiveFieldPolicyupdated_atDATETIME最后更新时间普通
sec_sensitive_field_policySensitiveFieldPolicyis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
sec_sensitive_field_policySensitiveFieldPolicydeleted_atDATETIME删除时间,未删除为空普通
sec_sensitive_field_policySensitiveFieldPolicydeleted_byBIGINT删除人账号 ID,未删除为空普通
sec_sensitive_field_policySensitiveFieldPolicyversionINT乐观锁版本号,写操作必须校验普通
sec_sensitive_field_policySensitiveFieldPolicyfield_codeVARCHAR(128)字段编码,唯一普通
sec_sensitive_field_policySensitiveFieldPolicybiz_typeVARCHAR(64)业务类型普通
sec_sensitive_field_policySensitiveFieldPolicymask_ruleVARCHAR(64)脱敏规则普通
sec_sensitive_field_policySensitiveFieldPolicyview_requires_approvalTINYINT明文查看是否需审批普通
sec_sensitive_field_policySensitiveFieldPolicywatermark_requiredTINYINT是否加水印普通
mkt_campaignMarketingCampaignidBIGINT主键,雪花或号段生成,禁止复用普通
mkt_campaignMarketingCampaigntenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
mkt_campaignMarketingCampaignorg_idBIGINT所属组织,集团级或公共配置为空普通
mkt_campaignMarketingCampaigncampus_idBIGINT所属校区,跨校区或总部级数据为空普通
mkt_campaignMarketingCampaigncreated_byBIGINT创建人账号 ID普通
mkt_campaignMarketingCampaigncreated_atDATETIME创建时间普通
mkt_campaignMarketingCampaignupdated_byBIGINT最后更新人账号 ID普通
mkt_campaignMarketingCampaignupdated_atDATETIME最后更新时间普通
mkt_campaignMarketingCampaignis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
mkt_campaignMarketingCampaigndeleted_atDATETIME删除时间,未删除为空普通
mkt_campaignMarketingCampaigndeleted_byBIGINT删除人账号 ID,未删除为空普通
mkt_campaignMarketingCampaignversionINT乐观锁版本号,写操作必须校验普通
mkt_campaignMarketingCampaigncampaign_codeVARCHAR(64)活动编码,唯一普通
mkt_campaignMarketingCampaigncampaign_nameVARCHAR(128)活动名称普通
mkt_campaignMarketingCampaignchannel_idBIGINT所属渠道普通
mkt_campaignMarketingCampaigncampus_scopeJSON适用校区范围普通
mkt_campaignMarketingCampaignstart_atDATETIME开始时间普通
mkt_campaignMarketingCampaignend_atDATETIME结束时间普通
mkt_campaignMarketingCampaignbiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
mkt_campaignMarketingCampaignremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
mkt_form_submitCampaignFormSubmitidBIGINT主键,雪花或号段生成,禁止复用普通
mkt_form_submitCampaignFormSubmittenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
mkt_form_submitCampaignFormSubmitorg_idBIGINT所属组织,集团级或公共配置为空普通
mkt_form_submitCampaignFormSubmitcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
mkt_form_submitCampaignFormSubmitcreated_byBIGINT创建人账号 ID普通
mkt_form_submitCampaignFormSubmitcreated_atDATETIME创建时间普通
mkt_form_submitCampaignFormSubmitupdated_byBIGINT最后更新人账号 ID普通
mkt_form_submitCampaignFormSubmitupdated_atDATETIME最后更新时间普通
mkt_form_submitCampaignFormSubmitis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
mkt_form_submitCampaignFormSubmitdeleted_atDATETIME删除时间,未删除为空普通
mkt_form_submitCampaignFormSubmitdeleted_byBIGINT删除人账号 ID,未删除为空普通
mkt_form_submitCampaignFormSubmitversionINT乐观锁版本号,写操作必须校验普通
mkt_form_submitCampaignFormSubmitsubmit_noVARCHAR(64)提交编号,唯一普通
mkt_form_submitCampaignFormSubmitpage_idBIGINT页面 ID普通
mkt_form_submitCampaignFormSubmitguardian_mobileVARCHAR(32)家长手机号,敏感敏感
mkt_form_submitCampaignFormSubmitstudent_nameVARCHAR(64)学员姓名普通
mkt_form_submitCampaignFormSubmitform_dataJSON表单完整提交数据普通
mkt_form_submitCampaignFormSubmitlead_idBIGINT转化生成线索 ID普通
mkt_form_submitCampaignFormSubmitsubmit_statusVARCHAR(32)成功/失败/重复/风控拦截普通
edu_courseCourse/ProductidBIGINT主键,雪花或号段生成,禁止复用普通
edu_courseCourse/Producttenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
edu_courseCourse/Productorg_idBIGINT所属组织,集团级或公共配置为空普通
edu_courseCourse/Productcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
edu_courseCourse/Productcreated_byBIGINT创建人账号 ID普通
edu_courseCourse/Productcreated_atDATETIME创建时间普通
edu_courseCourse/Productupdated_byBIGINT最后更新人账号 ID普通
edu_courseCourse/Productupdated_atDATETIME最后更新时间普通
edu_courseCourse/Productis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
edu_courseCourse/Productdeleted_atDATETIME删除时间,未删除为空普通
edu_courseCourse/Productdeleted_byBIGINT删除人账号 ID,未删除为空普通
edu_courseCourse/ProductversionINT乐观锁版本号,写操作必须校验普通
edu_courseCourse/Productcourse_codeVARCHAR(64)课程编码,唯一普通
edu_courseCourse/Productcourse_nameVARCHAR(128)课程名称普通
edu_courseCourse/ProductsubjectVARCHAR(32)学科普通
edu_courseCourse/Productcourse_typeVARCHAR(32)班课/一对一/直播/录播普通
edu_courseCourse/Productgrade_scopeJSON适用年级普通
edu_courseCourse/ProductenabledTINYINT是否启用普通
con_contractContractidBIGINT主键,雪花或号段生成,禁止复用普通
con_contractContracttenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
con_contractContractorg_idBIGINT所属组织,集团级或公共配置为空普通
con_contractContractcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
con_contractContractcreated_byBIGINT创建人账号 ID普通
con_contractContractcreated_atDATETIME创建时间普通
con_contractContractupdated_byBIGINT最后更新人账号 ID普通
con_contractContractupdated_atDATETIME最后更新时间普通
con_contractContractis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
con_contractContractdeleted_atDATETIME删除时间,未删除为空普通
con_contractContractdeleted_byBIGINT删除人账号 ID,未删除为空普通
con_contractContractversionINT乐观锁版本号,写操作必须校验普通
con_contractContractcontract_noVARCHAR(64)合同编号,唯一普通
con_contractContractstudent_idBIGINT学员 ID普通
con_contractContractfamily_idBIGINT客户家庭 ID普通
con_contractContracttemplate_idBIGINT合同模板 ID普通
con_contractContractemployee_idBIGINT创建合同的销售/市场/课程顾问员工 ID普通
con_contractContractsource_terminalVARCHAR(32)来源终端,教师端 App/小程序或 PC 管理端普通
con_contractContractsimulation_idBIGINT关联优惠试算 ID普通
con_contractContractextra_discount_apply_idBIGINT关联额外折扣申请 ID普通
con_contractContracthand_sign_statusVARCHAR(32)待手写签字/已手写签字/签字作废普通
con_contractContractsign_statusVARCHAR(32)待家长签署/已手写签字/已作废普通
con_contractContractpayment_statusVARCHAR(32)待支付/支付中/支付成功/支付失败/已关闭普通
con_contractContractenterprise_seal_statusVARCHAR(32)未触发/盖章中/已盖章/盖章失败/已归档普通
con_contractContractcontract_statusVARCHAR(32)草稿/生效/履约中/已终止/已退费普通
con_contractContractsupervision_statusVARCHAR(32)监管报送状态普通
con_contractContractcurrencyVARCHAR(8)币种,默认 CNY普通
con_contractContractamountDECIMAL(18,2)含税金额,必须大于等于 0普通
con_contractContracttax_amountDECIMAL(18,2)税额,按发票或税率计算普通
con_contractContractapproval_statusVARCHAR(32)审批状态,未发起为空普通
con_contractContractapproval_instance_idBIGINT关联审批实例 ID普通
ord_orderOrderidBIGINT主键,雪花或号段生成,禁止复用普通
ord_orderOrdertenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
ord_orderOrderorg_idBIGINT所属组织,集团级或公共配置为空普通
ord_orderOrdercampus_idBIGINT所属校区,跨校区或总部级数据为空普通
ord_orderOrdercreated_byBIGINT创建人账号 ID普通
ord_orderOrdercreated_atDATETIME创建时间普通
ord_orderOrderupdated_byBIGINT最后更新人账号 ID普通
ord_orderOrderupdated_atDATETIME最后更新时间普通
ord_orderOrderis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
ord_orderOrderdeleted_atDATETIME删除时间,未删除为空普通
ord_orderOrderdeleted_byBIGINT删除人账号 ID,未删除为空普通
ord_orderOrderversionINT乐观锁版本号,写操作必须校验普通
ord_orderOrderorder_noVARCHAR(64)订单编号,唯一普通
ord_orderOrdercontract_idBIGINT合同 ID普通
ord_orderOrderstudent_idBIGINT学员 ID普通
ord_orderOrderreceivable_amountDECIMAL(18,2)应收金额普通
ord_orderOrderdiscount_amountDECIMAL(18,2)优惠金额普通
ord_orderOrderpaid_amountDECIMAL(18,2)已收金额普通
ord_orderOrderorder_statusVARCHAR(32)待支付/支付中/已支付/已关闭普通
ser_service_ticketServiceTicketidBIGINT主键,雪花或号段生成,禁止复用普通
ser_service_ticketServiceTickettenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
ser_service_ticketServiceTicketorg_idBIGINT所属组织,集团级或公共配置为空普通
ser_service_ticketServiceTicketcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
ser_service_ticketServiceTicketcreated_byBIGINT创建人账号 ID普通
ser_service_ticketServiceTicketcreated_atDATETIME创建时间普通
ser_service_ticketServiceTicketupdated_byBIGINT最后更新人账号 ID普通
ser_service_ticketServiceTicketupdated_atDATETIME最后更新时间普通
ser_service_ticketServiceTicketis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
ser_service_ticketServiceTicketdeleted_atDATETIME删除时间,未删除为空普通
ser_service_ticketServiceTicketdeleted_byBIGINT删除人账号 ID,未删除为空普通
ser_service_ticketServiceTicketversionINT乐观锁版本号,写操作必须校验普通
ser_service_ticketServiceTicketticket_noVARCHAR(64)工单编号,唯一普通
ser_service_ticketServiceTicketstudent_idBIGINT学员 ID普通
ser_service_ticketServiceTicketguardian_idBIGINT家长 ID普通
ser_service_ticketServiceTicketticket_typeVARCHAR(32)咨询/投诉/风险/售后/转介绍普通
ser_service_ticketServiceTicketticket_contentTEXT工单内容普通
ser_service_ticketServiceTicketpriorityVARCHAR(32)普通/紧急/高风险普通
ser_service_ticketServiceTicketticket_statusVARCHAR(32)待处理/处理中/待确认/已关闭普通

JSON 字段结构与校验

表名对象字段结构编码结构定义校验规则示例
crm_role_terminal_policyCRMRoleTerminalPolicymenu_codesGENERICobject | array必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本{"version":1,"items":[]}
crm_role_terminal_policyCRMRoleTerminalPolicybutton_codesGENERICobject | array必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本{"version":1,"items":[]}
crm_role_terminal_policyCRMRoleTerminalPolicyfield_policy_jsonPERMISSION_POLICY{menus:string[], buttons:string[], fields:{fieldCode:string, action:string}[], dataScope:object}权限变更写审计并刷新缓存{"menus":["CRM_LEAD"],"dataScope":{"scopeType":"SELF"}}
crm_role_terminal_policyCRMRoleTerminalPolicydata_scope_rulePERMISSION_POLICY{menus:string[], buttons:string[], fields:{fieldCode:string, action:string}[], dataScope:object}权限变更写审计并刷新缓存{"menus":["CRM_LEAD"],"dataScope":{"scopeType":"SELF"}}
crm_merge_disputeMergeDisputelead_idsGENERICobject | array必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本{"version":1,"items":[]}
crm_merge_disputeMergeDisputeowner_candidatesGENERICobject | array必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本{"version":1,"items":[]}
crm_merge_disputeMergeDisputerestore_snapshotAUDIT_SNAPSHOT{before?:object, after?:object, changedFields:string[], maskPolicy:string}敏感字段必须按脱敏策略写入,不允许存储明文密码或密钥{"changedFields":["owner_id"],"maskPolicy":"MOBILE_MASK"}

状态/枚举标准字典

表名对象字段枚举编码取值终态/流转规则字段说明
crm_role_terminal_policyCRMRoleTerminalPolicytenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_role_terminal_policyCRMRoleTerminalPolicyis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_role_terminal_policyCRMRoleTerminalPolicyterminal_scopeTERMINAL_SCOPEPC Web、教师 App、教师小程序非终态,可按状态机或字典规则流转PC Web/教师 App/教师小程序
crm_role_terminal_policyCRMRoleTerminalPolicyfield_policy_jsonFIELD_POLICY_JSON字段明文、脱敏、隐藏策略非终态,可按状态机或字典规则流转字段明文/脱敏/隐藏策略
crm_role_terminal_policyCRMRoleTerminalPolicyenabledENABLED_STATUS0 停用、1 启用非终态,可按状态机或字典规则流转是否启用
crm_leadLeadtenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_leadLeadis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_leadLeadsource_channelSOURCE_CHANNELDOUYIN 抖音、XIAOHONGSHU 小红书、MEITUAN 美团、WECHAT 公众号/小程序、GROUND_PUSH 地推、REFERRAL 转介绍、NATURAL 自然到访、IMPORT 批量导入、OTHER 其他非终态,可按状态机或字典规则流转来源渠道
crm_leadLeadowner_idOWNER_ID当前归属销售、顾问非终态,可按状态机或字典规则流转当前归属销售/顾问
crm_leadLeadduplicate_statusDUPLICATE_STATUS未查重、疑似重复、已合并、已忽略非终态,可按状态机或字典规则流转未查重/疑似重复/已合并/已忽略
crm_leadLeadbiz_statusBIZ_STATUSDRAFT 草稿、SUBMITTED 已提交、PROCESSING 处理中、ACTIVE 生效中、SUSPENDED 已暂停、CLOSED 已关闭、CANCELLED 已取消包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程业务状态,取值来自状态机字典
crm_customer_familyCustomerFamilytenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_customer_familyCustomerFamilyis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_customer_familyCustomerFamilyrisk_levelRISK_LEVELLOW 低、MEDIUM 中、HIGH 高、CRITICAL 严重非终态,可按状态机或字典规则流转风险等级
crm_customer_familyCustomerFamilybiz_statusBIZ_STATUSDRAFT 草稿、SUBMITTED 已提交、PROCESSING 处理中、ACTIVE 生效中、SUSPENDED 已暂停、CLOSED 已关闭、CANCELLED 已取消包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程业务状态,取值来自状态机字典
crm_guardianGuardiantenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_guardianGuardianis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_guardianGuardianrelationshipRELATIONSHIPFATHER 父亲、MOTHER 母亲、GRANDFATHER 祖父/外祖父、GRANDMOTHER 祖母/外祖母、OTHER 其他监护关系非终态,可按状态机或字典规则流转与学员关系
crm_guardianGuardianverify_statusVERIFY_STATUS未验证、已验证、已解绑非终态,可按状态机或字典规则流转未验证/已验证/已解绑
stu_studentStudenttenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
stu_studentStudentis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
stu_studentStudentgenderGENDERMALE 男、FEMALE 女、UNKNOWN 未知/未填写非终态,可按状态机或字典规则流转性别
stu_studentStudentbiz_statusBIZ_STATUSDRAFT 草稿、SUBMITTED 已提交、PROCESSING 处理中、ACTIVE 生效中、SUSPENDED 已暂停、CLOSED 已关闭、CANCELLED 已取消包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程业务状态,取值来自状态机字典
crm_follow_recordFollowRecordtenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_follow_recordFollowRecordis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_follow_recordFollowRecordfollow_typeFOLLOW_TYPE电话、微信、到访、试听、其他非终态,可按状态机或字典规则流转电话/微信/到访/试听/其他
crm_follow_recordFollowRecordfollow_resultFOLLOW_RESULT有效、无效、待跟进、转化非终态,可按状态机或字典规则流转有效/无效/待跟进/转化
crm_trial_lessonTrialLessontenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_trial_lessonTrialLessonis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_trial_lessonTrialLessontrial_statusTRIAL_STATUS待确认、已预约、已到访、未到访、已取消包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程待确认/已预约/已到访/未到访/已取消
crm_trial_lessonTrialLessonarrival_statusARRIVAL_STATUSPENDING 待确认、ARRIVED 已到访、NO_SHOW 未到访、RESCHEDULED 已改约、CANCELLED 已取消包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程到访状态
crm_trial_feedbackTrialFeedbacktenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_trial_feedbackTrialFeedbackis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_trial_feedbackTrialFeedbackconversion_statusCONVERSION_STATUS待转化、已转化、暂不转化、失败包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程待转化/已转化/暂不转化/失败
crm_lead_assignmentLeadAssignmenttenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_lead_assignmentLeadAssignmentis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_lead_assignmentLeadAssignmentassignment_statusASSIGNMENT_STATUS待处理、已生效、已驳回非终态,可按状态机或字典规则流转待处理/已生效/已驳回
crm_lead_assignmentLeadAssignmentapproval_statusAPPROVAL_STATUSNOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回非终态,可按状态机或字典规则流转审批状态,未发起为空
crm_duplicate_candidateDuplicateCandidatetenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_duplicate_candidateDuplicateCandidateis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_duplicate_candidateDuplicateCandidatesource_biz_typeSOURCE_BIZ_TYPEMARKETING_FORM 活动表单、LIVE_PUBLIC 公开课直播、CRM_IMPORT CRM导入、PARENT_REFERRAL 家长转介绍、SERVICE_TICKET 服务工单、PAYMENT 支付、DEVICE_EVENT 设备事件、MANUAL 手工录入非终态,可按状态机或字典规则流转来源对象类型
crm_duplicate_candidateDuplicateCandidatehandle_statusHANDLE_STATUS待处理、已合并、已忽略非终态,可按状态机或字典规则流转待处理/已合并/已忽略
crm_merge_disputeMergeDisputetenant_idTENANT_ID集团、租户隔离字段非终态,可按状态机或字典规则流转集团/租户隔离字段,所有查询必须带租户上下文
crm_merge_disputeMergeDisputeis_deletedBOOL_DELETED0 未删除、1 已删除非终态,可按状态机或字典规则流转是否已删除,0 未删除,1 已删除
crm_merge_disputeMergeDisputearbitrate_statusARBITRATE_STATUS待仲裁、已通过、已驳回、已恢复非终态,可按状态机或字典规则流转待仲裁/已通过/已驳回/已恢复
crm_merge_disputeMergeDisputeapproval_statusAPPROVAL_STATUSNOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回非终态,可按状态机或字典规则流转审批状态,未发起为空

敏感字段与数据安全策略

来源表名对象字段数据级别脱敏/返回策略明文查看条件导出策略审计要求端侧展示规则
本模块对象crm_role_terminal_policyCRMRoleTerminalPolicyfield_policy_json普通PAYLOAD_DESENSITIZE接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段查看报文、下载附件、失败重放和人工补偿均记录审计业务端展示摘要和状态,完整报文仅运维/安全后台查看
本模块对象crm_leadLeadguardian_mobile敏感MOBILE_MASK默认展示 138****0000;明文查看需字段权限或敏感字段查看审批导出手机号必须触发导出审批、下载水印和有效期控制明文查看、复制、导出和批量下载均写入 SensitiveAccessLogPC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息
本模块对象crm_leadLeadremark普通BIZ_FIELD_MASK按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行导出时按数据级别触发审批、水印、下载有效期和日志查看、修改、删除、导出、下载和审批均记录操作审计默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则
本模块对象crm_customer_familyCustomerFamilyremark普通BIZ_FIELD_MASK按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行导出时按数据级别触发审批、水印、下载有效期和日志查看、修改、删除、导出、下载和审批均记录操作审计默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则
本模块对象crm_guardianGuardianmobile敏感MOBILE_MASK默认展示 138****0000;明文查看需字段权限或敏感字段查看审批导出手机号必须触发导出审批、下载水印和有效期控制明文查看、复制、导出和批量下载均写入 SensitiveAccessLogPC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息
本模块对象crm_guardianGuardianwechat_openid敏感BIZ_FIELD_MASK按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行导出时按数据级别触发审批、水印、下载有效期和日志查看、修改、删除、导出、下载和审批均记录操作审计默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则
本模块对象stu_studentStudentremark普通BIZ_FIELD_MASK按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行导出时按数据级别触发审批、水印、下载有效期和日志查看、修改、删除、导出、下载和审批均记录操作审计默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则
引用对象sys_userUser/Employeemobile敏感MOBILE_MASK默认展示 138****0000;明文查看需字段权限或敏感字段查看审批导出手机号必须触发导出审批、下载水印和有效期控制明文查看、复制、导出和批量下载均写入 SensitiveAccessLogPC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息
引用对象sys_userUser/Employeepassword_hash高敏NEVER_RETURN禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用禁止导出;配置导出只允许导出脱敏引用和启停状态配置新增、修改、启停、轮换和失败读取均记录安全审计前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值
引用对象int_integration_logIntegrationLogrequest_payload敏感PAYLOAD_DESENSITIZE接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段查看报文、下载附件、失败重放和人工补偿均记录审计业务端展示摘要和状态,完整报文仅运维/安全后台查看
引用对象int_integration_logIntegrationLogresponse_payload普通PAYLOAD_DESENSITIZE接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段查看报文、下载附件、失败重放和人工补偿均记录审计业务端展示摘要和状态,完整报文仅运维/安全后台查看
引用对象sec_sensitive_field_policySensitiveFieldPolicymask_rule普通BIZ_FIELD_MASK按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行导出时按数据级别触发审批、水印、下载有效期和日志查看、修改、删除、导出、下载和审批均记录操作审计默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则
引用对象mkt_campaignMarketingCampaignremark普通BIZ_FIELD_MASK按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行导出时按数据级别触发审批、水印、下载有效期和日志查看、修改、删除、导出、下载和审批均记录操作审计默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则
引用对象mkt_form_submitCampaignFormSubmitguardian_mobile敏感MOBILE_MASK默认展示 138****0000;明文查看需字段权限或敏感字段查看审批导出手机号必须触发导出审批、下载水印和有效期控制明文查看、复制、导出和批量下载均写入 SensitiveAccessLogPC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息
引用对象con_contractContracttax_amount普通TAX_INVOICE_MASK默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看财务导出需审批并加水印;国税官方回执随业务单归档OCR、核验、查重、人工校正、导出和付款阻断均留痕移动端可上传和查看本人报销结果,不展示其他人员票据明文

核心数据表完整字段

表名对象字段类型必填规则数据级别
crm_role_terminal_policyCRMRoleTerminalPolicyidBIGINT主键,雪花或号段生成,禁止复用普通
crm_role_terminal_policyCRMRoleTerminalPolicytenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_role_terminal_policyCRMRoleTerminalPolicyorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_role_terminal_policyCRMRoleTerminalPolicycampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_role_terminal_policyCRMRoleTerminalPolicycreated_byBIGINT创建人账号 ID普通
crm_role_terminal_policyCRMRoleTerminalPolicycreated_atDATETIME创建时间普通
crm_role_terminal_policyCRMRoleTerminalPolicyupdated_byBIGINT最后更新人账号 ID普通
crm_role_terminal_policyCRMRoleTerminalPolicyupdated_atDATETIME最后更新时间普通
crm_role_terminal_policyCRMRoleTerminalPolicyis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_role_terminal_policyCRMRoleTerminalPolicydeleted_atDATETIME删除时间,未删除为空普通
crm_role_terminal_policyCRMRoleTerminalPolicydeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_role_terminal_policyCRMRoleTerminalPolicyversionINT乐观锁版本号,写操作必须校验普通
crm_role_terminal_policyCRMRoleTerminalPolicyrole_codeVARCHAR(64)角色编码普通
crm_role_terminal_policyCRMRoleTerminalPolicyterminal_scopeVARCHAR(64)PC Web/教师 App/教师小程序普通
crm_role_terminal_policyCRMRoleTerminalPolicymenu_codesJSON可见菜单普通
crm_role_terminal_policyCRMRoleTerminalPolicybutton_codesJSON可见按钮普通
crm_role_terminal_policyCRMRoleTerminalPolicyfield_policy_jsonJSON字段明文/脱敏/隐藏策略普通
crm_role_terminal_policyCRMRoleTerminalPolicydata_scope_ruleJSON数据范围规则普通
crm_role_terminal_policyCRMRoleTerminalPolicyenabledTINYINT是否启用普通
crm_leadLeadidBIGINT主键,雪花或号段生成,禁止复用普通
crm_leadLeadtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_leadLeadorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_leadLeadcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_leadLeadcreated_byBIGINT创建人账号 ID普通
crm_leadLeadcreated_atDATETIME创建时间普通
crm_leadLeadupdated_byBIGINT最后更新人账号 ID普通
crm_leadLeadupdated_atDATETIME最后更新时间普通
crm_leadLeadis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_leadLeaddeleted_atDATETIME删除时间,未删除为空普通
crm_leadLeaddeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_leadLeadversionINT乐观锁版本号,写操作必须校验普通
crm_leadLeadlead_noVARCHAR(64)线索编号,唯一普通
crm_leadLeadsource_channelVARCHAR(64)来源渠道普通
crm_leadLeadcampaign_idBIGINT来源活动 ID普通
crm_leadLeadguardian_mobileVARCHAR(32)家长手机号,敏感敏感
crm_leadLeadstudent_nameVARCHAR(64)学员姓名普通
crm_leadLeadintent_course_idBIGINT意向课程普通
crm_leadLeadowner_idBIGINT当前归属销售/顾问普通
crm_leadLeadprotect_untilDATETIME保护期截止时间普通
crm_leadLeadduplicate_statusVARCHAR(32)未查重/疑似重复/已合并/已忽略普通
crm_leadLeadbiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
crm_leadLeadremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
crm_customer_familyCustomerFamilyidBIGINT主键,雪花或号段生成,禁止复用普通
crm_customer_familyCustomerFamilytenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_customer_familyCustomerFamilyorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_customer_familyCustomerFamilycampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_customer_familyCustomerFamilycreated_byBIGINT创建人账号 ID普通
crm_customer_familyCustomerFamilycreated_atDATETIME创建时间普通
crm_customer_familyCustomerFamilyupdated_byBIGINT最后更新人账号 ID普通
crm_customer_familyCustomerFamilyupdated_atDATETIME最后更新时间普通
crm_customer_familyCustomerFamilyis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_customer_familyCustomerFamilydeleted_atDATETIME删除时间,未删除为空普通
crm_customer_familyCustomerFamilydeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_customer_familyCustomerFamilyversionINT乐观锁版本号,写操作必须校验普通
crm_customer_familyCustomerFamilyfamily_noVARCHAR(64)家庭编号,唯一普通
crm_customer_familyCustomerFamilyprimary_guardian_idBIGINT主监护人 ID普通
crm_customer_familyCustomerFamilystudent_idBIGINT主学员 ID普通
crm_customer_familyCustomerFamilyowner_idBIGINT客户归属人普通
crm_customer_familyCustomerFamilyrisk_levelVARCHAR(32)风险等级普通
crm_customer_familyCustomerFamilylast_follow_atDATETIME最近跟进时间普通
crm_customer_familyCustomerFamilybiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
crm_customer_familyCustomerFamilyremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
crm_guardianGuardianidBIGINT主键,雪花或号段生成,禁止复用普通
crm_guardianGuardiantenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_guardianGuardianorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_guardianGuardiancampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_guardianGuardiancreated_byBIGINT创建人账号 ID普通
crm_guardianGuardiancreated_atDATETIME创建时间普通
crm_guardianGuardianupdated_byBIGINT最后更新人账号 ID普通
crm_guardianGuardianupdated_atDATETIME最后更新时间普通
crm_guardianGuardianis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_guardianGuardiandeleted_atDATETIME删除时间,未删除为空普通
crm_guardianGuardiandeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_guardianGuardianversionINT乐观锁版本号,写操作必须校验普通
crm_guardianGuardianfamily_idBIGINT家庭 ID普通
crm_guardianGuardianguardian_nameVARCHAR(64)监护人姓名普通
crm_guardianGuardianmobileVARCHAR(32)手机号,敏感敏感
crm_guardianGuardianrelationshipVARCHAR(32)与学员关系普通
crm_guardianGuardianwechat_openidVARCHAR(128)微信 OpenID,敏感敏感
crm_guardianGuardianverify_statusVARCHAR(32)未验证/已验证/已解绑普通
stu_studentStudentidBIGINT主键,雪花或号段生成,禁止复用普通
stu_studentStudenttenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
stu_studentStudentorg_idBIGINT所属组织,集团级或公共配置为空普通
stu_studentStudentcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
stu_studentStudentcreated_byBIGINT创建人账号 ID普通
stu_studentStudentcreated_atDATETIME创建时间普通
stu_studentStudentupdated_byBIGINT最后更新人账号 ID普通
stu_studentStudentupdated_atDATETIME最后更新时间普通
stu_studentStudentis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
stu_studentStudentdeleted_atDATETIME删除时间,未删除为空普通
stu_studentStudentdeleted_byBIGINT删除人账号 ID,未删除为空普通
stu_studentStudentversionINT乐观锁版本号,写操作必须校验普通
stu_studentStudentstudent_noVARCHAR(64)学员编号,唯一普通
stu_studentStudentfamily_idBIGINT家庭 ID普通
stu_studentStudentstudent_nameVARCHAR(64)学员姓名普通
stu_studentStudentgenderVARCHAR(16)性别普通
stu_studentStudentbirthdayDATE出生日期普通
stu_studentStudentgradeVARCHAR(32)年级普通
stu_studentStudentschool_nameVARCHAR(128)学校名称普通
stu_studentStudentbiz_statusVARCHAR(32)业务状态,取值来自状态机字典普通
stu_studentStudentremarkVARCHAR(512)业务备注,敏感内容按权限脱敏普通
crm_follow_recordFollowRecordidBIGINT主键,雪花或号段生成,禁止复用普通
crm_follow_recordFollowRecordtenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_follow_recordFollowRecordorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_follow_recordFollowRecordcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_follow_recordFollowRecordcreated_byBIGINT创建人账号 ID普通
crm_follow_recordFollowRecordcreated_atDATETIME创建时间普通
crm_follow_recordFollowRecordupdated_byBIGINT最后更新人账号 ID普通
crm_follow_recordFollowRecordupdated_atDATETIME最后更新时间普通
crm_follow_recordFollowRecordis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_follow_recordFollowRecorddeleted_atDATETIME删除时间,未删除为空普通
crm_follow_recordFollowRecorddeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_follow_recordFollowRecordversionINT乐观锁版本号,写操作必须校验普通
crm_follow_recordFollowRecordlead_idBIGINT线索 ID普通
crm_follow_recordFollowRecordfamily_idBIGINT客户家庭 ID普通
crm_follow_recordFollowRecordowner_idBIGINT跟进人 ID普通
crm_follow_recordFollowRecordfollow_typeVARCHAR(32)电话/微信/到访/试听/其他普通
crm_follow_recordFollowRecordfollow_contentTEXT跟进内容普通
crm_follow_recordFollowRecordnext_follow_atDATETIME下次跟进时间普通
crm_follow_recordFollowRecordfollow_resultVARCHAR(32)有效/无效/待跟进/转化普通
crm_trial_lessonTrialLessonidBIGINT主键,雪花或号段生成,禁止复用普通
crm_trial_lessonTrialLessontenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_trial_lessonTrialLessonorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_trial_lessonTrialLessoncampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_trial_lessonTrialLessoncreated_byBIGINT创建人账号 ID普通
crm_trial_lessonTrialLessoncreated_atDATETIME创建时间普通
crm_trial_lessonTrialLessonupdated_byBIGINT最后更新人账号 ID普通
crm_trial_lessonTrialLessonupdated_atDATETIME最后更新时间普通
crm_trial_lessonTrialLessonis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_trial_lessonTrialLessondeleted_atDATETIME删除时间,未删除为空普通
crm_trial_lessonTrialLessondeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_trial_lessonTrialLessonversionINT乐观锁版本号,写操作必须校验普通
crm_trial_lessonTrialLessontrial_noVARCHAR(64)试听编号,唯一普通
crm_trial_lessonTrialLessonlead_idBIGINT线索 ID普通
crm_trial_lessonTrialLessonstudent_idBIGINT学员 ID普通
crm_trial_lessonTrialLessoncourse_idBIGINT试听课程 ID普通
crm_trial_lessonTrialLessonlesson_timeDATETIME试听时间普通
crm_trial_lessonTrialLessonteacher_idBIGINT试听教师 ID普通
crm_trial_lessonTrialLessontrial_statusVARCHAR(32)待确认/已预约/已到访/未到访/已取消普通
crm_trial_lessonTrialLessonarrival_statusVARCHAR(32)到访状态普通
crm_trial_feedbackTrialFeedbackidBIGINT主键,雪花或号段生成,禁止复用普通
crm_trial_feedbackTrialFeedbacktenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_trial_feedbackTrialFeedbackorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_trial_feedbackTrialFeedbackcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_trial_feedbackTrialFeedbackcreated_byBIGINT创建人账号 ID普通
crm_trial_feedbackTrialFeedbackcreated_atDATETIME创建时间普通
crm_trial_feedbackTrialFeedbackupdated_byBIGINT最后更新人账号 ID普通
crm_trial_feedbackTrialFeedbackupdated_atDATETIME最后更新时间普通
crm_trial_feedbackTrialFeedbackis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_trial_feedbackTrialFeedbackdeleted_atDATETIME删除时间,未删除为空普通
crm_trial_feedbackTrialFeedbackdeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_trial_feedbackTrialFeedbackversionINT乐观锁版本号,写操作必须校验普通
crm_trial_feedbackTrialFeedbacktrial_idBIGINT试听预约 ID普通
crm_trial_feedbackTrialFeedbackteacher_feedbackTEXT教师反馈普通
crm_trial_feedbackTrialFeedbackguardian_ratingDECIMAL(4,2)家长评分普通
crm_trial_feedbackTrialFeedbacknext_actionVARCHAR(64)下一步动作普通
crm_trial_feedbackTrialFeedbackconversion_statusVARCHAR(32)待转化/已转化/暂不转化/失败普通
crm_lead_assignmentLeadAssignmentidBIGINT主键,雪花或号段生成,禁止复用普通
crm_lead_assignmentLeadAssignmenttenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_lead_assignmentLeadAssignmentorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_lead_assignmentLeadAssignmentcampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_lead_assignmentLeadAssignmentcreated_byBIGINT创建人账号 ID普通
crm_lead_assignmentLeadAssignmentcreated_atDATETIME创建时间普通
crm_lead_assignmentLeadAssignmentupdated_byBIGINT最后更新人账号 ID普通
crm_lead_assignmentLeadAssignmentupdated_atDATETIME最后更新时间普通
crm_lead_assignmentLeadAssignmentis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_lead_assignmentLeadAssignmentdeleted_atDATETIME删除时间,未删除为空普通
crm_lead_assignmentLeadAssignmentdeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_lead_assignmentLeadAssignmentversionINT乐观锁版本号,写操作必须校验普通
crm_lead_assignmentLeadAssignmentassignment_noVARCHAR(64)分配编号,唯一普通
crm_lead_assignmentLeadAssignmentlead_idBIGINT线索 ID普通
crm_lead_assignmentLeadAssignmentfrom_owner_idBIGINT原归属人普通
crm_lead_assignmentLeadAssignmentto_owner_idBIGINT新归属人普通
crm_lead_assignmentLeadAssignmentassignment_reasonVARCHAR(255)分配原因普通
crm_lead_assignmentLeadAssignmentassignment_statusVARCHAR(32)待处理/已生效/已驳回普通
crm_lead_assignmentLeadAssignmentapproval_statusVARCHAR(32)审批状态,未发起为空普通
crm_lead_assignmentLeadAssignmentapproval_instance_idBIGINT关联审批实例 ID普通
crm_duplicate_candidateDuplicateCandidateidBIGINT主键,雪花或号段生成,禁止复用普通
crm_duplicate_candidateDuplicateCandidatetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_duplicate_candidateDuplicateCandidateorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_duplicate_candidateDuplicateCandidatecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_duplicate_candidateDuplicateCandidatecreated_byBIGINT创建人账号 ID普通
crm_duplicate_candidateDuplicateCandidatecreated_atDATETIME创建时间普通
crm_duplicate_candidateDuplicateCandidateupdated_byBIGINT最后更新人账号 ID普通
crm_duplicate_candidateDuplicateCandidateupdated_atDATETIME最后更新时间普通
crm_duplicate_candidateDuplicateCandidateis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_duplicate_candidateDuplicateCandidatedeleted_atDATETIME删除时间,未删除为空普通
crm_duplicate_candidateDuplicateCandidatedeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_duplicate_candidateDuplicateCandidateversionINT乐观锁版本号,写操作必须校验普通
crm_duplicate_candidateDuplicateCandidatecandidate_noVARCHAR(64)候选编号,唯一普通
crm_duplicate_candidateDuplicateCandidatesource_biz_typeVARCHAR(64)来源对象类型普通
crm_duplicate_candidateDuplicateCandidatesource_biz_idBIGINT来源对象 ID普通
crm_duplicate_candidateDuplicateCandidatematched_biz_idBIGINT疑似重复对象 ID普通
crm_duplicate_candidateDuplicateCandidatematch_scoreDECIMAL(8,4)匹配分数普通
crm_duplicate_candidateDuplicateCandidatehandle_statusVARCHAR(32)待处理/已合并/已忽略普通
crm_merge_disputeMergeDisputeidBIGINT主键,雪花或号段生成,禁止复用普通
crm_merge_disputeMergeDisputetenant_idBIGINT集团/租户隔离字段,所有查询必须带租户上下文普通
crm_merge_disputeMergeDisputeorg_idBIGINT所属组织,集团级或公共配置为空普通
crm_merge_disputeMergeDisputecampus_idBIGINT所属校区,跨校区或总部级数据为空普通
crm_merge_disputeMergeDisputecreated_byBIGINT创建人账号 ID普通
crm_merge_disputeMergeDisputecreated_atDATETIME创建时间普通
crm_merge_disputeMergeDisputeupdated_byBIGINT最后更新人账号 ID普通
crm_merge_disputeMergeDisputeupdated_atDATETIME最后更新时间普通
crm_merge_disputeMergeDisputeis_deletedTINYINT是否已删除,0 未删除,1 已删除普通
crm_merge_disputeMergeDisputedeleted_atDATETIME删除时间,未删除为空普通
crm_merge_disputeMergeDisputedeleted_byBIGINT删除人账号 ID,未删除为空普通
crm_merge_disputeMergeDisputeversionINT乐观锁版本号,写操作必须校验普通
crm_merge_disputeMergeDisputedispute_noVARCHAR(64)争议编号,唯一普通
crm_merge_disputeMergeDisputelead_idsJSON涉及线索 ID 列表普通
crm_merge_disputeMergeDisputefamily_idBIGINT客户家庭 ID普通
crm_merge_disputeMergeDisputeowner_candidatesJSON候选归属人列表普通
crm_merge_disputeMergeDisputerestore_snapshotJSON误合并恢复快照普通
crm_merge_disputeMergeDisputearbitrate_statusVARCHAR(32)待仲裁/已通过/已驳回/已恢复普通
crm_merge_disputeMergeDisputeapproval_statusVARCHAR(32)审批状态,未发起为空普通
crm_merge_disputeMergeDisputeapproval_instance_idBIGINT关联审批实例 ID普通

数据表与对象映射

表名对象用途完整字段索引建议
crm_role_terminal_policyCRMRoleTerminalPolicyCRM 角色终端与字段权限策略id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、role_code(VARCHAR(64),必填)、terminal_scope(VARCHAR(64),必填)、menu_codes(JSON,必填)、button_codes(JSON)、field_policy_json(JSON,必填)、data_scope_rule(JSON,必填)、enabled(TINYINT,必填)uk_role_terminal、idx_enabled
crm_leadLead销售线索主表id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、lead_no(VARCHAR(64),必填)、source_channel(VARCHAR(64),必填)、campaign_id(BIGINT)、guardian_mobile(VARCHAR(32),必填)、student_name(VARCHAR(64))、intent_course_id(BIGINT)、owner_id(BIGINT)、protect_until(DATETIME)、duplicate_status(VARCHAR(32),必填)、biz_status(VARCHAR(32),必填)、remark(VARCHAR(512))uk_lead_no、idx_mobile_student、idx_owner_status
crm_customer_familyCustomerFamily客户家庭档案id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、family_no(VARCHAR(64),必填)、primary_guardian_id(BIGINT)、student_id(BIGINT)、owner_id(BIGINT)、risk_level(VARCHAR(32))、last_follow_at(DATETIME)、biz_status(VARCHAR(32),必填)、remark(VARCHAR(512))uk_family_no、idx_owner_status
crm_guardianGuardian监护人/家长资料id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、family_id(BIGINT,必填)、guardian_name(VARCHAR(64),必填)、mobile(VARCHAR(32),必填)、relationship(VARCHAR(32),必填)、wechat_openid(VARCHAR(128))、verify_status(VARCHAR(32),必填)idx_family、idx_mobile
stu_studentStudent学员基础档案id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、student_no(VARCHAR(64),必填)、family_id(BIGINT)、student_name(VARCHAR(64),必填)、gender(VARCHAR(16))、birthday(DATE)、grade(VARCHAR(32))、school_name(VARCHAR(128))、biz_status(VARCHAR(32),必填)、remark(VARCHAR(512))uk_student_no、idx_family
crm_follow_recordFollowRecord线索/客户跟进记录id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、lead_id(BIGINT)、family_id(BIGINT)、owner_id(BIGINT,必填)、follow_type(VARCHAR(32),必填)、follow_content(TEXT,必填)、next_follow_at(DATETIME)、follow_result(VARCHAR(32),必填)idx_lead_time、idx_owner_next
crm_trial_lessonTrialLesson试听预约id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、trial_no(VARCHAR(64),必填)、lead_id(BIGINT)、student_id(BIGINT,必填)、course_id(BIGINT,必填)、lesson_time(DATETIME,必填)、teacher_id(BIGINT)、trial_status(VARCHAR(32),必填)、arrival_status(VARCHAR(32))uk_trial_no、idx_lead_status、idx_lesson_time
crm_trial_feedbackTrialFeedback试听反馈与转化建议id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、trial_id(BIGINT,必填)、teacher_feedback(TEXT)、guardian_rating(DECIMAL(4,2))、next_action(VARCHAR(64))、conversion_status(VARCHAR(32),必填)idx_trial、idx_conversion
crm_lead_assignmentLeadAssignment线索分配、重分配与申诉id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、assignment_no(VARCHAR(64),必填)、lead_id(BIGINT,必填)、from_owner_id(BIGINT)、to_owner_id(BIGINT,必填)、assignment_reason(VARCHAR(255),必填)、assignment_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT)uk_assignment_no、idx_lead_status
crm_duplicate_candidateDuplicateCandidate重复线索/客户候选id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、candidate_no(VARCHAR(64),必填)、source_biz_type(VARCHAR(64),必填)、source_biz_id(BIGINT,必填)、matched_biz_id(BIGINT,必填)、match_score(DECIMAL(8,4),必填)、handle_status(VARCHAR(32),必填)uk_candidate_no、idx_source、idx_status_score
crm_merge_disputeMergeDispute撞单、合并与归属仲裁id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、dispute_no(VARCHAR(64),必填)、lead_ids(JSON,必填)、family_id(BIGINT)、owner_candidates(JSON,必填)、restore_snapshot(JSON)、arbitrate_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT)uk_dispute_no、idx_status

12 · 状态机与业务规则

约束业务对象如何流转、何时可编辑、何时触发审批

原型需要把状态标签、可操作按钮和禁用原因展示清楚。
对象状态触发与说明
线索状态新线索 -> 待分配 -> 已分配 -> 跟进中 -> 已预约试听 -> 试听完成 -> 已转化 -> 已流失 -> 已回收公海 -> 异常待处理移动端新增和跟进,PC 管理端分配、回收、异常处理和全量状态追踪
线索归属未归属 -> 本人负责 -> 团队协作 -> 主管待分配 -> 跨校区待审批 -> 已重新分配 -> 归属争议中 -> 已仲裁 -> 已回收按归属规则、保护期、公海规则、重新分配和申诉仲裁流转
去重合并待查重 -> 疑似重复 -> 合并待确认 -> 已合并 -> 误合并待恢复 -> 已恢复 -> 无需合并线索入库、导入、移动端新增和 PC 批量治理均需触发查重
跟进任务待跟进 -> 今日待办 -> 已完成 -> 超时 -> 已提醒 -> 已关闭 -> 转人工移动端展示本人待办,超时后按规则提醒、升级或回收
试听预约待预约 -> 已预约 -> 待到访 -> 已到访 -> 未到访 -> 教师已反馈 -> 待二次跟进 -> 已转化 -> 已流失试听从邀约、到访、教师反馈、顾问跟进到转化或流失闭环
归属申诉草稿 -> 已提交 -> 主管处理中 -> 需补充材料 -> 已通过 -> 已驳回 -> 已关闭销售/市场移动端发起,PC 管理端处理并回写结果
唯一性校验

CRM 客户中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。

跨校区数据隔离

CRM 客户中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。

敏感操作留痕

CRM 客户中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。

外部接口幂等

CRM 客户中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。

批量失败明细

CRM 客户中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。

状态回退审批

CRM 客户中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。

13 · 权限、审批与消息

动作权限、数据范围、审批触发和消息触达必须闭环

权限需要覆盖菜单、按钮、字段、接口和导出。

动作权限

  • 移动端新增线索:需映射菜单、按钮、接口和字段权限
  • 移动端跟进:需映射菜单、按钮、接口和字段权限
  • 移动端试听邀约:需映射菜单、按钮、接口和字段权限
  • PC 全量查询:需映射菜单、按钮、接口和字段权限
  • PC 查重合并:需映射菜单、按钮、接口和字段权限
  • PC 重新分配:需映射菜单、按钮、接口和字段权限
  • PC 归属仲裁:需映射菜单、按钮、接口和字段权限
  • 异常处理:需映射菜单、按钮、接口和字段权限

数据范围

  • 总部全量
  • 区域辖区
  • 校区本地
  • 部门/岗位
  • 本人负责
  • 授权班级/学员

审批配置

审批名称触发条件流程结果留痕
客户去重合并审批涉及已转客户、已有合同、跨校区或高价值客户时触发审批申请人 -> 销售主管 -> CRM 管理员通过后合并并归并跟进/试听/活动来源,驳回保留原记录保留合并前快照、审批意见、影响对象和恢复入口
误合并恢复审批已合并客户需要拆分或恢复历史快照申请人 -> CRM 管理员 -> 安全审计员可选通过后恢复客户、线索、跟进、试听和合同关联关系保留恢复原因、快照版本、操作人和恢复结果
线索重新分配审批跨校区、批量、保护期内、主管外团队或高价值线索重新分配销售主管 -> 校区负责人/区域负责人 -> CRM 管理员通过后变更责任人并通知原/新责任人记录原责任人、新责任人、原因、审批和消息触达
归属仲裁审批销售/市场对撞单、回收、重新分配或活动归因结果有争议申诉人 -> 销售主管 -> CRM 管理员通过后调整归属或保留原判定保留证据、判定规则、仲裁意见和处理时长
敏感客户信息导出审批导出手机号、家庭信息、跟进记录、合同摘要等敏感数据申请人 -> 主管 -> 安全管理员通过后限时导出并加水印记录导出范围、文件水印、下载次数和过期时间

消息模板

消息接收人触发渠道变量
新线索分配提醒课程顾问/销售人员线索分配、重新分配或公海领取成功迪诺学堂教师端 App/小程序、站内信线索编号、来源渠道、保护期、跟进截止时间
市场活动线索提醒市场人员本人负责活动产生新报名、扫码或公开课线索迪诺学堂教师端 App/小程序活动名称、渠道、留资数量、转销售状态
跟进超时提醒课程顾问/销售人员/销售主管跟进截止前、已超时、保护期即将到期迪诺学堂教师端 App/小程序、站内信线索、责任人、剩余时间、处理入口
撞单待处理提醒销售主管/CRM 管理员系统识别疑似重复、合并冲突或归属争议PC Web 待办、站内信重复候选、相似度、来源、处理入口
归属变更通知原责任人/新责任人/销售主管重新分配、回收公海、仲裁通过或驳回迪诺学堂教师端 App/小程序、站内信变更原因、处理人、生效时间、申诉入口
试听结果提醒课程顾问/教师/销售主管试听已到访、未到访、教师已反馈、待二次跟进迪诺学堂教师端 App/小程序试听课次、到访状态、反馈摘要、跟进任务
移动端越权提醒课程顾问/销售人员/市场人员访问非本人数据或 PC 管理入口迪诺学堂教师端 App/小程序拦截原因、可用入口、申诉入口

14 · 接口与技术细节

接口需支持幂等、权限、审计、重试和回执

每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。
接口方法方向请求字段响应字段幂等/权限
/api/v1/crm/admin/leadsGETPC Web 管理端到 CRMtenantId, orgScope, campusId, ownerId, duplicateStatus, followStatus, pageNo, pageSizerecords, total, duplicateSummary, assignSummary总部/区域/校区/主管数据范围校验
/api/v1/crm/mobile/workbenchGET迪诺学堂教师端 App/小程序到 CRMemployeeId, roleCode, date, campusIdtodoCount, myLeadSummary, todayFollowList, trialList, campaignLeadSummary仅返回本人负责、本人创建、本人参与或授权活动数据
/api/v1/crm/activity-leadsGET迪诺学堂教师端 App/小程序到 CRMemployeeId, campaignId, assetId, followStatus, conversionStage, pageNo, pageSizeleadList, attributionSummary, nextTodoSummary仅返回本人推广资产或授权活动产生的线索
/api/v1/crm/my-leadsPOST/GET迪诺学堂教师端 App/小程序到 CRMsourceChannel, guardianMobile, studentName, campaignId, followStatus, requestIdleadId, leadNo, duplicateResult, visibleActions手机号 + 学员名查重;移动端 owner 默认为当前登录员工
/api/v1/crm/follow-recordsPOST迪诺学堂教师端 App/小程序到 CRMleadId, customerId, followType, content, nextFollowAt, attachments, requestIdrecordId, followStatus, nextTodoId, auditId只能操作本人负责或授权协作客户
/api/v1/crm/leads/assignPOSTPC Web 管理端到 CRMleadIds, ownerId, assignRule, reason, requestIdassignedCount, failedItems, notifyStatusowner 数据范围校验,批量部分失败返回明细
/api/v1/crm/leads/reassignPOSTPC Web 管理端/销售主管到 CRMleadIds, fromOwnerId, toOwnerId, reason, approvalId, requestIdreassignBatchNo, reassignStatus, affectedCount跨校区、批量或保护期内重分配需审批
/api/v1/crm/duplicate-candidatesGETPC Web 管理端/教师端 App/小程序到 CRMguardianMobile, studentName, leadId, customerId, scopecandidateList, mergeSuggestion, visibleFields移动端仅展示授权范围和脱敏字段
/api/v1/crm/merge-disputesPOST/PATCHPC Web 管理端到 CRMleadIds, customerIds, action, disputeReason, restoreSnapshotId, requestIddisputeId, mergeStatus, restoreStatus, auditId合并、拆分、恢复必须保留快照并写审计
/api/v1/crm/customers/{id}GET/PUTPC Web 管理端/教师端 App/小程序到 CRMcustomerId, profile, relationship, tags, clientTypecustomerDetail, visibleFields, visibleActions, auditSummaryPC 管理端按授权全量;移动端仅本人/协作范围
/api/v1/crm/trialsPOST/GET教师端 App/小程序到教务/CRMleadId, courseId, campusId, lessonTime, inviterId, requestIdtrialId, scheduleStatus, notifyStatus同一时间冲突校验,移动端仅本人线索可预约
/api/v1/crm/trials/{id}/feedbackPOST教师端 App/小程序/PC Web 管理端到 CRMtrialId, arrivalStatus, teacherFeedback, guardianRating, nextAction, requestIdfeedbackId, trialStatus, followTaskIdtrialId 单反馈版本

前端约束

  • 统一登录态和租户校区上下文
  • 列表分页、筛选、排序、列显隐
  • 表单本地校验与服务端错误映射
  • 移动/平板/TV 按终端适配交互

后端约束

  • 领域服务封装业务规则
  • 写操作事务一致性
  • 关键操作审计快照
  • 异步任务失败重试和告警

集成约束

  • 第三方接口统一走开放集成中心
  • 回执文件归档
  • 接口日志可按业务单号追踪
  • 密钥和回调地址按环境隔离

15 · 数据库与存储设计

核心表建议、关键字段和索引方向

详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。
表名用途核心字段索引建议
crm_role_terminal_policyCRM 角色终端与字段权限策略id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、role_code、terminal_scope、menu_codes、button_codes、field_policy_json、data_scope_rule、enableduk_role_terminal、idx_enabled
crm_lead销售线索主表id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、lead_no、source_channel、campaign_id、guardian_mobile、student_name、intent_course_id、owner_id、protect_until、duplicate_status、biz_status、remarkuk_lead_no、idx_mobile_student、idx_owner_status
crm_customer_family客户家庭档案id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、family_no、primary_guardian_id、student_id、owner_id、risk_level、last_follow_at、biz_status、remarkuk_family_no、idx_owner_status
crm_guardian监护人/家长资料id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、family_id、guardian_name、mobile、relationship、wechat_openid、verify_statusidx_family、idx_mobile
stu_student学员基础档案id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、student_no、family_id、student_name、gender、birthday、grade、school_name、biz_status、remarkuk_student_no、idx_family
crm_follow_record线索/客户跟进记录id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、lead_id、family_id、owner_id、follow_type、follow_content、next_follow_at、follow_resultidx_lead_time、idx_owner_next
crm_trial_lesson试听预约id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、trial_no、lead_id、student_id、course_id、lesson_time、teacher_id、trial_status、arrival_statusuk_trial_no、idx_lead_status、idx_lesson_time
crm_trial_feedback试听反馈与转化建议id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、trial_id、teacher_feedback、guardian_rating、next_action、conversion_statusidx_trial、idx_conversion
crm_lead_assignment线索分配、重分配与申诉id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、assignment_no、lead_id、from_owner_id、to_owner_id、assignment_reason、assignment_status、approval_status、approval_instance_iduk_assignment_no、idx_lead_status
crm_duplicate_candidate重复线索/客户候选id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、candidate_no、source_biz_type、source_biz_id、matched_biz_id、match_score、handle_statusuk_candidate_no、idx_source、idx_status_score
crm_merge_dispute撞单、合并与归属仲裁id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、dispute_no、lead_ids、family_id、owner_candidates、restore_snapshot、arbitrate_status、approval_status、approval_instance_iduk_dispute_no、idx_status

DDL 草案

crm_role_terminal_policyCRMRoleTerminalPolicy
CREATE TABLE `crm_role_terminal_policy` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `role_code` VARCHAR(64) NOT NULL COMMENT '角色编码;数据级别:普通',
  `terminal_scope` VARCHAR(64) NOT NULL COMMENT 'PC Web/教师 App/教师小程序;数据级别:普通',
  `menu_codes` JSON NOT NULL COMMENT '可见菜单;数据级别:普通',
  `button_codes` JSON NULL COMMENT '可见按钮;数据级别:普通',
  `field_policy_json` JSON NOT NULL COMMENT '字段明文/脱敏/隐藏策略;数据级别:普通',
  `data_scope_rule` JSON NOT NULL COMMENT '数据范围规则;数据级别:普通',
  `enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_role_terminal` (`role_code`, `terminal_scope`),
  KEY `idx_enabled` (`enabled`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='CRMRoleTerminalPolicy:CRM 角色终端与字段权限策略';
crm_leadLead
CREATE TABLE `crm_lead` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `lead_no` VARCHAR(64) NOT NULL COMMENT '线索编号,唯一;数据级别:普通',
  `source_channel` VARCHAR(64) NOT NULL COMMENT '来源渠道;数据级别:普通',
  `campaign_id` BIGINT NULL COMMENT '来源活动 ID;数据级别:普通',
  `guardian_mobile` VARCHAR(32) NOT NULL COMMENT '家长手机号,敏感;数据级别:敏感',
  `student_name` VARCHAR(64) NULL COMMENT '学员姓名;数据级别:普通',
  `intent_course_id` BIGINT NULL COMMENT '意向课程;数据级别:普通',
  `owner_id` BIGINT NULL COMMENT '当前归属销售/顾问;数据级别:普通',
  `protect_until` DATETIME NULL COMMENT '保护期截止时间;数据级别:普通',
  `duplicate_status` VARCHAR(32) NOT NULL COMMENT '未查重/疑似重复/已合并/已忽略;数据级别:普通',
  `biz_status` VARCHAR(32) NOT NULL COMMENT '业务状态,取值来自状态机字典;数据级别:普通',
  `remark` VARCHAR(512) NULL COMMENT '业务备注,敏感内容按权限脱敏;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_lead_no` (`lead_no`),
  KEY `idx_mobile_student` (`guardian_mobile`, `student_name`),
  KEY `idx_owner_status` (`owner_id`, `duplicate_status`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Lead:销售线索主表';
crm_customer_familyCustomerFamily
CREATE TABLE `crm_customer_family` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `family_no` VARCHAR(64) NOT NULL COMMENT '家庭编号,唯一;数据级别:普通',
  `primary_guardian_id` BIGINT NULL COMMENT '主监护人 ID;数据级别:普通',
  `student_id` BIGINT NULL COMMENT '主学员 ID;数据级别:普通',
  `owner_id` BIGINT NULL COMMENT '客户归属人;数据级别:普通',
  `risk_level` VARCHAR(32) NULL COMMENT '风险等级;数据级别:普通',
  `last_follow_at` DATETIME NULL COMMENT '最近跟进时间;数据级别:普通',
  `biz_status` VARCHAR(32) NOT NULL COMMENT '业务状态,取值来自状态机字典;数据级别:普通',
  `remark` VARCHAR(512) NULL COMMENT '业务备注,敏感内容按权限脱敏;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_family_no` (`family_no`),
  KEY `idx_owner_status` (`owner_id`, `biz_status`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='CustomerFamily:客户家庭档案';
crm_guardianGuardian
CREATE TABLE `crm_guardian` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `family_id` BIGINT NOT NULL COMMENT '家庭 ID;数据级别:普通',
  `guardian_name` VARCHAR(64) NOT NULL COMMENT '监护人姓名;数据级别:普通',
  `mobile` VARCHAR(32) NOT NULL COMMENT '手机号,敏感;数据级别:敏感',
  `relationship` VARCHAR(32) NOT NULL COMMENT '与学员关系;数据级别:普通',
  `wechat_openid` VARCHAR(128) NULL COMMENT '微信 OpenID,敏感;数据级别:敏感',
  `verify_status` VARCHAR(32) NOT NULL COMMENT '未验证/已验证/已解绑;数据级别:普通',
  PRIMARY KEY (`id`),
  KEY `idx_family` (`family_id`),
  KEY `idx_mobile` (`mobile`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Guardian:监护人/家长资料';
stu_studentStudent
CREATE TABLE `stu_student` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `student_no` VARCHAR(64) NOT NULL COMMENT '学员编号,唯一;数据级别:普通',
  `family_id` BIGINT NULL COMMENT '家庭 ID;数据级别:普通',
  `student_name` VARCHAR(64) NOT NULL COMMENT '学员姓名;数据级别:普通',
  `gender` VARCHAR(16) NULL COMMENT '性别;数据级别:普通',
  `birthday` DATE NULL COMMENT '出生日期;数据级别:普通',
  `grade` VARCHAR(32) NULL COMMENT '年级;数据级别:普通',
  `school_name` VARCHAR(128) NULL COMMENT '学校名称;数据级别:普通',
  `biz_status` VARCHAR(32) NOT NULL COMMENT '业务状态,取值来自状态机字典;数据级别:普通',
  `remark` VARCHAR(512) NULL COMMENT '业务备注,敏感内容按权限脱敏;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_student_no` (`student_no`),
  KEY `idx_family` (`family_id`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Student:学员基础档案';
crm_follow_recordFollowRecord
CREATE TABLE `crm_follow_record` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `lead_id` BIGINT NULL COMMENT '线索 ID;数据级别:普通',
  `family_id` BIGINT NULL COMMENT '客户家庭 ID;数据级别:普通',
  `owner_id` BIGINT NOT NULL COMMENT '跟进人 ID;数据级别:普通',
  `follow_type` VARCHAR(32) NOT NULL COMMENT '电话/微信/到访/试听/其他;数据级别:普通',
  `follow_content` TEXT NOT NULL COMMENT '跟进内容;数据级别:普通',
  `next_follow_at` DATETIME NULL COMMENT '下次跟进时间;数据级别:普通',
  `follow_result` VARCHAR(32) NOT NULL COMMENT '有效/无效/待跟进/转化;数据级别:普通',
  PRIMARY KEY (`id`),
  KEY `idx_lead_time` (`lead_id`),
  KEY `idx_owner_next` (`owner_id`, `next_follow_at`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='FollowRecord:线索/客户跟进记录';
crm_trial_lessonTrialLesson
CREATE TABLE `crm_trial_lesson` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `trial_no` VARCHAR(64) NOT NULL COMMENT '试听编号,唯一;数据级别:普通',
  `lead_id` BIGINT NULL COMMENT '线索 ID;数据级别:普通',
  `student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
  `course_id` BIGINT NOT NULL COMMENT '试听课程 ID;数据级别:普通',
  `lesson_time` DATETIME NOT NULL COMMENT '试听时间;数据级别:普通',
  `teacher_id` BIGINT NULL COMMENT '试听教师 ID;数据级别:普通',
  `trial_status` VARCHAR(32) NOT NULL COMMENT '待确认/已预约/已到访/未到访/已取消;数据级别:普通',
  `arrival_status` VARCHAR(32) NULL COMMENT '到访状态;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_trial_no` (`trial_no`),
  KEY `idx_lead_status` (`lead_id`, `trial_status`),
  KEY `idx_lesson_time` (`lesson_time`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='TrialLesson:试听预约';
crm_trial_feedbackTrialFeedback
CREATE TABLE `crm_trial_feedback` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `trial_id` BIGINT NOT NULL COMMENT '试听预约 ID;数据级别:普通',
  `teacher_feedback` TEXT NULL COMMENT '教师反馈;数据级别:普通',
  `guardian_rating` DECIMAL(4,2) NULL COMMENT '家长评分;数据级别:普通',
  `next_action` VARCHAR(64) NULL COMMENT '下一步动作;数据级别:普通',
  `conversion_status` VARCHAR(32) NOT NULL COMMENT '待转化/已转化/暂不转化/失败;数据级别:普通',
  PRIMARY KEY (`id`),
  KEY `idx_trial` (`trial_id`),
  KEY `idx_conversion` (`conversion_status`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='TrialFeedback:试听反馈与转化建议';
crm_lead_assignmentLeadAssignment
CREATE TABLE `crm_lead_assignment` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `assignment_no` VARCHAR(64) NOT NULL COMMENT '分配编号,唯一;数据级别:普通',
  `lead_id` BIGINT NOT NULL COMMENT '线索 ID;数据级别:普通',
  `from_owner_id` BIGINT NULL COMMENT '原归属人;数据级别:普通',
  `to_owner_id` BIGINT NOT NULL COMMENT '新归属人;数据级别:普通',
  `assignment_reason` VARCHAR(255) NOT NULL COMMENT '分配原因;数据级别:普通',
  `assignment_status` VARCHAR(32) NOT NULL COMMENT '待处理/已生效/已驳回;数据级别:普通',
  `approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
  `approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_assignment_no` (`assignment_no`),
  KEY `idx_lead_status` (`lead_id`, `assignment_status`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LeadAssignment:线索分配、重分配与申诉';
crm_duplicate_candidateDuplicateCandidate
CREATE TABLE `crm_duplicate_candidate` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `candidate_no` VARCHAR(64) NOT NULL COMMENT '候选编号,唯一;数据级别:普通',
  `source_biz_type` VARCHAR(64) NOT NULL COMMENT '来源对象类型;数据级别:普通',
  `source_biz_id` BIGINT NOT NULL COMMENT '来源对象 ID;数据级别:普通',
  `matched_biz_id` BIGINT NOT NULL COMMENT '疑似重复对象 ID;数据级别:普通',
  `match_score` DECIMAL(8,4) NOT NULL COMMENT '匹配分数;数据级别:普通',
  `handle_status` VARCHAR(32) NOT NULL COMMENT '待处理/已合并/已忽略;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_candidate_no` (`candidate_no`),
  KEY `idx_source` (`source_biz_type`),
  KEY `idx_status_score` (`handle_status`, `match_score`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DuplicateCandidate:重复线索/客户候选';
crm_merge_disputeMergeDispute
CREATE TABLE `crm_merge_dispute` (
  `id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
  `tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
  `org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
  `campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
  `created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
  `created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
  `updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
  `updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
  `is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
  `deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
  `deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
  `version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
  `dispute_no` VARCHAR(64) NOT NULL COMMENT '争议编号,唯一;数据级别:普通',
  `lead_ids` JSON NOT NULL COMMENT '涉及线索 ID 列表;数据级别:普通',
  `family_id` BIGINT NULL COMMENT '客户家庭 ID;数据级别:普通',
  `owner_candidates` JSON NOT NULL COMMENT '候选归属人列表;数据级别:普通',
  `restore_snapshot` JSON NULL COMMENT '误合并恢复快照;数据级别:普通',
  `arbitrate_status` VARCHAR(32) NOT NULL COMMENT '待仲裁/已通过/已驳回/已恢复;数据级别:普通',
  `approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
  `approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
  PRIMARY KEY (`id`),
  UNIQUE KEY `uk_dispute_no` (`dispute_no`),
  KEY `idx_status` (`arbitrate_status`),
  KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MergeDispute:撞单、合并与归属仲裁';

16 · 异常、指标、测试与初始化

保证模块上线后可运营、可追踪、可验收

测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。

异常状态

重复客户保护期冲突超时未跟进试听未到访教师反馈缺失家长评价未提交转化任务未分配误合并归属争议超时历史记录迁移失败

指标埋点

线索响应时长试听预约率到访率签约转化率线索流失率

测试用例

编号场景前置步骤预期优先级
TC-CRM-ROLE-001销售/市场无 PC Web 操作入口账号角色为课程顾问、销售人员或市场人员登录 PC Web 管理端并访问 CRM 菜单或直接访问 CRM 管理链接不展示 CRM PC 管理菜单;直连返回无权限,提示使用迪诺学堂教师端 App/小程序;越权访问写入审计
TC-CRM-ROLE-002销售人员移动端本人数据范围销售人员存在本人线索、团队协作线索和非本人线索在迪诺学堂教师端 App/小程序打开销售工作台、我的线索、线索详情并尝试访问非本人线索只展示本人负责、本人创建、本人协作或授权线索;非授权线索字段脱敏或拦截,提交动作不可用
TC-CRM-ROLE-003市场人员移动端活动线索市场人员负责一个营销活动且活动产生报名线索打开市场线索工作台,查看活动线索、扫码报名、归因和转销售状态可查看本人活动数据和转销售状态,不可查看其他活动或全量客户档案
TC-CRM-MKT-001员工推广线索回流到移动端员工通过专属活动二维码产生新线索,线索未撞单CRM 接收营销回流线索并按归属规则生成待办线索归因显示活动、页面、二维码、员工和分享场景;员工端收到新线索待办并可直接跟进
TC-CRM-MKT-002员工推广线索撞单仲裁员工专属推广链接产生疑似重复线索表单提交后触发撞单,员工端查看提示,管理员 PC 端处理仲裁移动端展示撞单状态和申诉入口;PC 管理端可合并、保留、重新分配并回写处理结果
TC-CRM-ADMIN-001管理员 PC 全量信息与异常处理CRM 管理员拥有总部/区域/校区授权范围打开 CRM 管理总览、线索全量管理、客户全量档案和异常数据处理展示授权范围内完整信息、异常原因、处理入口、审批轨迹和审计日志
TC-CRM-DUP-001去重合并与误合并恢复存在疑似重复线索与客户,且至少一个客户已有试听或合同摘要PC 管理端执行查重、合并审批、合并确认、误合并恢复合并后来源、跟进、试听、活动归因保留;恢复后关联不丢失,所有步骤有快照和审计
TC-CRM-ASSIGN-001线索重新分配审批存在保护期内线索或跨校区重分配需求销售主管在 PC 管理端发起重新分配,审批通过后查看移动端通知审批前不生效;通过后责任人变更、原/新责任人收到通知,移动端工作台同步更新
TC-CRM-APPEAL-001归属申诉闭环移动端销售人员对撞单结果有争议销售人员提交申诉,主管/管理员在 PC 端处理,通过或驳回后查看移动端结果申诉状态、证据、处理意见、归属结果和通知均正确;超时进入主管提醒
TC-CRM-TRIAL-001试听邀约到转化闭环销售人员拥有一条有效线索,教务课表存在试听课次移动端预约试听、到访签到、教师反馈、顾问二次跟进试听结束后进入转化、复约、流失或服务观察之一,跟进任务和消息自动生成
TC-CRM-ENH-001角色终端交付闭环验收角色终端矩阵、PC CRM 管理总览、教师端销售工作台、教师端市场线索工作台、移动端无 PC 权限提示相关基础数据、权限、审批流、消息模板和接口配置已初始化按补齐 CRM 角色终端边界:管理员/主管使用 PC Web 管理端处理全量治理、审批、去重、重分配和异常;课程顾问、销售人员、市场人员只使用迪诺学堂教师端 App/小程序处理本人授权数据。执行前端提交、后端处理、状态流转、异常重试和消息触达销售/市场无 PC Web 操作入口,移动端只显示本人/授权数据;管理员 PC 端可处理全量治理事项且全程审计。;同时产生审计日志、指标埋点和必要的补偿任务
TC-CRM-ENH-002客户去重交付闭环验收线索详情、客户详情、合并仲裁页相关基础数据、权限、审批流、消息模板和接口配置已初始化按补齐撞单提示、合并申请、仲裁审批、恢复任务、跟进记录归并和审计链路。执行前端提交、后端处理、状态流转、异常重试和消息触达误合并可恢复,恢复后跟进、试听、合同关联不丢失。;同时产生审计日志、指标埋点和必要的补偿任务
TC-CRM-ENH-003试听闭环交付闭环验收试听预约、试听反馈、顾问跟进相关基础数据、权限、审批流、消息模板和接口配置已初始化按补齐试听课表、到访签到、未到访唤醒、教师反馈、顾问转化任务和流失原因。执行前端提交、后端处理、状态流转、异常重试和消息触达试听结束后必须进入转化、复约、流失或服务观察之一。;同时产生审计日志、指标埋点和必要的补偿任务
TC-CRM-ENH-004归属规则交付闭环验收公海池、线索分配、归属变更相关基础数据、权限、审批流、消息模板和接口配置已初始化按增加公海规则配置、保护期倒计时、回收原因、跨校区申请和归属变更审计。执行前端提交、后端处理、状态流转、异常重试和消息触达线索归属变化能追溯来源、审批和当前责任人。;同时产生审计日志、指标埋点和必要的补偿任务

上线初始化

初始化项动作数据验收
CRM 角色终端权限初始化 CRM 管理员、销售主管、课程顾问、销售人员、市场人员的菜单、按钮、字段、接口和数据范围;销售/市场关闭 PC Web CRM 操作入口roleCode、terminalScope、menuCodes、buttonCodes、fieldPolicy、apiPolicy、dataScope管理员和主管可进入 PC 管理端;销售/市场只能在迪诺学堂教师端 App/小程序处理本人授权数据
线索归属规则初始化默认分配、公海领取、保护期、回收、跨校区流转、重新分配和归属申诉规则assignRule、publicPoolRule、protectDays、recycleReason、crossCampusFlow、appealFlow线索归属变化均可追溯规则、原因、审批、责任人和通知
去重合并规则初始化手机号、学员姓名、渠道、活动、校区、顾问和时间窗口的撞单检测规则,以及合并、恢复和仲裁审批流duplicateKeys、similarityThreshold、mergeFlow、restoreFlow、auditSnapshotPolicy重复线索可提示、合并、驳回、恢复且不丢跟进/试听/合同关联
移动端工作台配置初始化销售工作台、市场线索工作台、今日待办、跟进超时、试听邀约、归属变更和越权提示消息模板workspaceLayout、todoRules、notifyTemplates、trialRemindRules、unauthorizedTips移动端角色登录后看到本人任务和可操作入口,PC 越权提示明确
活动线索回流规则初始化营销活动、员工推广资产、表单留资、CRM 线索、员工待办之间的映射关系和撞单处理策略campaignAttributionRule、promotionAssetRule、duplicateRule、todoRule、notifyTemplate员工推广产生的线索可自动进入员工端待办或 PC 管理端仲裁
CRM 异常原因字典初始化重复客户、保护期冲突、手机号异常、导入失败、非本人线索、试听未到访、反馈缺失、接口失败等异常原因exceptionCode、exceptionName、ownerRole、handleSla、closePolicy异常数据可进入 PC 管理端处理并形成关闭记录
角色终端交付配置初始化补齐 CRM 角色终端边界:管理员/主管使用 PC Web 管理端处理全量治理、审批、去重、重分配和异常;课程顾问、销售人员、市场人员只使用迪诺学堂教师端 App/小程序处理本人授权数据。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限角色终端矩阵、PC CRM 管理总览、教师端销售工作台、教师端市场线索工作台、移动端无 PC 权限提示销售/市场无 PC Web 操作入口,移动端只显示本人/授权数据;管理员 PC 端可处理全量治理事项且全程审计。
客户去重交付配置初始化补齐撞单提示、合并申请、仲裁审批、恢复任务、跟进记录归并和审计链路。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限线索详情、客户详情、合并仲裁页误合并可恢复,恢复后跟进、试听、合同关联不丢失。
试听闭环交付配置初始化补齐试听课表、到访签到、未到访唤醒、教师反馈、顾问转化任务和流失原因。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限试听预约、试听反馈、顾问跟进试听结束后必须进入转化、复约、流失或服务观察之一。
归属规则交付配置初始化增加公海规则配置、保护期倒计时、回收原因、跨校区申请和归属变更审计。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限公海池、线索分配、归属变更线索归属变化能追溯来源、审批和当前责任人。