01 · 模块定位
销售合同中心
管理人员在 PC Web 配置价格、组合价格、优惠规则和合同模板;销售/市场/课程顾问在员工端创建合同并推送家长;家长手写签字后完成支付,支付成功自动加盖企业电子公章并归档,退款转课、发票、监管备案和业绩归属可追溯。业务目标
承接报价、优惠组合、组合缴费、多科联报优惠、员工端合同创建、家长手写签字、支付、企业电子公章、退款、转课、发票和业绩归属。
使用终端
PC Web 管理端仅供管理人员维护课程价格、组合价格、可用优惠、合同模板和审批规则;课程顾问、销售人员、市场人员通过迪诺学堂教师端 App/小程序为本人授权学员创建合同、申请额外折扣并推送给家长;家长端小程序/H5 完成手写签字、支付和合同查看。
验收主线
管理人员在 PC Web 配置价格、组合价格、优惠规则和合同模板;销售/市场/课程顾问在员工端创建合同并推送家长;家长手写签字后完成支付,支付成功自动加盖企业电子公章并归档,退款转课、发票、监管备案和业绩归属可追溯。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 报价单
- 优惠引擎
- 组合缴费
- 多科联报
- 合同模板
- 电子签署
- 退款转课
- 优惠试算器
- 优惠冲突检测
- 优惠分摊
- 组合优惠审批
- 转班转课权益测算
- 补差退差确认
- 合同补充协议
- 合同变更
- 作废重签
- 课程价格管理
- 组合价格管理
- 可用优惠规则
- 员工端合同创建
- 合同报价确认
- 额外折扣申请
- 额外折扣审批
- 推送家长签署
- 家长手写签字
- 家长合同支付
- 企业电子公章
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
销售合同中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 已确认口径 | 国税官方发票核验接口 | 确认具备官方发票核验接入能力;迪诺学堂按校区维护调用主体、纳税人识别号、官方接口编码/授权凭证、核验额度、接口地址、启用状态和审计留痕。 | 产品/财务/技术 |
| 后台配置项 | 校区税务主体配置 | 按校区配置 taxpayerName、taxpayerNo、officialAppCode、authCertificateId、verifyEndpoint、quotaPolicy、enabled、effectiveDate 和负责人。 | 财务管理员/系统管理员 |
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
销售合同中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。课程顾问、销售人员和市场人员在迪诺学堂教师端 App/小程序为本人授权学员创建报价和合同草稿,报价来源必须使用 PC 管理端已启用的课程价格、组合价格和可用优惠。
管理人员在 PC Web 管理端维护优惠规则、组合价格、多科联报和叠加互斥策略;员工端只能选择可用优惠并查看冲突原因。
员工端选择组合课程后调用统一试算器,系统按课程项分摊金额、优惠和权益,不提供订单拆分支付能力。
多科联报优惠由 PC 管理端配置适用课程、校区、有效期和互斥规则,员工端只能在授权范围内选择并生成报价。
管理人员在 PC Web 管理端维护统一电子合同模板、变量、适用校区、启停状态和版本;员工端创建合同时仅可选择已启用模板。
员工端推送合同后,家长在小程序/H5 查看合同并完成手写签字;手写签字完成前支付按钮置灰并展示原因。
退款、转班转课和作废重签需按合同项、课程权益、优惠来源和已支付金额反算,确保合同、教务、财务和监管口径一致。
合同报价需提供优惠试算器,支持满减、折扣、赠课、多科联报、组合缴费、老带新等规则叠加、互斥、择优和审批判断。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 报价单 | 角色化合同操作 | 报价单按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 报价单 | 业务处理 | 课程顾问、销售人员和市场人员在迪诺学堂教师端 App/小程序为本人授权学员创建报价和合同草稿,报价来源必须使用 PC 管理端已启用的课程价格、组合价格和可用优惠。 | 必须联动状态、权限、消息、审批和指标 |
| 报价单 | 异常闭环 | 无授权学员或无可用价格处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 优惠引擎 | 角色化合同操作 | 优惠引擎按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 优惠引擎 | 业务处理 | 管理人员在 PC Web 管理端维护优惠规则、组合价格、多科联报和叠加互斥策略;员工端只能选择可用优惠并查看冲突原因。 | 必须联动状态、权限、消息、审批和指标 |
| 优惠引擎 | 异常闭环 | 优惠规则不可用处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 组合缴费 | 角色化合同操作 | 组合缴费按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 组合缴费 | 业务处理 | 员工端选择组合课程后调用统一试算器,系统按课程项分摊金额、优惠和权益,不提供订单拆分支付能力。 | 必须联动状态、权限、消息、审批和指标 |
| 组合缴费 | 异常闭环 | 组合价格失效处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 多科联报 | 角色化合同操作 | 多科联报按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 多科联报 | 业务处理 | 多科联报优惠由 PC 管理端配置适用课程、校区、有效期和互斥规则,员工端只能在授权范围内选择并生成报价。 | 必须联动状态、权限、消息、审批和指标 |
| 多科联报 | 异常闭环 | 联报优惠不适用处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 合同模板 | 角色化合同操作 | 合同模板按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 合同模板 | 业务处理 | 管理人员在 PC Web 管理端维护统一电子合同模板、变量、适用校区、启停状态和版本;员工端创建合同时仅可选择已启用模板。 | 必须联动状态、权限、消息、审批和指标 |
| 合同模板 | 异常闭环 | 合同模板停用处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 电子签署 | 角色化合同操作 | 电子签署按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 电子签署 | 业务处理 | 员工端推送合同后,家长在小程序/H5 查看合同并完成手写签字;手写签字完成前支付按钮置灰并展示原因。 | 必须联动状态、权限、消息、审批和指标 |
| 电子签署 | 异常闭环 | 未手写签字不可支付处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 退款转课 | 角色化合同操作 | 退款转课按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 退款转课 | 业务处理 | 退款、转班转课和作废重签需按合同项、课程权益、优惠来源和已支付金额反算,确保合同、教务、财务和监管口径一致。 | 必须联动状态、权限、消息、审批和指标 |
| 退款转课 | 异常闭环 | 权益重算失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 优惠试算器 | 角色化合同操作 | 优惠试算器按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 优惠试算器 | 业务处理 | 合同报价需提供优惠试算器,支持满减、折扣、赠课、多科联报、组合缴费、老带新等规则叠加、互斥、择优和审批判断。 | 必须联动状态、权限、消息、审批和指标 |
| 优惠试算器 | 异常闭环 | 权益重算失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 优惠冲突检测 | 角色化合同操作 | 优惠冲突检测按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 优惠冲突检测 | 业务处理 | 优惠冲突检测需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 优惠冲突检测 | 异常闭环 | 监管重报失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 优惠分摊 | 角色化合同操作 | 优惠分摊按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 优惠分摊 | 业务处理 | 转班转课需进行权益重算、优惠分摊反算、补差或退差测算,并在家长确认后生效。 | 必须联动状态、权限、消息、审批和指标 |
| 优惠分摊 | 异常闭环 | 作废重签权益回滚失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 组合优惠审批 | 角色化合同操作 | 组合优惠审批按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 组合优惠审批 | 业务处理 | 当组合优惠或额外折扣超过管理端配置阈值时自动触发审批,审批未通过不得推送家长签署。 | 必须联动状态、权限、消息、审批和指标 |
| 组合优惠审批 | 异常闭环 | 优惠审批中处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 转班转课权益测算 | 角色化合同操作 | 转班转课权益测算按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 转班转课权益测算 | 业务处理 | 转班转课权益测算需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 转班转课权益测算 | 异常闭环 | 额外折扣审批未通过处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 补差退差确认 | 角色化合同操作 | 补差退差确认按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 补差退差确认 | 业务处理 | 补差退差确认需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 补差退差确认 | 异常闭环 | 未手写签字不可支付处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 合同补充协议 | 角色化合同操作 | 合同补充协议按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 合同补充协议 | 业务处理 | 合同权益、课程、金额或主体发生变更时,PC 管理端或授权流程生成补充协议并推送家长重新签署。 | 必须联动状态、权限、消息、审批和指标 |
| 合同补充协议 | 异常闭环 | 补充协议签署失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 合同变更 | 角色化合同操作 | 合同变更按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 合同变更 | 业务处理 | 合同变更需联动权益重算、补差退差、监管重报和财务凭证调整,并保留原合同与新合同追溯关系。 | 必须联动状态、权限、消息、审批和指标 |
| 合同变更 | 异常闭环 | 合同状态不允许变更处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 作废重签 | 角色化合同操作 | 作废重签按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 作废重签 | 业务处理 | 合同作废重签必须走审批和审计,作废后不得继续收款或课消,新合同重新执行签字、支付和盖章链路。 | 必须联动状态、权限、消息、审批和指标 |
| 作废重签 | 异常闭环 | 作废审批未通过处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 课程价格管理 | 角色化合同操作 | 课程价格管理按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 课程价格管理 | 业务处理 | 课程价格管理需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 课程价格管理 | 异常闭环 | 支付成功但企业盖章失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 组合价格管理 | 角色化合同操作 | 组合价格管理按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 组合价格管理 | 业务处理 | 组合价格管理需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 组合价格管理 | 异常闭环 | 优惠互斥冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 可用优惠规则 | 角色化合同操作 | 可用优惠规则按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 可用优惠规则 | 业务处理 | 可用优惠规则需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 可用优惠规则 | 异常闭环 | 收款不一致处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 员工端合同创建 | 角色化合同操作 | 员工端合同创建按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 员工端合同创建 | 业务处理 | 员工端合同创建需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 员工端合同创建 | 异常闭环 | 合同备案失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 合同报价确认 | 角色化合同操作 | 合同报价确认按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 合同报价确认 | 业务处理 | 合同报价确认需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 合同报价确认 | 异常闭环 | 优惠规则冲突处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 额外折扣申请 | 角色化合同操作 | 额外折扣申请按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 额外折扣申请 | 业务处理 | 员工端可基于报价发起额外折扣申请,填写折扣金额、原因和附件;管理员在 PC Web 管理端审批,通过后折扣才进入最终合同金额。 | 必须联动状态、权限、消息、审批和指标 |
| 额外折扣申请 | 异常闭环 | 额外折扣审批未通过处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 额外折扣审批 | 角色化合同操作 | 额外折扣审批按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 额外折扣审批 | 业务处理 | 额外折扣审批需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 额外折扣审批 | 异常闭环 | 补差未支付处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 推送家长签署 | 角色化合同操作 | 推送家长签署按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 推送家长签署 | 业务处理 | 销售人员、市场人员和课程顾问通过迪诺学堂教师端 App/小程序为本人授权学员创建合同草稿、选择可用优惠、申请额外折扣并推送家长签署。 | 必须联动状态、权限、消息、审批和指标 |
| 推送家长签署 | 异常闭环 | 退差待审核处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 家长手写签字 | 角色化合同操作 | 家长手写签字按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 家长手写签字 | 业务处理 | 家长手写签字需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 家长手写签字 | 异常闭环 | 权益重算失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 家长合同支付 | 角色化合同操作 | 家长合同支付按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 家长合同支付 | 业务处理 | 家长合同支付需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 家长合同支付 | 异常闭环 | 监管重报失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 企业电子公章 | 角色化合同操作 | 企业电子公章按角色拆分为 PC Web 管理端、迪诺学堂教师端 App/小程序和家长端小程序/H5:管理人员维护价格、优惠、模板和审批;销售/市场/课程顾问在员工端创建合同并推送家长;家长完成手写签字和支付。 | 必须校验角色终端、本人授权学员、可用价格与优惠、额外折扣审批、手写签字前置、支付后企业电子公章和全链路审计 |
| 企业电子公章 | 业务处理 | 家长端必须先完成手写签字,系统才开放支付;支付成功后合同自动触发企业电子公章并完成归档。 | 必须联动状态、权限、消息、审批和指标 |
| 企业电子公章 | 异常闭环 | 作废重签权益回滚失败处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 报价单 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/01 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 优惠引擎 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/02 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 组合缴费 | DiscountRule | con_discount_rule | 接口资源组 /api/v1/con/features/03 | rule_type、approval_status、biz_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 多科联报 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/04 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 合同模板 | ContractTemplate | con_contract_template | POST/GET /api/v1/contracts/templates | contract_type、review_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 电子签署 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/06 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 退款转课 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/07 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 优惠试算器 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/08 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 优惠冲突检测 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/09 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 优惠分摊 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/10 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 组合优惠审批 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/11 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 转班转课权益测算 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/12 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 补差退差确认 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/13 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 合同补充协议 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/14 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 合同变更 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/15 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 作废重签 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/16 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 课程价格管理 | CoursePricePolicy | con_price_policy | POST/GET /api/v1/contracts/price-policies | price_type、approval_status、biz_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 组合价格管理 | CoursePricePolicy | con_price_policy | POST/GET /api/v1/contracts/price-policies | price_type、approval_status、biz_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 可用优惠规则 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/19 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 员工端合同创建 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/20 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 合同报价确认 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/21 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 额外折扣申请 | ExtraDiscountApply | con_extra_discount_apply | 接口资源组 /api/v1/con/features/22 | approval_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 额外折扣审批 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/23 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 推送家长签署 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/24 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 家长手写签字 | GuardianHandSignature | con_guardian_hand_signature | POST /api/v1/contracts/{id}/guardian-hand-sign | signature_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 家长合同支付 | ContractTemplate、CoursePricePolicy、DiscountRule、DiscountSimulation | con_contract_template、con_price_policy、con_discount_rule、con_discount_simulation | 接口资源组 /api/v1/con/features/26 | contract_type、review_status、price_type、approval_status、biz_status、rule_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 企业电子公章 | EnterpriseSealTask | con_enterprise_seal_task | POST /api/v1/contracts/{id}/enterprise-seal | seal_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-CON-001 | 总部维护多个统一电子合同模板,按课程、校区、合同类型选择 | 课程价格管理 | PC 配置价格 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠互斥冲突 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-002 | 支持折扣、减免、优惠券、赠课、满减、老带新、多科联报优惠和审批阈值 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-003 | 优惠引擎支持叠加、互斥、优先级、适用校区、适用课程、有效期和规则版本 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-004 | 组合缴费支持同一学员多课程、多合同、多科目应收合并收款,并按课程、合同和校区分摊金额 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-005 | 多科联报支持跨科目课程包、主课加拓科、课程加教材、礼品赠送和赠课规则 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-006 | 电子合同自动带入学员、家长、课程、优惠明细、金额和监管字段 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-007 | 退费、转课、转校联动优惠回算、课时、收入、业绩和提成冲回 | 转班转课测算 | 权益重算、补差退差或课表调整 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 班级容量不足、补差未支付或家长确认超时 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-008 | 合同报价需提供优惠试算器,支持满减、折扣、赠课、多科联报、组合缴费、老带新等规则叠加、互斥、择优和审批判断。 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-009 | 转班转课需进行权益重算、优惠分摊反算、补差或退差测算,并在家长确认后生效。 | 转班转课测算 | 权益重算、补差退差或课表调整 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 班级容量不足、补差未支付或家长确认超时 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-010 | 优惠撤销、退款和转课时必须按合同项、课时、课程科目和优惠来源反向分摊,保证财务和监管口径一致。 | 转班转课测算 | 权益重算、补差退差或课表调整 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 班级容量不足、补差未支付或家长确认超时 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-011 | 已签署合同发生课程、金额、课时、优惠、学员或监护人信息变化时,需支持补充协议、合同变更、作废重签和原合同关联。 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-012 | 补充协议需判断是否重新电子签署、监管备案、发票调整、权益重算、业绩提成调整和财务凭证生成。 | 电子工资条/薪资核算 | 薪资核算、工资条发布或员工确认 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 工资条未发布、显示配置缺失或员工异议超期 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-013 | 合同价格、组合价格、可用优惠和审批阈值由管理人员在 PC Web 管理端维护,销售人员、市场人员和课程顾问不使用 PC Web 制定合同。 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-014 | 销售人员、市场人员和课程顾问通过迪诺学堂教师端 App/小程序为本人授权学员创建合同草稿、选择可用优惠、申请额外折扣并推送家长签署。 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-015 | 额外折扣必须由员工端发起申请,管理员在 PC Web 管理端审批通过后才进入最终报价并允许推送家长。 | PC 价格优惠配置 | 优惠试算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 销售人员误入 PC 合同创建被拦截 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-016 | 家长端必须先完成手写签字,系统才开放支付;支付成功后合同自动触发企业电子公章并完成归档。 | 员工端合同创建 | 申请额外折扣 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 额外折扣未审批不可推送家长 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-017 | 销售人员、市场人员和课程顾问通过迪诺学堂教师端 App/小程序为本人授权学员创建合同草稿、选择可用价格与优惠、申请额外折扣并推送家长签署。 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-CON-018 | 订单仅支持一次性缴费和组合缴费,不提供延后拆分付款方式;组合缴费按课程、合同、校区和优惠来源完成金额分摊。 | 优惠试算器 | 优惠试算、冲突检测或分摊反算 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 优惠规则冲突、需审批或分摊失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
销售合同中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 合同补充协议 | 负责补充协议模板、生成、电子签署、归档和原合同关联 | 转班转课、权益调整、优惠补差、退款说明和续费变更 | 补充协议模板、协议生成、签署详情、归档记录、合同关联页 | Contract/Order/Payment、DiscountSimulation/BenefitAllocation、/api/v1/contracts | 补充协议生效后必须回写合同权益、订单金额和审计记录 |
| 补课改期取消 | 合同权益需响应教务补课和课消调整结果 | 请假补课导致合同剩余课时、有效期或课消状态变化 | 合同权益明细、课消关联记录、权益调整记录 | Contract/Order/Payment、LeaveRequest/MakeupArrangement | 补课安排变化不得造成合同课时、金额和课消数据不一致 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web 管理端 | 课程价格管理 | 总部/区域/校区管理人员 | 维护课程标准价、校区价、价格有效期、启停状态和价格审批记录 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-课程价格管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端 | 组合价格管理 | 总部/区域/校区管理人员 | 维护组合课程、多科联报、组合售价、适用校区、有效期和版本记录 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-组合价格管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端 | 可用优惠规则管理 | 总部/区域/校区管理人员 | 配置满减、折扣、赠课、多科联报、老带新、叠加互斥和审批阈值 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-可用优惠规则管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端 | 合同模板管理 | 总部/区域/校区管理人员/法务 | 维护统一电子合同模板、变量、适用范围、版本、启停和审核记录 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同模板管理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端 | 额外折扣审批 | 销售主管/校区负责人/财务 | 审核员工端提交的额外折扣申请,查看报价、原因、附件、利润影响和审批轨迹 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-额外折扣审批;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端 | 合同异常处理 | 管理人员/财务/法务 | 处理盖章失败、支付异常、监管回执失败、作废重签和补充协议异常 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同异常处理;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 迪诺学堂教师端 App/小程序 | 合同创建 | 课程顾问/销售人员/市场人员 | 为本人授权学员选择课程、合同模板、可用优惠并生成合同草稿 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同创建;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 迪诺学堂教师端 App/小程序 | 合同报价确认 | 课程顾问/销售人员/市场人员 | 查看课程价格、组合价格、优惠明细、冲突提示、应收金额和可推送状态 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同报价确认;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 迪诺学堂教师端 App/小程序 | 额外折扣申请 | 课程顾问/销售人员/市场人员 | 填写额外折扣金额、申请原因和附件,提交后台审批并查看结果 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-额外折扣申请;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 迪诺学堂教师端 App/小程序 | 推送家长签署 | 课程顾问/销售人员/市场人员 | 折扣审批通过或无需审批后,将合同推送到家长端并查看家长签署、支付和盖章状态 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-推送家长签署;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 家长端小程序/H5 | 合同查看与手写签字 | 家长 | 查看合同条款、课程权益、优惠明细和应付金额,完成手写签字后进入支付 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同查看与手写签字;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 家长端小程序/H5 | 合同支付 | 家长 | 手写签字完成后选择支付方式完成付款,查看支付中、成功、失败和重试提示 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同支付;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 家长端小程序/H5 | 已盖章合同查看 | 家长 | 支付成功后查看已加盖企业电子公章的合同文件、下载归档文件和后续服务入口 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-已盖章合同查看;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| 家长端小程序/H5 | 签署支付异常页 | 家长 | 展示未签字不可支付、支付失败、盖章处理中、盖章失败和联系客服入口 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-签署支付异常页;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | PC 价格优惠配置 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕角色终端与合同创建完善PC 价格优惠配置的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-pc_价格优惠配置;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 员工端合同创建 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕角色终端与合同创建完善员工端合同创建的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-员工端合同创建;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 员工端额外折扣申请 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕角色终端与合同创建完善员工端额外折扣申请的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-员工端额外折扣申请;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 可用优惠规则 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕优惠价格治理完善可用优惠规则的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-可用优惠规则;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 员工端报价确认 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕优惠价格治理完善员工端报价确认的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-员工端报价确认;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 家长合同查看 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕签署支付与企业盖章完善家长合同查看的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-家长合同查看;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 手写签字 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕签署支付与企业盖章完善手写签字的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-手写签字;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 企业电子公章 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕签署支付与企业盖章完善企业电子公章的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-企业电子公章;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 合同归档 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕签署支付与企业盖章完善合同归档的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同归档;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 合同详情 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕合同变更完善合同详情的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-合同详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 补充协议 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕合同变更完善补充协议的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-补充协议;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web 管理端/迪诺学堂教师端 App/小程序/家长端小程序/H5 | 转课测算 | 总部/区域/校区管理人员/课程顾问/销售人员/市场人员/家长/财务 | 围绕合同变更完善转课测算的入口、字段、状态、异常提示、处理进度和验收反馈 | 合同页采用左侧学员与课程信息,中部报价/协议/退款主流程,右侧展示优惠分摊、审批流、签署和监管回执。 | 优惠试算、生成报价、发起审批、生成合同、发起签署、收款、监管备案、作废重签 | 学员、课程组合、原合同、优惠规则、应收/应退、补差退差、签署状态、监管状态、学员姓名、合同模板 | 优惠冲突、班级容量不足、补差未支付、签署失败、监管备案失败、权益重算失败 | 需覆盖多科联报、组合缴费、优惠互斥、补充协议、转班转课权益测算、退款冲销和监管回执。 建议 Figma Frame:CON-转课测算;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 课程价格管理 | POST/GET /api/v1/contracts/price-policies | CoursePricePolicy | 草稿 -> 待审批 -> 已启用 -> 已停用 -> 已过期 -> 已驳回 | 价格优惠规则发布审批:课程价格、组合价格、可用优惠或叠加互斥规则新增、调价、停用或扩范围 | 额外折扣审批结果 -> 课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 组合价格管理 | POST/GET /api/v1/contracts/price-policies | CoursePricePolicy | 草稿 -> 待审批 -> 已启用 -> 已停用 -> 已过期 -> 已驳回 | 价格优惠规则发布审批:课程价格、组合价格、可用优惠或叠加互斥规则新增、调价、停用或扩范围 | 额外折扣审批结果 -> 课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 可用优惠规则管理 | POST/GET /api/v1/contracts/discount-rules | DiscountRule | 草稿 -> 待审批 -> 已启用 -> 已停用 -> 已过期 -> 已驳回 | 价格优惠规则发布审批:课程价格、组合价格、可用优惠或叠加互斥规则新增、调价、停用或扩范围 | 额外折扣审批结果 -> 课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 合同模板管理 | POST/GET /api/v1/contracts/templates | ContractTemplate | 草稿 -> 待审批 -> 已启用 -> 已停用 -> 已过期 -> 已驳回 | 价格优惠规则发布审批:课程价格、组合价格、可用优惠或叠加互斥规则新增、调价、停用或扩范围 | 企业盖章失败待处理 -> 管理人员/财务/法务 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 额外折扣审批 | POST/GET /api/v1/contracts/extra-discount-applies | ExtraDiscountApply | 员工端草稿 -> 待额外折扣审批 -> 折扣审批驳回 -> 待推送家长 -> 已推送家长 -> 已作废 | 额外折扣审批:员工端合同报价超过可用优惠范围或申请额外折扣 | 额外折扣审批提醒 -> 销售主管/校区负责人/财务 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 合同异常处理 | POST /api/v1/contracts/{id}/enterprise-seal | EnterpriseSealTask | 未触发 -> 盖章中 -> 已盖章 -> 盖章失败 -> 已归档 -> 人工处理 | 合同异常人工处理审批:支付成功但企业盖章失败、监管回执失败或合同文件归档异常 | 企业盖章失败待处理 -> 管理人员/财务/法务 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 合同创建 | POST/GET /api/v1/contracts/mobile/drafts | Contract/Order/Payment | 员工端草稿 -> 待额外折扣审批 -> 折扣审批驳回 -> 待推送家长 -> 已推送家长 -> 已作废 | 额外折扣审批:员工端合同报价超过可用优惠范围或申请额外折扣 | 合同草稿创建提醒 -> 课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 合同报价确认 | POST/GET /api/v1/contracts/mobile/drafts | Contract/Order/Payment | 员工端草稿 -> 待额外折扣审批 -> 折扣审批驳回 -> 待推送家长 -> 已推送家长 -> 已作废 | 额外折扣审批:员工端合同报价超过可用优惠范围或申请额外折扣 | 合同草稿创建提醒 -> 课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 额外折扣申请 | POST/GET /api/v1/contracts/mobile/drafts | Contract/Order/Payment | 员工端草稿 -> 待额外折扣审批 -> 折扣审批驳回 -> 待推送家长 -> 已推送家长 -> 已作废 | 额外折扣审批:员工端合同报价超过可用优惠范围或申请额外折扣 | 合同草稿创建提醒 -> 课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 推送家长签署 | POST /api/v1/contracts/{id}/push-to-parent | Contract/Order/Payment | 员工端草稿 -> 待额外折扣审批 -> 折扣审批驳回 -> 待推送家长 -> 已推送家长 -> 已作废 | 价格优惠规则发布审批:课程价格、组合价格、可用优惠或叠加互斥规则新增、调价、停用或扩范围 | 合同待手写签字提醒 -> 家长 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 合同查看与手写签字 | POST /api/v1/contracts/{id}/guardian-hand-sign | GuardianHandSignature | 待家长查看 -> 待手写签字 -> 已手写签字 -> 待支付 -> 支付中 -> 支付成功 -> 支付失败 -> 已关闭 | 额外折扣审批:员工端合同报价超过可用优惠范围或申请额外折扣 | 合同支付提醒 -> 家长 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 合同支付 | POST /api/v1/contracts/{id}/payment | Contract/Order/Payment | 待家长查看 -> 待手写签字 -> 已手写签字 -> 待支付 -> 支付中 -> 支付成功 -> 支付失败 -> 已关闭 | 合同作废重签审批:合同已推送、已签字、已支付或已盖章后需要作废重签 | 企业盖章完成通知 -> 家长/课程顾问/销售人员/市场人员 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 角色终端与合同创建 | 明确管理人员在 PC Web 维护课程价格、组合价格、可用优惠和审批规则;销售/市场/课程顾问通过迪诺学堂教师端 App/小程序创建合同、申请额外折扣并推送家长签署。 | PC 价格优惠配置、员工端合同创建、员工端额外折扣申请、推送家长签署 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;PC Web 无一线销售制单入口,员工端只能操作本人授权学员和授权优惠。 |
| 优惠价格治理 | 补齐价格规则、组合价格、优惠试算器、规则冲突提示、额外折扣审批、合同项分摊和退款反算;额外折扣须审批通过后才进入最终报价。 | 课程价格管理、组合价格管理、可用优惠规则、额外折扣审批、员工端报价确认 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;合同、订单、支付、优惠分摊和退款测算金额一致。 |
| 签署支付与企业盖章 | 家长端必须先完成合同手写签字,系统才开放支付;支付成功后自动触发企业电子公章并归档合同文件。 | 家长合同查看、手写签字、合同支付、企业电子公章、合同归档 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;未手写签字不可支付;支付成功后企业电子公章、合同归档和状态回写自动完成。 |
| 合同变更 | 补充合同变更类型、补充协议签署、权益重算、收退差、监管重报和财务凭证调整。 | 合同详情、补充协议、转课测算、退款审批 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;合同变更后课表、课消、应收、监管备案和凭证同步更新。 |
| 监管支付 | 增加监管回执失败重试、人工处理、回执归档和状态提示。 | 监管报送日志、合同详情、付款单 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;每笔监管相关资金动作均有报送状态、回执和失败处理入口。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| ContractTemplate | 统一电子合同模板;落地表:con_contract_template |
| CoursePricePolicy | 课程价格、组合价格和校区价格策略;落地表:con_price_policy |
| DiscountRule | 优惠、组合缴费和联报规则;落地表:con_discount_rule |
| DiscountSimulation | 优惠试算与权益拆分;落地表:con_discount_simulation |
| ExtraDiscountApply | 员工端额外折扣申请;落地表:con_extra_discount_apply |
| Contract | 合同主表;落地表:con_contract |
| GuardianHandSignature | 家长手写签字记录;落地表:con_guardian_hand_signature |
| EnterpriseSealTask | 企业电子公章盖章任务;落地表:con_enterprise_seal_task |
| Order | 订单和应收;落地表:ord_order |
| Payment | 收款单;落地表:ord_payment |
| SupervisionAccount | 合同、收款、课消、退费监管报送;落地表:con_supervision_report |
| Refund | 退款单;落地表:ord_refund |
| ClassCourseTransfer | 转班转课权益变更;落地表:con_class_course_transfer |
关联引用对象
| 对象 | 说明 |
|---|---|
| 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 |
| CustomerFamily | 客户家庭档案;引用来源:CRM / crm_customer_family |
| Guardian | 监护人/家长资料;引用来源:CRM / crm_guardian |
| Student | 学员基础档案;引用来源:CRM / stu_student |
| Course/Product | 课程产品;引用来源:EDU / edu_course |
| Class | 班级;引用来源:EDU / edu_class |
| Consumption | 课消记录;引用来源:EDU / edu_consumption |
| LegalEntity | 法人主体、税务主体和收款主体;引用来源:FND / sys_legal_entity |
| FinanceVoucher | 会计凭证;引用来源:FIN / fin_voucher |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| ContractTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ContractTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ContractTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ContractTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ContractTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ContractTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ContractTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ContractTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ContractTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ContractTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ContractTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ContractTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ContractTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| ContractTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| ContractTemplate | contract_type | VARCHAR(32) | 是 | 课程/续费/转课/补充协议 | 普通 |
| ContractTemplate | template_body | LONGTEXT | 是 | 合同正文模板 | 普通 |
| ContractTemplate | variable_schema | JSON | 是 | 变量定义 | 普通 |
| ContractTemplate | version_no | INT | 是 | 模板版本 | 普通 |
| ContractTemplate | review_status | VARCHAR(32) | 是 | 草稿/审核中/已通过/已停用 | 普通 |
| CoursePricePolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| CoursePricePolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| CoursePricePolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| CoursePricePolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| CoursePricePolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| CoursePricePolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| CoursePricePolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| CoursePricePolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| CoursePricePolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| CoursePricePolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| CoursePricePolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| CoursePricePolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| CoursePricePolicy | policy_code | VARCHAR(64) | 是 | 价格策略编码,唯一 | 普通 |
| CoursePricePolicy | policy_name | VARCHAR(128) | 是 | 价格策略名称 | 普通 |
| CoursePricePolicy | course_id | BIGINT | 否 | 适用课程 ID,组合价格可为空 | 普通 |
| CoursePricePolicy | course_combo_json | JSON | 否 | 组合课程、多科联报或课包价格明细 | 普通 |
| CoursePricePolicy | price_type | VARCHAR(32) | 是 | 标准价/校区价/组合价/多科联报价 | 普通 |
| CoursePricePolicy | price_amount | DECIMAL(18,2) | 是 | 价格金额 | 普通 |
| CoursePricePolicy | campus_scope | JSON | 是 | 适用校区范围 | 普通 |
| CoursePricePolicy | effective_start_at | DATETIME | 是 | 生效开始时间 | 普通 |
| CoursePricePolicy | effective_end_at | DATETIME | 否 | 生效结束时间 | 普通 |
| CoursePricePolicy | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| CoursePricePolicy | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| CoursePricePolicy | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| CoursePricePolicy | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| DiscountRule | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| DiscountRule | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| DiscountRule | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| DiscountRule | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| DiscountRule | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| DiscountRule | created_at | DATETIME | 是 | 创建时间 | 普通 |
| DiscountRule | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| DiscountRule | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| DiscountRule | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| DiscountRule | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| DiscountRule | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| DiscountRule | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| DiscountRule | rule_code | VARCHAR(64) | 是 | 优惠规则编码,唯一 | 普通 |
| DiscountRule | rule_name | VARCHAR(128) | 是 | 优惠规则名称 | 普通 |
| DiscountRule | rule_type | VARCHAR(32) | 是 | 满减/折扣/赠课/多科联报/组合缴费 | 普通 |
| DiscountRule | course_scope | JSON | 是 | 适用课程/班型/课包范围 | 普通 |
| DiscountRule | campus_scope | JSON | 是 | 适用校区范围 | 普通 |
| DiscountRule | stack_policy | VARCHAR(32) | 是 | 可叠加/互斥/需审批 | 普通 |
| DiscountRule | discount_value | DECIMAL(18,2) | 否 | 优惠值,金额、折扣或赠课按 rule_type 解释 | 普通 |
| DiscountRule | approval_threshold | DECIMAL(18,2) | 否 | 超过阈值触发审批 | 普通 |
| DiscountRule | effective_start_at | DATETIME | 是 | 生效开始时间 | 普通 |
| DiscountRule | effective_end_at | DATETIME | 否 | 生效结束时间 | 普通 |
| DiscountRule | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| DiscountRule | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| DiscountRule | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| DiscountRule | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| DiscountSimulation | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| DiscountSimulation | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| DiscountSimulation | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| DiscountSimulation | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| DiscountSimulation | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| DiscountSimulation | created_at | DATETIME | 是 | 创建时间 | 普通 |
| DiscountSimulation | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| DiscountSimulation | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| DiscountSimulation | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| DiscountSimulation | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| DiscountSimulation | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| DiscountSimulation | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| DiscountSimulation | simulation_no | VARCHAR(64) | 是 | 试算编号,唯一 | 普通 |
| DiscountSimulation | student_id | BIGINT | 是 | 学员 ID | 普通 |
| DiscountSimulation | employee_id | BIGINT | 否 | 发起报价的员工 ID | 普通 |
| DiscountSimulation | price_policy_ids | JSON | 是 | 引用的价格策略 ID 列表 | 普通 |
| DiscountSimulation | course_combo_json | JSON | 是 | 组合购买课程明细 | 普通 |
| DiscountSimulation | discount_detail_json | JSON | 是 | 优惠计算明细 | 普通 |
| DiscountSimulation | benefit_allocation_json | JSON | 是 | 权益和金额分摊结果 | 普通 |
| DiscountSimulation | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| DiscountSimulation | payable_amount | DECIMAL(18,2) | 是 | 最终应付金额 | 普通 |
| DiscountSimulation | simulation_status | VARCHAR(32) | 是 | 有效/失效/已转订单 | 普通 |
| ExtraDiscountApply | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ExtraDiscountApply | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ExtraDiscountApply | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ExtraDiscountApply | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ExtraDiscountApply | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ExtraDiscountApply | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ExtraDiscountApply | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ExtraDiscountApply | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ExtraDiscountApply | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ExtraDiscountApply | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ExtraDiscountApply | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ExtraDiscountApply | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ExtraDiscountApply | apply_no | VARCHAR(64) | 是 | 额外折扣申请编号,唯一 | 普通 |
| ExtraDiscountApply | contract_draft_id | BIGINT | 否 | 关联合同草稿 ID | 普通 |
| ExtraDiscountApply | student_id | BIGINT | 是 | 学员 ID | 普通 |
| ExtraDiscountApply | employee_id | BIGINT | 是 | 申请员工 ID | 普通 |
| ExtraDiscountApply | apply_amount | DECIMAL(18,2) | 是 | 申请额外折扣金额 | 普通 |
| ExtraDiscountApply | apply_reason | VARCHAR(512) | 是 | 申请原因 | 普通 |
| ExtraDiscountApply | profit_impact_json | JSON | 否 | 利润影响、课程项分摊和审批参考数据 | 普通 |
| ExtraDiscountApply | effective_discount_amount | DECIMAL(18,2) | 否 | 审批通过后实际生效折扣 | 普通 |
| ExtraDiscountApply | file_ids | JSON | 否 | 附件文件 ID 列表,文件中心统一管理 | 普通 |
| ExtraDiscountApply | evidence_snapshot | JSON | 否 | 关键凭据快照,提交后不可直接覆盖 | 普通 |
| ExtraDiscountApply | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| ExtraDiscountApply | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| Contract | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Contract | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Contract | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Contract | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Contract | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Contract | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Contract | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Contract | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Contract | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Contract | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Contract | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Contract | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Contract | contract_no | VARCHAR(64) | 是 | 合同编号,唯一 | 普通 |
| Contract | student_id | BIGINT | 是 | 学员 ID | 普通 |
| Contract | family_id | BIGINT | 否 | 客户家庭 ID | 普通 |
| Contract | template_id | BIGINT | 是 | 合同模板 ID | 普通 |
| Contract | employee_id | BIGINT | 否 | 创建合同的销售/市场/课程顾问员工 ID | 普通 |
| Contract | source_terminal | VARCHAR(32) | 是 | 来源终端,教师端 App/小程序或 PC 管理端 | 普通 |
| Contract | simulation_id | BIGINT | 否 | 关联优惠试算 ID | 普通 |
| Contract | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| Contract | hand_sign_status | VARCHAR(32) | 是 | 待手写签字/已手写签字/签字作废 | 普通 |
| Contract | sign_status | VARCHAR(32) | 是 | 待家长签署/已手写签字/已作废 | 普通 |
| Contract | payment_status | VARCHAR(32) | 是 | 待支付/支付中/支付成功/支付失败/已关闭 | 普通 |
| Contract | enterprise_seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/盖章失败/已归档 | 普通 |
| Contract | contract_status | VARCHAR(32) | 是 | 草稿/生效/履约中/已终止/已退费 | 普通 |
| Contract | supervision_status | VARCHAR(32) | 否 | 监管报送状态 | 普通 |
| Contract | currency | VARCHAR(8) | 是 | 币种,默认 CNY | 普通 |
| Contract | amount | DECIMAL(18,2) | 是 | 含税金额,必须大于等于 0 | 普通 |
| Contract | tax_amount | DECIMAL(18,2) | 否 | 税额,按发票或税率计算 | 普通 |
| Contract | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| Contract | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| GuardianHandSignature | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| GuardianHandSignature | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| GuardianHandSignature | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| GuardianHandSignature | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| GuardianHandSignature | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| GuardianHandSignature | created_at | DATETIME | 是 | 创建时间 | 普通 |
| GuardianHandSignature | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| GuardianHandSignature | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| GuardianHandSignature | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| GuardianHandSignature | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| GuardianHandSignature | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| GuardianHandSignature | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| GuardianHandSignature | signature_no | VARCHAR(64) | 是 | 手写签字记录编号,唯一 | 普通 |
| GuardianHandSignature | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| GuardianHandSignature | guardian_id | BIGINT | 是 | 签字家长 ID | 普通 |
| GuardianHandSignature | signature_file_id | BIGINT | 是 | 手写签字图片文件 ID | 普通 |
| GuardianHandSignature | sign_trace_json | JSON | 否 | 签字轨迹、设备、IP 和时间戳 | 普通 |
| GuardianHandSignature | signed_at | DATETIME | 是 | 手写签字完成时间 | 普通 |
| GuardianHandSignature | signature_status | VARCHAR(32) | 是 | 有效/作废/重签 | 普通 |
| EnterpriseSealTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| EnterpriseSealTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| EnterpriseSealTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| EnterpriseSealTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| EnterpriseSealTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| EnterpriseSealTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| EnterpriseSealTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| EnterpriseSealTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| EnterpriseSealTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| EnterpriseSealTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| EnterpriseSealTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| EnterpriseSealTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| EnterpriseSealTask | seal_task_no | VARCHAR(64) | 是 | 盖章任务编号,唯一 | 普通 |
| EnterpriseSealTask | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| EnterpriseSealTask | payment_id | BIGINT | 是 | 触发盖章的支付 ID | 普通 |
| EnterpriseSealTask | legal_entity_id | BIGINT | 是 | 企业电子公章所属法人主体 ID | 普通 |
| EnterpriseSealTask | seal_rule_code | VARCHAR(64) | 是 | 盖章规则编码 | 普通 |
| EnterpriseSealTask | sealed_file_id | BIGINT | 否 | 已盖章合同文件 ID | 普通 |
| EnterpriseSealTask | seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/失败/已归档 | 普通 |
| EnterpriseSealTask | failure_reason | VARCHAR(512) | 否 | 盖章失败原因 | 普通 |
| EnterpriseSealTask | retry_count | INT | 是 | 重试次数 | 普通 |
| EnterpriseSealTask | sealed_at | DATETIME | 否 | 盖章完成时间 | 普通 |
| Order | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Order | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Order | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Order | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Order | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Order | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Order | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Order | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Order | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Order | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Order | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Order | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Order | order_no | VARCHAR(64) | 是 | 订单编号,唯一 | 普通 |
| Order | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| Order | student_id | BIGINT | 是 | 学员 ID | 普通 |
| Order | receivable_amount | DECIMAL(18,2) | 是 | 应收金额 | 普通 |
| Order | discount_amount | DECIMAL(18,2) | 否 | 优惠金额 | 普通 |
| Order | paid_amount | DECIMAL(18,2) | 是 | 已收金额 | 普通 |
| Order | order_status | VARCHAR(32) | 是 | 待支付/支付中/已支付/已关闭 | 普通 |
| Payment | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Payment | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Payment | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Payment | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Payment | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Payment | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Payment | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Payment | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Payment | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Payment | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Payment | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Payment | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Payment | payment_no | VARCHAR(64) | 是 | 收款单号,唯一 | 普通 |
| Payment | order_id | BIGINT | 是 | 订单 ID | 普通 |
| Payment | pay_channel | VARCHAR(32) | 是 | 微信/支付宝/银行卡/现金/监管账户 | 普通 |
| Payment | paid_amount | DECIMAL(18,2) | 是 | 实收金额 | 普通 |
| Payment | paid_at | DATETIME | 否 | 支付完成时间 | 普通 |
| Payment | channel_trade_no | VARCHAR(128) | 否 | 渠道流水号 | 普通 |
| Payment | supervision_account_id | BIGINT | 否 | 资金监管账户 ID | 普通 |
| Payment | receipt_status | VARCHAR(32) | 是 | 待确认/已确认/异常 | 普通 |
| SupervisionAccount | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| SupervisionAccount | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| SupervisionAccount | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| SupervisionAccount | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| SupervisionAccount | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| SupervisionAccount | created_at | DATETIME | 是 | 创建时间 | 普通 |
| SupervisionAccount | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| SupervisionAccount | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| SupervisionAccount | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| SupervisionAccount | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| SupervisionAccount | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| SupervisionAccount | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| SupervisionAccount | report_no | VARCHAR(64) | 是 | 报送编号,唯一 | 普通 |
| SupervisionAccount | biz_type | VARCHAR(64) | 是 | 合同/收款/课消/退费 | 普通 |
| SupervisionAccount | biz_id | BIGINT | 是 | 业务 ID | 普通 |
| SupervisionAccount | platform_code | VARCHAR(64) | 是 | 监管平台编码 | 普通 |
| SupervisionAccount | payload_json | JSON | 是 | 报送报文 | 普通 |
| SupervisionAccount | receipt_json | JSON | 否 | 回执报文 | 普通 |
| SupervisionAccount | report_status | VARCHAR(32) | 是 | 待报送/成功/失败/重试中 | 普通 |
| Refund | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Refund | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Refund | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Refund | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Refund | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Refund | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Refund | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Refund | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Refund | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Refund | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Refund | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Refund | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Refund | refund_no | VARCHAR(64) | 是 | 退款编号,唯一 | 普通 |
| Refund | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| Refund | student_id | BIGINT | 是 | 学员 ID | 普通 |
| Refund | refund_amount | DECIMAL(18,2) | 是 | 退款金额 | 普通 |
| Refund | calculate_detail | JSON | 是 | 退款计算明细 | 普通 |
| Refund | refund_status | VARCHAR(32) | 是 | 待审批/待退款/已退款/已驳回/失败 | 普通 |
| Refund | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| Refund | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| ClassCourseTransfer | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ClassCourseTransfer | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ClassCourseTransfer | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ClassCourseTransfer | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ClassCourseTransfer | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ClassCourseTransfer | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ClassCourseTransfer | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ClassCourseTransfer | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ClassCourseTransfer | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ClassCourseTransfer | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ClassCourseTransfer | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ClassCourseTransfer | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ClassCourseTransfer | transfer_no | VARCHAR(64) | 是 | 转班转课编号,唯一 | 普通 |
| ClassCourseTransfer | student_id | BIGINT | 是 | 学员 ID | 普通 |
| ClassCourseTransfer | from_class_id | BIGINT | 否 | 原班级 ID | 普通 |
| ClassCourseTransfer | to_class_id | BIGINT | 否 | 目标班级 ID | 普通 |
| ClassCourseTransfer | from_course_id | BIGINT | 否 | 原课程 ID | 普通 |
| ClassCourseTransfer | to_course_id | BIGINT | 否 | 目标课程 ID | 普通 |
| ClassCourseTransfer | rights_snapshot | JSON | 是 | 权益变更快照 | 普通 |
| ClassCourseTransfer | transfer_status | VARCHAR(32) | 是 | 待确认/已生效/已取消 | 普通 |
| ClassCourseTransfer | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| ClassCourseTransfer | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
引用对象字段字典
| 引用表 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_organization | Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_organization | Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_organization | Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_organization | Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_organization | Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_organization | Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_organization | Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_organization | Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_organization | Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_organization | Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_organization | Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_organization | Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| sys_organization | Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| sys_organization | Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| sys_organization | Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| sys_organization | Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| sys_organization | Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_user | User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user | User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user | User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user | User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user | User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user | User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user | User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user | User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user | User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user | User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user | User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user | User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user | User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| sys_user | User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| sys_user | User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| sys_user | User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| sys_user | User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| sys_user | User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| sys_employee | Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_employee | Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_employee | Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_employee | Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_employee | Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_employee | Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_employee | Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_employee | Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_employee | Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_employee | Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_employee | Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_employee | Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_employee | Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| sys_employee | Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| sys_employee | Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| sys_employee | Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| sys_employee | Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| sys_employee | Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| sys_role | Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_role | Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_role | Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_role | Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_role | Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_role | Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_role | Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_role | Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_role | Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_role | Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_role | Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_role | Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_role | Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| sys_role | Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| sys_role | Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| sys_role | Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| sys_role | Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_approval_flow | ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_approval_flow | ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_approval_flow | ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_approval_flow | ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_approval_flow | ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_approval_flow | ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_approval_flow | ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_approval_flow | ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_approval_flow | ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| sys_approval_flow | ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_approval_flow | ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| sys_approval_flow | ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| sys_approval_flow | ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| sys_approval_flow | ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| sys_approval_flow | ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_message_template | MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_message_template | MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_message_template | MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_message_template | MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_message_template | MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_message_template | MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_message_template | MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_message_template | MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_message_template | MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_message_template | MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_message_template | MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_message_template | MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| sys_message_template | MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| sys_message_template | MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| sys_message_template | MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| sys_message_template | MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| sys_message_template | MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| sys_audit_log | AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_audit_log | AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_audit_log | AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_audit_log | AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_audit_log | AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_audit_log | AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_audit_log | AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_audit_log | AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_audit_log | AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_audit_log | AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_audit_log | AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_audit_log | AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_audit_log | AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| sys_audit_log | AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sys_audit_log | AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| sys_audit_log | AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| sys_audit_log | AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| sys_audit_log | AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| sys_audit_log | AuditLog | ip_address | VARCHAR(64) | 否 | 操作 IP | 普通 |
| int_integration_log | IntegrationLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| int_integration_log | IntegrationLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| int_integration_log | IntegrationLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| int_integration_log | IntegrationLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| int_integration_log | IntegrationLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| int_integration_log | IntegrationLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| int_integration_log | IntegrationLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| int_integration_log | IntegrationLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| int_integration_log | IntegrationLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| int_integration_log | IntegrationLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| int_integration_log | IntegrationLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| int_integration_log | IntegrationLog | request_id | VARCHAR(128) | 是 | 请求 ID,幂等键 | 普通 |
| int_integration_log | IntegrationLog | system_code | VARCHAR(64) | 是 | 外部系统编码 | 普通 |
| int_integration_log | IntegrationLog | api_path | VARCHAR(512) | 是 | 接口路径 | 普通 |
| int_integration_log | IntegrationLog | biz_type | VARCHAR(64) | 否 | 业务类型 | 普通 |
| int_integration_log | IntegrationLog | biz_id | BIGINT | 否 | 业务 ID | 普通 |
| int_integration_log | IntegrationLog | request_payload | JSON | 否 | 请求报文,敏感字段脱敏 | 敏感 |
| int_integration_log | IntegrationLog | response_payload | JSON | 否 | 响应报文 | 普通 |
| int_integration_log | IntegrationLog | call_status | VARCHAR(32) | 是 | 成功/失败/超时/重试中 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | field_code | VARCHAR(128) | 是 | 字段编码,唯一 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | VARCHAR(64) | 是 | 脱敏规则 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | view_requires_approval | TINYINT | 是 | 明文查看是否需审批 | 普通 |
| sec_sensitive_field_policy | SensitiveFieldPolicy | watermark_required | TINYINT | 是 | 是否加水印 | 普通 |
| crm_customer_family | CustomerFamily | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| crm_customer_family | CustomerFamily | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| crm_customer_family | CustomerFamily | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| crm_customer_family | CustomerFamily | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| crm_customer_family | CustomerFamily | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| crm_customer_family | CustomerFamily | created_at | DATETIME | 是 | 创建时间 | 普通 |
| crm_customer_family | CustomerFamily | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| crm_customer_family | CustomerFamily | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| crm_customer_family | CustomerFamily | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| crm_customer_family | CustomerFamily | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| crm_customer_family | CustomerFamily | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| crm_customer_family | CustomerFamily | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| crm_customer_family | CustomerFamily | family_no | VARCHAR(64) | 是 | 家庭编号,唯一 | 普通 |
| crm_customer_family | CustomerFamily | primary_guardian_id | BIGINT | 否 | 主监护人 ID | 普通 |
| crm_customer_family | CustomerFamily | student_id | BIGINT | 否 | 主学员 ID | 普通 |
| crm_customer_family | CustomerFamily | owner_id | BIGINT | 否 | 客户归属人 | 普通 |
| crm_customer_family | CustomerFamily | risk_level | VARCHAR(32) | 否 | 风险等级 | 普通 |
| crm_customer_family | CustomerFamily | last_follow_at | DATETIME | 否 | 最近跟进时间 | 普通 |
| crm_customer_family | CustomerFamily | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| crm_customer_family | CustomerFamily | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| crm_guardian | Guardian | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| crm_guardian | Guardian | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| crm_guardian | Guardian | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| crm_guardian | Guardian | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| crm_guardian | Guardian | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| crm_guardian | Guardian | created_at | DATETIME | 是 | 创建时间 | 普通 |
| crm_guardian | Guardian | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| crm_guardian | Guardian | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| crm_guardian | Guardian | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| crm_guardian | Guardian | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| crm_guardian | Guardian | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| crm_guardian | Guardian | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| crm_guardian | Guardian | family_id | BIGINT | 是 | 家庭 ID | 普通 |
| crm_guardian | Guardian | guardian_name | VARCHAR(64) | 是 | 监护人姓名 | 普通 |
| crm_guardian | Guardian | mobile | VARCHAR(32) | 是 | 手机号,敏感 | 敏感 |
| crm_guardian | Guardian | relationship | VARCHAR(32) | 是 | 与学员关系 | 普通 |
| crm_guardian | Guardian | wechat_openid | VARCHAR(128) | 否 | 微信 OpenID,敏感 | 敏感 |
| crm_guardian | Guardian | verify_status | VARCHAR(32) | 是 | 未验证/已验证/已解绑 | 普通 |
| stu_student | Student | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| stu_student | Student | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| stu_student | Student | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| stu_student | Student | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| stu_student | Student | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| stu_student | Student | created_at | DATETIME | 是 | 创建时间 | 普通 |
| stu_student | Student | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| stu_student | Student | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| stu_student | Student | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| stu_student | Student | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| stu_student | Student | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| stu_student | Student | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| stu_student | Student | student_no | VARCHAR(64) | 是 | 学员编号,唯一 | 普通 |
| stu_student | Student | family_id | BIGINT | 否 | 家庭 ID | 普通 |
| stu_student | Student | student_name | VARCHAR(64) | 是 | 学员姓名 | 普通 |
| stu_student | Student | gender | VARCHAR(16) | 否 | 性别 | 普通 |
| stu_student | Student | birthday | DATE | 否 | 出生日期 | 普通 |
| stu_student | Student | grade | VARCHAR(32) | 否 | 年级 | 普通 |
| stu_student | Student | school_name | VARCHAR(128) | 否 | 学校名称 | 普通 |
| stu_student | Student | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| stu_student | Student | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| edu_course | Course/Product | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_course | Course/Product | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_course | Course/Product | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_course | Course/Product | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_course | Course/Product | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_course | Course/Product | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_course | Course/Product | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_course | Course/Product | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_course | Course/Product | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_course | Course/Product | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_course | Course/Product | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_course | Course/Product | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_course | Course/Product | course_code | VARCHAR(64) | 是 | 课程编码,唯一 | 普通 |
| edu_course | Course/Product | course_name | VARCHAR(128) | 是 | 课程名称 | 普通 |
| edu_course | Course/Product | subject | VARCHAR(32) | 是 | 学科 | 普通 |
| edu_course | Course/Product | course_type | VARCHAR(32) | 是 | 班课/一对一/直播/录播 | 普通 |
| edu_course | Course/Product | grade_scope | JSON | 否 | 适用年级 | 普通 |
| edu_course | Course/Product | enabled | TINYINT | 是 | 是否启用 | 普通 |
| edu_class | Class | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_class | Class | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_class | Class | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_class | Class | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_class | Class | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_class | Class | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_class | Class | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_class | Class | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_class | Class | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_class | Class | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_class | Class | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_class | Class | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_class | Class | class_no | VARCHAR(64) | 是 | 班级编号,唯一 | 普通 |
| edu_class | Class | course_id | BIGINT | 是 | 课程 ID | 普通 |
| edu_class | Class | teacher_id | BIGINT | 否 | 主讲教师 ID | 普通 |
| edu_class | Class | classroom_id | BIGINT | 否 | 默认教室 ID | 普通 |
| edu_class | Class | capacity | INT | 是 | 班级容量 | 普通 |
| edu_class | Class | class_status | VARCHAR(32) | 是 | 筹备中/开班/结课/停课 | 普通 |
| edu_consumption | Consumption | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| edu_consumption | Consumption | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| edu_consumption | Consumption | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| edu_consumption | Consumption | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| edu_consumption | Consumption | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| edu_consumption | Consumption | created_at | DATETIME | 是 | 创建时间 | 普通 |
| edu_consumption | Consumption | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| edu_consumption | Consumption | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| edu_consumption | Consumption | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| edu_consumption | Consumption | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| edu_consumption | Consumption | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| edu_consumption | Consumption | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| edu_consumption | Consumption | lesson_id | BIGINT | 是 | 课次 ID | 普通 |
| edu_consumption | Consumption | student_id | BIGINT | 是 | 学员 ID | 普通 |
| edu_consumption | Consumption | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| edu_consumption | Consumption | consumed_hours | DECIMAL(8,2) | 是 | 消耗课时 | 普通 |
| edu_consumption | Consumption | consume_amount | DECIMAL(18,2) | 否 | 课消金额 | 普通 |
| edu_consumption | Consumption | consume_status | VARCHAR(32) | 是 | 待确认/已课消/已冲销/异常 | 普通 |
| sys_legal_entity | LegalEntity | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_legal_entity | LegalEntity | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_legal_entity | LegalEntity | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_legal_entity | LegalEntity | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_legal_entity | LegalEntity | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_legal_entity | LegalEntity | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_legal_entity | LegalEntity | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_legal_entity | LegalEntity | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_legal_entity | LegalEntity | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_legal_entity | LegalEntity | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_legal_entity | LegalEntity | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_legal_entity | LegalEntity | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_legal_entity | LegalEntity | entity_code | VARCHAR(64) | 是 | 主体编码,唯一 | 普通 |
| sys_legal_entity | LegalEntity | entity_name | VARCHAR(128) | 是 | 主体名称 | 普通 |
| sys_legal_entity | LegalEntity | taxpayer_no | VARCHAR(64) | 是 | 纳税人识别号 | 敏感 |
| sys_legal_entity | LegalEntity | bank_account_no | VARCHAR(64) | 否 | 银行账号,展示需脱敏 | 敏感 |
| sys_legal_entity | LegalEntity | invoice_rule | JSON | 否 | 开票与核验规则 | 普通 |
| sys_legal_entity | LegalEntity | enabled | TINYINT | 是 | 是否启用 | 普通 |
| fin_voucher | FinanceVoucher | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| fin_voucher | FinanceVoucher | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| fin_voucher | FinanceVoucher | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| fin_voucher | FinanceVoucher | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| fin_voucher | FinanceVoucher | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| fin_voucher | FinanceVoucher | created_at | DATETIME | 是 | 创建时间 | 普通 |
| fin_voucher | FinanceVoucher | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| fin_voucher | FinanceVoucher | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| fin_voucher | FinanceVoucher | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| fin_voucher | FinanceVoucher | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| fin_voucher | FinanceVoucher | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| fin_voucher | FinanceVoucher | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| fin_voucher | FinanceVoucher | voucher_no | VARCHAR(64) | 是 | 凭证编号,账套期间内唯一 | 普通 |
| fin_voucher | FinanceVoucher | account_set_id | BIGINT | 是 | 账套 ID | 普通 |
| fin_voucher | FinanceVoucher | period_code | VARCHAR(32) | 是 | 会计期间 | 普通 |
| fin_voucher | FinanceVoucher | source_biz_type | VARCHAR(64) | 否 | 来源业务类型 | 普通 |
| fin_voucher | FinanceVoucher | source_biz_no | VARCHAR(64) | 否 | 来源业务编号 | 普通 |
| fin_voucher | FinanceVoucher | voucher_status | VARCHAR(32) | 是 | 草稿/待审核/已审核/已过账/已红冲 | 普通 |
| fin_voucher | FinanceVoucher | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| fin_voucher | FinanceVoucher | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| con_contract_template | ContractTemplate | variable_schema | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_price_policy | CoursePricePolicy | course_combo_json | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_price_policy | CoursePricePolicy | campus_scope | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| con_discount_rule | DiscountRule | course_scope | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_discount_rule | DiscountRule | campus_scope | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| con_discount_simulation | DiscountSimulation | price_policy_ids | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_discount_simulation | DiscountSimulation | course_combo_json | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_discount_simulation | DiscountSimulation | discount_detail_json | DISCOUNT_DETAIL | {rules:[{ruleId:number, type:string, amount:number}], conflicts:string[], approvalRequired:boolean} | 优惠金额不得大于应收金额;互斥规则必须给出冲突原因 | {"rules":[{"ruleId":8,"type":"MULTI_SUBJECT","amount":300}],"approvalRequired":false} |
| con_discount_simulation | DiscountSimulation | benefit_allocation_json | BENEFIT_ALLOCATION | {items:[{courseId:number, hours:number, amount:number, giftHours:number}], validUntil:string} | 课程、课时、金额分摊总和必须与合同订单一致 | {"items":[{"courseId":1,"hours":40,"amount":6800,"giftHours":4}]} |
| con_extra_discount_apply | ExtraDiscountApply | profit_impact_json | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_extra_discount_apply | ExtraDiscountApply | file_ids | ID_LIST | array<number> | 数组长度 1-500;元素必须为已存在且未逻辑删除的业务 ID | [10001,10002] |
| con_extra_discount_apply | ExtraDiscountApply | evidence_snapshot | AUDIT_SNAPSHOT | {before?:object, after?:object, changedFields:string[], maskPolicy:string} | 敏感字段必须按脱敏策略写入,不允许存储明文密码或密钥 | {"changedFields":["owner_id"],"maskPolicy":"MOBILE_MASK"} |
| con_guardian_hand_signature | GuardianHandSignature | sign_trace_json | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_supervision_report | SupervisionAccount | payload_json | SUPERVISION_PAYLOAD | {bizType:string, contractNo:string, amount:number, student:object, attachments:number[]} | 报送字段必须满足教育局/监管账户配置的必填规则 | {"bizType":"CONTRACT","contractNo":"DNC20260628001","amount":6800} |
| con_supervision_report | SupervisionAccount | receipt_json | SUPERVISION_RECEIPT | {receiptNo:string, status:string, receivedAt:string, rawFileId?:number, errorCode?:string} | 回执不可覆盖,重报生成新版本 | {"receiptNo":"REG20260628001","status":"SUCCESS"} |
| ord_refund | Refund | calculate_detail | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| con_class_course_transfer | ClassCourseTransfer | rights_snapshot | AUDIT_SNAPSHOT | {before?:object, after?:object, changedFields:string[], maskPolicy:string} | 敏感字段必须按脱敏策略写入,不允许存储明文密码或密钥 | {"changedFields":["owner_id"],"maskPolicy":"MOBILE_MASK"} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| con_contract_template | ContractTemplate | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_contract_template | ContractTemplate | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_contract_template | ContractTemplate | contract_type | CONTRACT_TYPE | 课程、续费、转课、补充协议 | 非终态,可按状态机或字典规则流转 | 课程/续费/转课/补充协议 |
| con_contract_template | ContractTemplate | review_status | REVIEW_STATUS | DRAFT 草稿、PENDING 审核中、APPROVED 已通过、REJECTED 已驳回、DISABLED 已停用 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 草稿/审核中/已通过/已停用 |
| con_price_policy | CoursePricePolicy | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_price_policy | CoursePricePolicy | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_price_policy | CoursePricePolicy | price_type | PRICE_TYPE | 标准价、校区价、组合价、多科联报价 | 非终态,可按状态机或字典规则流转 | 标准价/校区价/组合价/多科联报价 |
| con_price_policy | CoursePricePolicy | campus_scope | CAMPUS_SCOPE | ALL_CAMPUS 全部校区、REGION_CAMPUS 区域校区、SELECTED_CAMPUS 指定校区、CURRENT_CAMPUS 当前校区、NONE 不限定校区 | 非终态,可按状态机或字典规则流转 | 适用校区范围 |
| con_price_policy | CoursePricePolicy | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| con_price_policy | CoursePricePolicy | biz_status | BIZ_STATUS | DRAFT 草稿、SUBMITTED 已提交、PROCESSING 处理中、ACTIVE 生效中、SUSPENDED 已暂停、CLOSED 已关闭、CANCELLED 已取消 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 业务状态,取值来自状态机字典 |
| con_discount_rule | DiscountRule | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_discount_rule | DiscountRule | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_discount_rule | DiscountRule | rule_type | RULE_TYPE | 满减、折扣、赠课、多科联报、组合缴费 | 非终态,可按状态机或字典规则流转 | 满减/折扣/赠课/多科联报/组合缴费 |
| con_discount_rule | DiscountRule | course_scope | COURSE_SCOPE | 适用课程、班型、课包 | 非终态,可按状态机或字典规则流转 | 适用课程/班型/课包范围 |
| con_discount_rule | DiscountRule | campus_scope | CAMPUS_SCOPE | ALL_CAMPUS 全部校区、REGION_CAMPUS 区域校区、SELECTED_CAMPUS 指定校区、CURRENT_CAMPUS 当前校区、NONE 不限定校区 | 非终态,可按状态机或字典规则流转 | 适用校区范围 |
| con_discount_rule | DiscountRule | stack_policy | STACK_POLICY | 可叠加、互斥、需审批 | 非终态,可按状态机或字典规则流转 | 可叠加/互斥/需审批 |
| con_discount_rule | DiscountRule | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| con_discount_rule | DiscountRule | biz_status | BIZ_STATUS | DRAFT 草稿、SUBMITTED 已提交、PROCESSING 处理中、ACTIVE 生效中、SUSPENDED 已暂停、CLOSED 已关闭、CANCELLED 已取消 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 业务状态,取值来自状态机字典 |
| con_discount_simulation | DiscountSimulation | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_discount_simulation | DiscountSimulation | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_discount_simulation | DiscountSimulation | simulation_status | SIMULATION_STATUS | 有效、失效、已转订单 | 非终态,可按状态机或字典规则流转 | 有效/失效/已转订单 |
| con_extra_discount_apply | ExtraDiscountApply | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_extra_discount_apply | ExtraDiscountApply | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_extra_discount_apply | ExtraDiscountApply | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| con_contract | Contract | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_contract | Contract | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_contract | Contract | employee_id | EMPLOYEE_ID | 创建合同的销售、市场、课程顾问员工 ID | 非终态,可按状态机或字典规则流转 | 创建合同的销售/市场/课程顾问员工 ID |
| con_contract | Contract | source_terminal | SOURCE_TERMINAL | 教师端 App、小程序或 PC 管理端 | 非终态,可按状态机或字典规则流转 | 来源终端,教师端 App/小程序或 PC 管理端 |
| con_contract | Contract | hand_sign_status | HAND_SIGN_STATUS | 待手写签字、已手写签字、签字作废 | 非终态,可按状态机或字典规则流转 | 待手写签字/已手写签字/签字作废 |
| con_contract | Contract | sign_status | SIGN_STATUS | UNSIGNED 未签到、SIGNED 已签到、LATE 迟到签到、LEAVE 请假、ABSENT 缺席 | 非终态,可按状态机或字典规则流转 | 待家长签署/已手写签字/已作废 |
| con_contract | Contract | payment_status | PAYMENT_STATUS | PENDING 待支付/待付款、PROCESSING 处理中、SUCCESS 成功、FAILED 失败、CLOSED 已关闭 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待支付/支付中/支付成功/支付失败/已关闭 |
| con_contract | Contract | enterprise_seal_status | ENTERPRISE_SEAL_STATUS | 未触发、盖章中、已盖章、盖章失败、已归档 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 未触发/盖章中/已盖章/盖章失败/已归档 |
| con_contract | Contract | contract_status | CONTRACT_STATUS | 草稿、生效、履约中、已终止、已退费 | 非终态,可按状态机或字典规则流转 | 草稿/生效/履约中/已终止/已退费 |
| con_contract | Contract | supervision_status | SUPERVISION_STATUS | NOT_REQUIRED 无需报送、PENDING 待报送、SUCCESS 报送成功、FAILED 报送失败、RETRYING 重试中、MANUAL_REVIEW 人工复核 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 监管报送状态 |
| con_contract | Contract | currency | CURRENCY | CNY 人民币 | 非终态,可按状态机或字典规则流转 | 币种,默认 CNY |
| con_contract | Contract | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| con_guardian_hand_signature | GuardianHandSignature | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_guardian_hand_signature | GuardianHandSignature | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_guardian_hand_signature | GuardianHandSignature | signature_status | SIGNATURE_STATUS | 有效、作废、重签 | 非终态,可按状态机或字典规则流转 | 有效/作废/重签 |
| con_enterprise_seal_task | EnterpriseSealTask | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_enterprise_seal_task | EnterpriseSealTask | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_enterprise_seal_task | EnterpriseSealTask | seal_status | SEAL_STATUS | 未触发、盖章中、已盖章、失败、已归档 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 未触发/盖章中/已盖章/失败/已归档 |
| ord_order | Order | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| ord_order | Order | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| ord_order | Order | order_status | ORDER_STATUS | DRAFT 草稿、PENDING 待处理、PARTIAL 部分完成、COMPLETED 已完成、CANCELLED 已取消、AFTER_SALES 售后中 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待支付/支付中/已支付/已关闭 |
| ord_payment | Payment | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| ord_payment | Payment | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| ord_payment | Payment | pay_channel | PAY_CHANNEL | 微信、支付宝、银行卡、现金、监管账户 | 非终态,可按状态机或字典规则流转 | 微信/支付宝/银行卡/现金/监管账户 |
| ord_payment | Payment | receipt_status | RECEIPT_STATUS | 待确认、已确认、异常 | 非终态,可按状态机或字典规则流转 | 待确认/已确认/异常 |
| con_supervision_report | SupervisionAccount | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_supervision_report | SupervisionAccount | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_supervision_report | SupervisionAccount | biz_type | BIZ_TYPE | LEAD 线索、CUSTOMER 客户、CONTRACT 合同、ORDER 订单、PAYMENT 收款、REFUND 退费、LESSON 课次、CONSUMPTION 课消、EXPENSE 报销、VOUCHER 凭证、INVOICE 发票、LIVE 直播、PATROL 巡课、DEVICE 设备、MATERIAL 物料、PAYROLL 工资 | 非终态,可按状态机或字典规则流转 | 合同/收款/课消/退费 |
| con_supervision_report | SupervisionAccount | report_status | REPORT_STATUS | PENDING 待报送、SUCCESS 成功、FAILED 失败、RETRYING 重试中 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待报送/成功/失败/重试中 |
| ord_refund | Refund | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| ord_refund | Refund | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| ord_refund | Refund | refund_status | REFUND_STATUS | 待审批、待退款、已退款、已驳回、失败 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待审批/待退款/已退款/已驳回/失败 |
| ord_refund | Refund | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
| con_class_course_transfer | ClassCourseTransfer | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| con_class_course_transfer | ClassCourseTransfer | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| con_class_course_transfer | ClassCourseTransfer | transfer_status | TRANSFER_STATUS | 待确认、已生效、已取消 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 待确认/已生效/已取消 |
| con_class_course_transfer | ClassCourseTransfer | approval_status | APPROVAL_STATUS | NOT_STARTED 未发起、PENDING 审批中、APPROVED 已通过、REJECTED 已驳回、REVOKED 已撤回 | 非终态,可按状态机或字典规则流转 | 审批状态,未发起为空 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | con_price_policy | CoursePricePolicy | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 本模块对象 | con_discount_rule | DiscountRule | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 本模块对象 | con_contract | Contract | tax_amount | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | ord_payment | Payment | pay_channel | 普通 | BANK_ACCOUNT_MASK | 默认展示后 4 位;付款、报销、工资发放场景按岗位权限展示 | 导出银行账号必须走财务/安全双审批 | 查看、变更、付款使用、导出均记录业务单号和操作者 | 财务 PC 可按权限明文;员工端和移动端默认脱敏 |
| 本模块对象 | con_supervision_report | SupervisionAccount | payload_json | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 引用对象 | int_integration_log | IntegrationLog | request_payload | 敏感 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | int_integration_log | IntegrationLog | response_payload | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 引用对象 | sec_sensitive_field_policy | SensitiveFieldPolicy | mask_rule | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | crm_customer_family | CustomerFamily | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | crm_guardian | Guardian | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 引用对象 | crm_guardian | Guardian | wechat_openid | 敏感 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | stu_student | Student | remark | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | sys_legal_entity | LegalEntity | taxpayer_no | 敏感 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | sys_legal_entity | LegalEntity | bank_account_no | 敏感 | BANK_ACCOUNT_MASK | 默认展示后 4 位;付款、报销、工资发放场景按岗位权限展示 | 导出银行账号必须走财务/安全双审批 | 查看、变更、付款使用、导出均记录业务单号和操作者 | 财务 PC 可按权限明文;员工端和移动端默认脱敏 |
| 引用对象 | sys_legal_entity | LegalEntity | invoice_rule | 普通 | TAX_INVOICE_MASK | 默认按税号/发票号局部脱敏;发票原图、OCR 结果和国税回执按财务权限查看 | 财务导出需审批并加水印;国税官方回执随业务单归档 | OCR、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 引用对象 | fin_voucher | FinanceVoucher | voucher_no | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| con_contract_template | ContractTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_contract_template | ContractTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_contract_template | ContractTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_contract_template | ContractTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_contract_template | ContractTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_contract_template | ContractTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_contract_template | ContractTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_contract_template | ContractTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_contract_template | ContractTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_contract_template | ContractTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_contract_template | ContractTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_contract_template | ContractTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_contract_template | ContractTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| con_contract_template | ContractTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| con_contract_template | ContractTemplate | contract_type | VARCHAR(32) | 是 | 课程/续费/转课/补充协议 | 普通 |
| con_contract_template | ContractTemplate | template_body | LONGTEXT | 是 | 合同正文模板 | 普通 |
| con_contract_template | ContractTemplate | variable_schema | JSON | 是 | 变量定义 | 普通 |
| con_contract_template | ContractTemplate | version_no | INT | 是 | 模板版本 | 普通 |
| con_contract_template | ContractTemplate | review_status | VARCHAR(32) | 是 | 草稿/审核中/已通过/已停用 | 普通 |
| con_price_policy | CoursePricePolicy | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_price_policy | CoursePricePolicy | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_price_policy | CoursePricePolicy | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_price_policy | CoursePricePolicy | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_price_policy | CoursePricePolicy | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_price_policy | CoursePricePolicy | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_price_policy | CoursePricePolicy | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_price_policy | CoursePricePolicy | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_price_policy | CoursePricePolicy | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_price_policy | CoursePricePolicy | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_price_policy | CoursePricePolicy | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_price_policy | CoursePricePolicy | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_price_policy | CoursePricePolicy | policy_code | VARCHAR(64) | 是 | 价格策略编码,唯一 | 普通 |
| con_price_policy | CoursePricePolicy | policy_name | VARCHAR(128) | 是 | 价格策略名称 | 普通 |
| con_price_policy | CoursePricePolicy | course_id | BIGINT | 否 | 适用课程 ID,组合价格可为空 | 普通 |
| con_price_policy | CoursePricePolicy | course_combo_json | JSON | 否 | 组合课程、多科联报或课包价格明细 | 普通 |
| con_price_policy | CoursePricePolicy | price_type | VARCHAR(32) | 是 | 标准价/校区价/组合价/多科联报价 | 普通 |
| con_price_policy | CoursePricePolicy | price_amount | DECIMAL(18,2) | 是 | 价格金额 | 普通 |
| con_price_policy | CoursePricePolicy | campus_scope | JSON | 是 | 适用校区范围 | 普通 |
| con_price_policy | CoursePricePolicy | effective_start_at | DATETIME | 是 | 生效开始时间 | 普通 |
| con_price_policy | CoursePricePolicy | effective_end_at | DATETIME | 否 | 生效结束时间 | 普通 |
| con_price_policy | CoursePricePolicy | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_price_policy | CoursePricePolicy | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| con_price_policy | CoursePricePolicy | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| con_price_policy | CoursePricePolicy | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| con_discount_rule | DiscountRule | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_discount_rule | DiscountRule | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_discount_rule | DiscountRule | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_discount_rule | DiscountRule | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_discount_rule | DiscountRule | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_discount_rule | DiscountRule | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_discount_rule | DiscountRule | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_discount_rule | DiscountRule | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_discount_rule | DiscountRule | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_discount_rule | DiscountRule | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_discount_rule | DiscountRule | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_discount_rule | DiscountRule | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_discount_rule | DiscountRule | rule_code | VARCHAR(64) | 是 | 优惠规则编码,唯一 | 普通 |
| con_discount_rule | DiscountRule | rule_name | VARCHAR(128) | 是 | 优惠规则名称 | 普通 |
| con_discount_rule | DiscountRule | rule_type | VARCHAR(32) | 是 | 满减/折扣/赠课/多科联报/组合缴费 | 普通 |
| con_discount_rule | DiscountRule | course_scope | JSON | 是 | 适用课程/班型/课包范围 | 普通 |
| con_discount_rule | DiscountRule | campus_scope | JSON | 是 | 适用校区范围 | 普通 |
| con_discount_rule | DiscountRule | stack_policy | VARCHAR(32) | 是 | 可叠加/互斥/需审批 | 普通 |
| con_discount_rule | DiscountRule | discount_value | DECIMAL(18,2) | 否 | 优惠值,金额、折扣或赠课按 rule_type 解释 | 普通 |
| con_discount_rule | DiscountRule | approval_threshold | DECIMAL(18,2) | 否 | 超过阈值触发审批 | 普通 |
| con_discount_rule | DiscountRule | effective_start_at | DATETIME | 是 | 生效开始时间 | 普通 |
| con_discount_rule | DiscountRule | effective_end_at | DATETIME | 否 | 生效结束时间 | 普通 |
| con_discount_rule | DiscountRule | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_discount_rule | DiscountRule | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| con_discount_rule | DiscountRule | biz_status | VARCHAR(32) | 是 | 业务状态,取值来自状态机字典 | 普通 |
| con_discount_rule | DiscountRule | remark | VARCHAR(512) | 否 | 业务备注,敏感内容按权限脱敏 | 普通 |
| con_discount_simulation | DiscountSimulation | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_discount_simulation | DiscountSimulation | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_discount_simulation | DiscountSimulation | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_discount_simulation | DiscountSimulation | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_discount_simulation | DiscountSimulation | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_discount_simulation | DiscountSimulation | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_discount_simulation | DiscountSimulation | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_discount_simulation | DiscountSimulation | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_discount_simulation | DiscountSimulation | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_discount_simulation | DiscountSimulation | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_discount_simulation | DiscountSimulation | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_discount_simulation | DiscountSimulation | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_discount_simulation | DiscountSimulation | simulation_no | VARCHAR(64) | 是 | 试算编号,唯一 | 普通 |
| con_discount_simulation | DiscountSimulation | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_discount_simulation | DiscountSimulation | employee_id | BIGINT | 否 | 发起报价的员工 ID | 普通 |
| con_discount_simulation | DiscountSimulation | price_policy_ids | JSON | 是 | 引用的价格策略 ID 列表 | 普通 |
| con_discount_simulation | DiscountSimulation | course_combo_json | JSON | 是 | 组合购买课程明细 | 普通 |
| con_discount_simulation | DiscountSimulation | discount_detail_json | JSON | 是 | 优惠计算明细 | 普通 |
| con_discount_simulation | DiscountSimulation | benefit_allocation_json | JSON | 是 | 权益和金额分摊结果 | 普通 |
| con_discount_simulation | DiscountSimulation | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| con_discount_simulation | DiscountSimulation | payable_amount | DECIMAL(18,2) | 是 | 最终应付金额 | 普通 |
| con_discount_simulation | DiscountSimulation | simulation_status | VARCHAR(32) | 是 | 有效/失效/已转订单 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | apply_no | VARCHAR(64) | 是 | 额外折扣申请编号,唯一 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | contract_draft_id | BIGINT | 否 | 关联合同草稿 ID | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | employee_id | BIGINT | 是 | 申请员工 ID | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | apply_amount | DECIMAL(18,2) | 是 | 申请额外折扣金额 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | apply_reason | VARCHAR(512) | 是 | 申请原因 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | profit_impact_json | JSON | 否 | 利润影响、课程项分摊和审批参考数据 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | effective_discount_amount | DECIMAL(18,2) | 否 | 审批通过后实际生效折扣 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | file_ids | JSON | 否 | 附件文件 ID 列表,文件中心统一管理 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | evidence_snapshot | JSON | 否 | 关键凭据快照,提交后不可直接覆盖 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_extra_discount_apply | ExtraDiscountApply | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| con_contract | Contract | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_contract | Contract | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_contract | Contract | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_contract | Contract | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_contract | Contract | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_contract | Contract | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_contract | Contract | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_contract | Contract | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_contract | Contract | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_contract | Contract | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_contract | Contract | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_contract | Contract | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_contract | Contract | contract_no | VARCHAR(64) | 是 | 合同编号,唯一 | 普通 |
| con_contract | Contract | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_contract | Contract | family_id | BIGINT | 否 | 客户家庭 ID | 普通 |
| con_contract | Contract | template_id | BIGINT | 是 | 合同模板 ID | 普通 |
| con_contract | Contract | employee_id | BIGINT | 否 | 创建合同的销售/市场/课程顾问员工 ID | 普通 |
| con_contract | Contract | source_terminal | VARCHAR(32) | 是 | 来源终端,教师端 App/小程序或 PC 管理端 | 普通 |
| con_contract | Contract | simulation_id | BIGINT | 否 | 关联优惠试算 ID | 普通 |
| con_contract | Contract | extra_discount_apply_id | BIGINT | 否 | 关联额外折扣申请 ID | 普通 |
| con_contract | Contract | hand_sign_status | VARCHAR(32) | 是 | 待手写签字/已手写签字/签字作废 | 普通 |
| con_contract | Contract | sign_status | VARCHAR(32) | 是 | 待家长签署/已手写签字/已作废 | 普通 |
| con_contract | Contract | payment_status | VARCHAR(32) | 是 | 待支付/支付中/支付成功/支付失败/已关闭 | 普通 |
| con_contract | Contract | enterprise_seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/盖章失败/已归档 | 普通 |
| con_contract | Contract | contract_status | VARCHAR(32) | 是 | 草稿/生效/履约中/已终止/已退费 | 普通 |
| con_contract | Contract | supervision_status | VARCHAR(32) | 否 | 监管报送状态 | 普通 |
| con_contract | Contract | currency | VARCHAR(8) | 是 | 币种,默认 CNY | 普通 |
| con_contract | Contract | amount | DECIMAL(18,2) | 是 | 含税金额,必须大于等于 0 | 普通 |
| con_contract | Contract | tax_amount | DECIMAL(18,2) | 否 | 税额,按发票或税率计算 | 普通 |
| con_contract | Contract | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_contract | Contract | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | signature_no | VARCHAR(64) | 是 | 手写签字记录编号,唯一 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | guardian_id | BIGINT | 是 | 签字家长 ID | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | signature_file_id | BIGINT | 是 | 手写签字图片文件 ID | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | sign_trace_json | JSON | 否 | 签字轨迹、设备、IP 和时间戳 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | signed_at | DATETIME | 是 | 手写签字完成时间 | 普通 |
| con_guardian_hand_signature | GuardianHandSignature | signature_status | VARCHAR(32) | 是 | 有效/作废/重签 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | seal_task_no | VARCHAR(64) | 是 | 盖章任务编号,唯一 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | payment_id | BIGINT | 是 | 触发盖章的支付 ID | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | legal_entity_id | BIGINT | 是 | 企业电子公章所属法人主体 ID | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | seal_rule_code | VARCHAR(64) | 是 | 盖章规则编码 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | sealed_file_id | BIGINT | 否 | 已盖章合同文件 ID | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | seal_status | VARCHAR(32) | 是 | 未触发/盖章中/已盖章/失败/已归档 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | failure_reason | VARCHAR(512) | 否 | 盖章失败原因 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | retry_count | INT | 是 | 重试次数 | 普通 |
| con_enterprise_seal_task | EnterpriseSealTask | sealed_at | DATETIME | 否 | 盖章完成时间 | 普通 |
| ord_order | Order | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ord_order | Order | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ord_order | Order | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ord_order | Order | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ord_order | Order | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ord_order | Order | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ord_order | Order | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ord_order | Order | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ord_order | Order | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ord_order | Order | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ord_order | Order | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ord_order | Order | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ord_order | Order | order_no | VARCHAR(64) | 是 | 订单编号,唯一 | 普通 |
| ord_order | Order | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| ord_order | Order | student_id | BIGINT | 是 | 学员 ID | 普通 |
| ord_order | Order | receivable_amount | DECIMAL(18,2) | 是 | 应收金额 | 普通 |
| ord_order | Order | discount_amount | DECIMAL(18,2) | 否 | 优惠金额 | 普通 |
| ord_order | Order | paid_amount | DECIMAL(18,2) | 是 | 已收金额 | 普通 |
| ord_order | Order | order_status | VARCHAR(32) | 是 | 待支付/支付中/已支付/已关闭 | 普通 |
| ord_payment | Payment | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ord_payment | Payment | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ord_payment | Payment | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ord_payment | Payment | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ord_payment | Payment | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ord_payment | Payment | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ord_payment | Payment | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ord_payment | Payment | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ord_payment | Payment | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ord_payment | Payment | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ord_payment | Payment | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ord_payment | Payment | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ord_payment | Payment | payment_no | VARCHAR(64) | 是 | 收款单号,唯一 | 普通 |
| ord_payment | Payment | order_id | BIGINT | 是 | 订单 ID | 普通 |
| ord_payment | Payment | pay_channel | VARCHAR(32) | 是 | 微信/支付宝/银行卡/现金/监管账户 | 普通 |
| ord_payment | Payment | paid_amount | DECIMAL(18,2) | 是 | 实收金额 | 普通 |
| ord_payment | Payment | paid_at | DATETIME | 否 | 支付完成时间 | 普通 |
| ord_payment | Payment | channel_trade_no | VARCHAR(128) | 否 | 渠道流水号 | 普通 |
| ord_payment | Payment | supervision_account_id | BIGINT | 否 | 资金监管账户 ID | 普通 |
| ord_payment | Payment | receipt_status | VARCHAR(32) | 是 | 待确认/已确认/异常 | 普通 |
| con_supervision_report | SupervisionAccount | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_supervision_report | SupervisionAccount | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_supervision_report | SupervisionAccount | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_supervision_report | SupervisionAccount | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_supervision_report | SupervisionAccount | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_supervision_report | SupervisionAccount | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_supervision_report | SupervisionAccount | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_supervision_report | SupervisionAccount | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_supervision_report | SupervisionAccount | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_supervision_report | SupervisionAccount | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_supervision_report | SupervisionAccount | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_supervision_report | SupervisionAccount | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_supervision_report | SupervisionAccount | report_no | VARCHAR(64) | 是 | 报送编号,唯一 | 普通 |
| con_supervision_report | SupervisionAccount | biz_type | VARCHAR(64) | 是 | 合同/收款/课消/退费 | 普通 |
| con_supervision_report | SupervisionAccount | biz_id | BIGINT | 是 | 业务 ID | 普通 |
| con_supervision_report | SupervisionAccount | platform_code | VARCHAR(64) | 是 | 监管平台编码 | 普通 |
| con_supervision_report | SupervisionAccount | payload_json | JSON | 是 | 报送报文 | 普通 |
| con_supervision_report | SupervisionAccount | receipt_json | JSON | 否 | 回执报文 | 普通 |
| con_supervision_report | SupervisionAccount | report_status | VARCHAR(32) | 是 | 待报送/成功/失败/重试中 | 普通 |
| ord_refund | Refund | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ord_refund | Refund | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ord_refund | Refund | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ord_refund | Refund | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ord_refund | Refund | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ord_refund | Refund | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ord_refund | Refund | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ord_refund | Refund | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ord_refund | Refund | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ord_refund | Refund | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ord_refund | Refund | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ord_refund | Refund | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ord_refund | Refund | refund_no | VARCHAR(64) | 是 | 退款编号,唯一 | 普通 |
| ord_refund | Refund | contract_id | BIGINT | 是 | 合同 ID | 普通 |
| ord_refund | Refund | student_id | BIGINT | 是 | 学员 ID | 普通 |
| ord_refund | Refund | refund_amount | DECIMAL(18,2) | 是 | 退款金额 | 普通 |
| ord_refund | Refund | calculate_detail | JSON | 是 | 退款计算明细 | 普通 |
| ord_refund | Refund | refund_status | VARCHAR(32) | 是 | 待审批/待退款/已退款/已驳回/失败 | 普通 |
| ord_refund | Refund | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| ord_refund | Refund | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | created_at | DATETIME | 是 | 创建时间 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | transfer_no | VARCHAR(64) | 是 | 转班转课编号,唯一 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | student_id | BIGINT | 是 | 学员 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | from_class_id | BIGINT | 否 | 原班级 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | to_class_id | BIGINT | 否 | 目标班级 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | from_course_id | BIGINT | 否 | 原课程 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | to_course_id | BIGINT | 否 | 目标课程 ID | 普通 |
| con_class_course_transfer | ClassCourseTransfer | rights_snapshot | JSON | 是 | 权益变更快照 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | transfer_status | VARCHAR(32) | 是 | 待确认/已生效/已取消 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| con_class_course_transfer | ClassCourseTransfer | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| con_contract_template | ContractTemplate | 统一电子合同模板 | 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,必填)、template_code(VARCHAR(64),必填)、template_name(VARCHAR(128),必填)、contract_type(VARCHAR(32),必填)、template_body(LONGTEXT,必填)、variable_schema(JSON,必填)、version_no(INT,必填)、review_status(VARCHAR(32),必填) | uk_template_version、idx_type_status |
| con_price_policy | CoursePricePolicy | 课程价格、组合价格和校区价格策略 | 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,必填)、policy_code(VARCHAR(64),必填)、policy_name(VARCHAR(128),必填)、course_id(BIGINT)、course_combo_json(JSON)、price_type(VARCHAR(32),必填)、price_amount(DECIMAL(18,2),必填)、campus_scope(JSON,必填)、effective_start_at(DATETIME,必填)、effective_end_at(DATETIME)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT)、biz_status(VARCHAR(32),必填)、remark(VARCHAR(512)) | uk_policy_code、idx_course_type、idx_effective_status |
| con_discount_rule | DiscountRule | 优惠、组合缴费和联报规则 | 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,必填)、rule_code(VARCHAR(64),必填)、rule_name(VARCHAR(128),必填)、rule_type(VARCHAR(32),必填)、course_scope(JSON,必填)、campus_scope(JSON,必填)、stack_policy(VARCHAR(32),必填)、discount_value(DECIMAL(18,2))、approval_threshold(DECIMAL(18,2))、effective_start_at(DATETIME,必填)、effective_end_at(DATETIME)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT)、biz_status(VARCHAR(32),必填)、remark(VARCHAR(512)) | uk_rule_code、idx_type_status |
| con_discount_simulation | DiscountSimulation | 优惠试算与权益拆分 | 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,必填)、simulation_no(VARCHAR(64),必填)、student_id(BIGINT,必填)、employee_id(BIGINT)、price_policy_ids(JSON,必填)、course_combo_json(JSON,必填)、discount_detail_json(JSON,必填)、benefit_allocation_json(JSON,必填)、extra_discount_apply_id(BIGINT)、payable_amount(DECIMAL(18,2),必填)、simulation_status(VARCHAR(32),必填) | uk_simulation_no、idx_student_status |
| con_extra_discount_apply | ExtraDiscountApply | 员工端额外折扣申请 | 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,必填)、apply_no(VARCHAR(64),必填)、contract_draft_id(BIGINT)、student_id(BIGINT,必填)、employee_id(BIGINT,必填)、apply_amount(DECIMAL(18,2),必填)、apply_reason(VARCHAR(512),必填)、profit_impact_json(JSON)、effective_discount_amount(DECIMAL(18,2))、file_ids(JSON)、evidence_snapshot(JSON)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_apply_no、idx_employee_status、idx_student_status |
| con_contract | Contract | 合同主表 | 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,必填)、contract_no(VARCHAR(64),必填)、student_id(BIGINT,必填)、family_id(BIGINT)、template_id(BIGINT,必填)、employee_id(BIGINT)、source_terminal(VARCHAR(32),必填)、simulation_id(BIGINT)、extra_discount_apply_id(BIGINT)、hand_sign_status(VARCHAR(32),必填)、sign_status(VARCHAR(32),必填)、payment_status(VARCHAR(32),必填)、enterprise_seal_status(VARCHAR(32),必填)、contract_status(VARCHAR(32),必填)、supervision_status(VARCHAR(32))、currency(VARCHAR(8),必填)、amount(DECIMAL(18,2),必填)、tax_amount(DECIMAL(18,2))、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_contract_no、idx_student_status |
| con_guardian_hand_signature | GuardianHandSignature | 家长手写签字记录 | 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,必填)、signature_no(VARCHAR(64),必填)、contract_id(BIGINT,必填)、guardian_id(BIGINT,必填)、signature_file_id(BIGINT,必填)、sign_trace_json(JSON)、signed_at(DATETIME,必填)、signature_status(VARCHAR(32),必填) | uk_signature_no、idx_contract_guardian |
| con_enterprise_seal_task | EnterpriseSealTask | 企业电子公章盖章任务 | 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,必填)、seal_task_no(VARCHAR(64),必填)、contract_id(BIGINT,必填)、payment_id(BIGINT,必填)、legal_entity_id(BIGINT,必填)、seal_rule_code(VARCHAR(64),必填)、sealed_file_id(BIGINT)、seal_status(VARCHAR(32),必填)、failure_reason(VARCHAR(512))、retry_count(INT,必填)、sealed_at(DATETIME) | uk_seal_task_no、idx_contract_status、idx_payment |
| ord_order | Order | 订单和应收 | 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,必填)、order_no(VARCHAR(64),必填)、contract_id(BIGINT,必填)、student_id(BIGINT,必填)、receivable_amount(DECIMAL(18,2),必填)、discount_amount(DECIMAL(18,2))、paid_amount(DECIMAL(18,2),必填)、order_status(VARCHAR(32),必填) | uk_order_no、idx_contract_status |
| ord_payment | Payment | 收款单 | 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,必填)、payment_no(VARCHAR(64),必填)、order_id(BIGINT,必填)、pay_channel(VARCHAR(32),必填)、paid_amount(DECIMAL(18,2),必填)、paid_at(DATETIME)、channel_trade_no(VARCHAR(128))、supervision_account_id(BIGINT)、receipt_status(VARCHAR(32),必填) | uk_payment_no、idx_order、idx_trade_no |
| con_supervision_report | SupervisionAccount | 合同、收款、课消、退费监管报送 | 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,必填)、report_no(VARCHAR(64),必填)、biz_type(VARCHAR(64),必填)、biz_id(BIGINT,必填)、platform_code(VARCHAR(64),必填)、payload_json(JSON,必填)、receipt_json(JSON)、report_status(VARCHAR(32),必填) | uk_report_no、idx_biz、idx_status |
| ord_refund | Refund | 退款单 | 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,必填)、refund_no(VARCHAR(64),必填)、contract_id(BIGINT,必填)、student_id(BIGINT,必填)、refund_amount(DECIMAL(18,2),必填)、calculate_detail(JSON,必填)、refund_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_refund_no、idx_contract_status |
| con_class_course_transfer | ClassCourseTransfer | 转班转课权益变更 | 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,必填)、transfer_no(VARCHAR(64),必填)、student_id(BIGINT,必填)、from_class_id(BIGINT)、to_class_id(BIGINT)、from_course_id(BIGINT)、to_course_id(BIGINT)、rights_snapshot(JSON,必填)、transfer_status(VARCHAR(32),必填)、approval_status(VARCHAR(32))、approval_instance_id(BIGINT) | uk_transfer_no、idx_student_status |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 合同草稿 | 员工端草稿 -> 待额外折扣审批 -> 折扣审批驳回 -> 待推送家长 -> 已推送家长 -> 已作废 | 员工端创建合同草稿,额外折扣审批通过后才可推送家长 |
| 价格优惠规则 | 草稿 -> 待审批 -> 已启用 -> 已停用 -> 已过期 -> 已驳回 | PC 管理端维护课程价格、组合价格和可用优惠规则,员工端只引用启用版本 |
| 家长签署支付 | 待家长查看 -> 待手写签字 -> 已手写签字 -> 待支付 -> 支付中 -> 支付成功 -> 支付失败 -> 已关闭 | 家长手写签字完成后才开放支付,支付状态回写合同和订单 |
| 企业电子公章 | 未触发 -> 盖章中 -> 已盖章 -> 盖章失败 -> 已归档 -> 人工处理 | 支付成功后自动触发企业电子公章,失败进入合同异常处理 |
| 合同履约 | 已签字 -> 已支付 -> 已盖章 -> 监管报送中 -> 履约中 -> 变更中 -> 已终止 -> 已退费 | 签署、支付、盖章、监管、课消、变更和退款联动 |
| 额外折扣审批 | 未申请 -> 草稿 -> 待审批 -> 已通过 -> 已驳回 -> 已撤回 -> 已失效 | 员工端申请,PC 管理端审批,通过后折扣才进入最终报价 |
销售合同中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
销售合同中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
销售合同中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
销售合同中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
销售合同中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
销售合同中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- PC 配置价格:需映射菜单、按钮、接口和字段权限
- PC 配置优惠:需映射菜单、按钮、接口和字段权限
- 员工端创建合同:需映射菜单、按钮、接口和字段权限
- 优惠试算:需映射菜单、按钮、接口和字段权限
- 申请额外折扣:需映射菜单、按钮、接口和字段权限
- 推送家长签署:需映射菜单、按钮、接口和字段权限
- 家长手写签字:需映射菜单、按钮、接口和字段权限
- 家长支付:需映射菜单、按钮、接口和字段权限
- 支付后盖章:需映射菜单、按钮、接口和字段权限
- 转班转课测算:需映射菜单、按钮、接口和字段权限
- 退款转课:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 价格优惠规则发布审批 | 课程价格、组合价格、可用优惠或叠加互斥规则新增、调价、停用或扩范围 | 管理人员 -> 校区负责人/区域负责人 -> 财务负责人可选 | 通过后生成启用版本,员工端新合同只引用启用版本 | 保留规则版本、影响课程、适用校区、审批意见和生效时间 |
| 额外折扣审批 | 员工端合同报价超过可用优惠范围或申请额外折扣 | 课程顾问/销售/市场 -> 销售主管 -> 校区负责人/财务可选 | 通过后折扣写入合同草稿并允许推送家长,驳回后员工端需重新调整报价 | 保留申请金额、原因、附件、利润影响、审批意见和生效折扣 |
| 合同作废重签审批 | 合同已推送、已签字、已支付或已盖章后需要作废重签 | 申请人 -> 校区负责人 -> 财务/法务可选 | 通过后关闭原合同并生成重签草稿,原合同不允许继续支付或课消 | 保留原合同、作废原因、新合同、签署文件和审计记录 |
| 合同异常人工处理审批 | 支付成功但企业盖章失败、监管回执失败或合同文件归档异常 | 处理人 -> 财务/法务/系统管理员 | 通过后可重试盖章、重报监管、替换归档或关闭异常 | 保留失败原因、重试次数、处理动作、回执和结果 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 合同草稿创建提醒 | 课程顾问/销售人员/市场人员 | 员工端创建合同草稿或报价发生变化 | 迪诺学堂教师端 App/小程序、站内信 | 学员、课程组合、应收金额、可推送状态 |
| 额外折扣审批提醒 | 销售主管/校区负责人/财务 | 员工端提交额外折扣申请 | PC Web 待办、站内信 | 申请人、学员、折扣金额、利润影响、审批入口 |
| 额外折扣审批结果 | 课程顾问/销售人员/市场人员 | 额外折扣审批通过、驳回或要求补充材料 | 迪诺学堂教师端 App/小程序 | 合同草稿、审批结果、可推送状态、驳回原因 |
| 合同待手写签字提醒 | 家长 | 员工端推送合同到家长端 | 家长端小程序/H5、短信可选、站内信 | 合同编号、课程权益、应付金额、签署入口、有效期 |
| 合同支付提醒 | 家长 | 家长完成手写签字后待支付或支付失败 | 家长端小程序/H5、站内信 | 合同编号、应付金额、支付入口、失败原因 |
| 企业盖章完成通知 | 家长/课程顾问/销售人员/市场人员 | 支付成功且企业电子公章完成 | 家长端小程序/H5、迪诺学堂教师端 App/小程序 | 合同编号、盖章文件、下载入口、后续服务入口 |
| 企业盖章失败待处理 | 管理人员/财务/法务 | 支付成功后企业电子公章失败或归档失败 | PC Web 待办、站内信 | 合同编号、失败原因、重试入口、人工处理入口 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/contracts/price-policies | POST/GET | PC Web 管理端到合同中心 | courseId, campusScope, priceType, priceAmount, effectiveAt, enabled, requestId | policyId, approvalStatus, enabled | 仅管理人员可维护课程价格和组合价格 |
| /api/v1/contracts/discount-rules | POST/GET | PC Web 管理端到合同中心 | ruleType, stackPolicy, courseScope, campusScope, discountValue, approvalThreshold, enabled, requestId | ruleId, ruleStatus, versionNo | 仅管理人员可维护可用优惠 |
| /api/v1/contracts/templates | POST/GET | PC Web 管理端到合同中心 | templateCode, templateName, contractType, variableSchema, versionNo, enabled, requestId | templateId, reviewStatus, versionNo | 仅管理人员可维护合同模板 |
| /api/v1/contracts/mobile/drafts | POST/GET | 迪诺学堂教师端 App/小程序到合同中心 | studentId, courseItems, selectedDiscountRuleIds, extraDiscountApplyId, requestId | contractDraftId, quoteResult, visibleActions | 销售/市场/课程顾问仅能为本人授权学员创建合同草稿 |
| /api/v1/contracts/discount-simulations | POST | 迪诺学堂教师端 App/小程序到合同中心 | studentId, courseItems, selectedDiscountRuleIds, extraDiscountContext, transferContext, requestId | simulationId, payableAmount, conflictItems, approvalRequired, allocationResult | 同报价 requestId 幂等;冲突规则返回原因 |
| /api/v1/contracts/extra-discount-applies | POST/GET | 迪诺学堂教师端 App/小程序到审批服务 | contractDraftId, employeeId, applyAmount, applyReason, attachments, requestId | applyId, approvalStatus, effectiveDiscount | 审批通过后才可进入最终合同报价 |
| /api/v1/contracts/{id}/push-to-parent | POST | 迪诺学堂教师端 App/小程序到合同中心 | contractId, guardianId, pushChannel, expireAt, requestId | pushStatus, signUrl, parentNotifyStatus | 合同需为待家长签署状态且员工有授权 |
| /api/v1/contracts/{id}/guardian-hand-sign | POST | 家长端小程序/H5到合同中心 | contractId, guardianId, handSignFileId, signTrace, requestId | handSignStatus, nextAction | 家长手写签字完成后才开放支付 |
| /api/v1/contracts/{id}/payment | POST | 家长端小程序/H5到支付服务 | contractId, guardianId, payChannel, amount, requestId | paymentId, paymentStatus, sealTaskStatus | 支付前必须校验手写签字已完成 |
| /api/v1/contracts/{id}/enterprise-seal | POST | 合同中心到签章服务 | contractId, paymentId, sealRuleCode, requestId | sealStatus, sealedFileId, archiveStatus | 支付成功后自动触发企业电子公章 |
| /api/v1/regulator/contracts | POST | 平台到监管 | contractNo, studentInfo, amount, templateCode | reportNo, reportStatus, receiptFile | 合同编号幂等报送 |
| /api/v1/refunds | POST | PC Web 到平台 | contractId, refundItems, reason, requestId | refundId, auditStatus, estimatedAmount | requestId 幂等 |
| /api/v1/edu/transfers | POST/GET | PC Web 到教务合同 | studentId, sourceClassId, targetClassId, transferType, requestId | transferId, rightsRecalculateResult, transferStatus | requestId 幂等 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| con_contract_template | 统一电子合同模板 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、template_code、template_name、contract_type、template_body、variable_schema、version_no、review_status | uk_template_version、idx_type_status |
| con_price_policy | 课程价格、组合价格和校区价格策略 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、policy_code、policy_name、course_id、course_combo_json、price_type、price_amount、campus_scope、effective_start_at、effective_end_at、approval_status、approval_instance_id、biz_status、remark | uk_policy_code、idx_course_type、idx_effective_status |
| con_discount_rule | 优惠、组合缴费和联报规则 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、rule_code、rule_name、rule_type、course_scope、campus_scope、stack_policy、discount_value、approval_threshold、effective_start_at、effective_end_at、approval_status、approval_instance_id、biz_status、remark | uk_rule_code、idx_type_status |
| con_discount_simulation | 优惠试算与权益拆分 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、simulation_no、student_id、employee_id、price_policy_ids、course_combo_json、discount_detail_json、benefit_allocation_json、extra_discount_apply_id、payable_amount、simulation_status | uk_simulation_no、idx_student_status |
| con_extra_discount_apply | 员工端额外折扣申请 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、apply_no、contract_draft_id、student_id、employee_id、apply_amount、apply_reason、profit_impact_json、effective_discount_amount、file_ids、evidence_snapshot、approval_status、approval_instance_id | uk_apply_no、idx_employee_status、idx_student_status |
| con_contract | 合同主表 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、contract_no、student_id、family_id、template_id、employee_id、source_terminal、simulation_id、extra_discount_apply_id、hand_sign_status、sign_status、payment_status、enterprise_seal_status、contract_status、supervision_status、currency、amount、tax_amount、approval_status、approval_instance_id | uk_contract_no、idx_student_status |
| con_guardian_hand_signature | 家长手写签字记录 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、signature_no、contract_id、guardian_id、signature_file_id、sign_trace_json、signed_at、signature_status | uk_signature_no、idx_contract_guardian |
| con_enterprise_seal_task | 企业电子公章盖章任务 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、seal_task_no、contract_id、payment_id、legal_entity_id、seal_rule_code、sealed_file_id、seal_status、failure_reason、retry_count、sealed_at | uk_seal_task_no、idx_contract_status、idx_payment |
| ord_order | 订单和应收 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、order_no、contract_id、student_id、receivable_amount、discount_amount、paid_amount、order_status | uk_order_no、idx_contract_status |
| ord_payment | 收款单 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、payment_no、order_id、pay_channel、paid_amount、paid_at、channel_trade_no、supervision_account_id、receipt_status | uk_payment_no、idx_order、idx_trade_no |
| con_supervision_report | 合同、收款、课消、退费监管报送 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、report_no、biz_type、biz_id、platform_code、payload_json、receipt_json、report_status | uk_report_no、idx_biz、idx_status |
| ord_refund | 退款单 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、refund_no、contract_id、student_id、refund_amount、calculate_detail、refund_status、approval_status、approval_instance_id | uk_refund_no、idx_contract_status |
| con_class_course_transfer | 转班转课权益变更 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、transfer_no、student_id、from_class_id、to_class_id、from_course_id、to_course_id、rights_snapshot、transfer_status、approval_status、approval_instance_id | uk_transfer_no、idx_student_status |
DDL 草案
con_contract_templateContractTemplate
CREATE TABLE `con_contract_template` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`template_code` VARCHAR(64) NOT NULL COMMENT '模板编码,唯一;数据级别:普通',
`template_name` VARCHAR(128) NOT NULL COMMENT '模板名称;数据级别:普通',
`contract_type` VARCHAR(32) NOT NULL COMMENT '课程/续费/转课/补充协议;数据级别:普通',
`template_body` LONGTEXT NOT NULL COMMENT '合同正文模板;数据级别:普通',
`variable_schema` JSON NOT NULL COMMENT '变量定义;数据级别:普通',
`version_no` INT NOT NULL COMMENT '模板版本;数据级别:普通',
`review_status` VARCHAR(32) NOT NULL COMMENT '草稿/审核中/已通过/已停用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_template_version` (`template_code`, `version`),
KEY `idx_type_status` (`contract_type`, `review_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ContractTemplate:统一电子合同模板';
con_price_policyCoursePricePolicy
CREATE TABLE `con_price_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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`policy_code` VARCHAR(64) NOT NULL COMMENT '价格策略编码,唯一;数据级别:普通',
`policy_name` VARCHAR(128) NOT NULL COMMENT '价格策略名称;数据级别:普通',
`course_id` BIGINT NULL COMMENT '适用课程 ID,组合价格可为空;数据级别:普通',
`course_combo_json` JSON NULL COMMENT '组合课程、多科联报或课包价格明细;数据级别:普通',
`price_type` VARCHAR(32) NOT NULL COMMENT '标准价/校区价/组合价/多科联报价;数据级别:普通',
`price_amount` DECIMAL(18,2) NOT NULL COMMENT '价格金额;数据级别:普通',
`campus_scope` JSON NOT NULL COMMENT '适用校区范围;数据级别:普通',
`effective_start_at` DATETIME NOT NULL COMMENT '生效开始时间;数据级别:普通',
`effective_end_at` DATETIME NULL COMMENT '生效结束时间;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
`biz_status` VARCHAR(32) NOT NULL COMMENT '业务状态,取值来自状态机字典;数据级别:普通',
`remark` VARCHAR(512) NULL COMMENT '业务备注,敏感内容按权限脱敏;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_policy_code` (`policy_code`),
KEY `idx_course_type` (`course_id`, `price_type`),
KEY `idx_effective_status` (`effective_start_at`, `approval_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='CoursePricePolicy:课程价格、组合价格和校区价格策略';
con_discount_ruleDiscountRule
CREATE TABLE `con_discount_rule` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`rule_code` VARCHAR(64) NOT NULL COMMENT '优惠规则编码,唯一;数据级别:普通',
`rule_name` VARCHAR(128) NOT NULL COMMENT '优惠规则名称;数据级别:普通',
`rule_type` VARCHAR(32) NOT NULL COMMENT '满减/折扣/赠课/多科联报/组合缴费;数据级别:普通',
`course_scope` JSON NOT NULL COMMENT '适用课程/班型/课包范围;数据级别:普通',
`campus_scope` JSON NOT NULL COMMENT '适用校区范围;数据级别:普通',
`stack_policy` VARCHAR(32) NOT NULL COMMENT '可叠加/互斥/需审批;数据级别:普通',
`discount_value` DECIMAL(18,2) NULL COMMENT '优惠值,金额、折扣或赠课按 rule_type 解释;数据级别:普通',
`approval_threshold` DECIMAL(18,2) NULL COMMENT '超过阈值触发审批;数据级别:普通',
`effective_start_at` DATETIME NOT NULL COMMENT '生效开始时间;数据级别:普通',
`effective_end_at` DATETIME NULL COMMENT '生效结束时间;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
`biz_status` VARCHAR(32) NOT NULL COMMENT '业务状态,取值来自状态机字典;数据级别:普通',
`remark` VARCHAR(512) NULL COMMENT '业务备注,敏感内容按权限脱敏;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_rule_code` (`rule_code`),
KEY `idx_type_status` (`rule_type`, `approval_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DiscountRule:优惠、组合缴费和联报规则';
con_discount_simulationDiscountSimulation
CREATE TABLE `con_discount_simulation` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`simulation_no` VARCHAR(64) NOT NULL COMMENT '试算编号,唯一;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`employee_id` BIGINT NULL COMMENT '发起报价的员工 ID;数据级别:普通',
`price_policy_ids` JSON NOT NULL COMMENT '引用的价格策略 ID 列表;数据级别:普通',
`course_combo_json` JSON NOT NULL COMMENT '组合购买课程明细;数据级别:普通',
`discount_detail_json` JSON NOT NULL COMMENT '优惠计算明细;数据级别:普通',
`benefit_allocation_json` JSON NOT NULL COMMENT '权益和金额分摊结果;数据级别:普通',
`extra_discount_apply_id` BIGINT NULL COMMENT '关联额外折扣申请 ID;数据级别:普通',
`payable_amount` DECIMAL(18,2) NOT NULL COMMENT '最终应付金额;数据级别:普通',
`simulation_status` VARCHAR(32) NOT NULL COMMENT '有效/失效/已转订单;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_simulation_no` (`simulation_no`),
KEY `idx_student_status` (`student_id`, `simulation_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='DiscountSimulation:优惠试算与权益拆分';
con_extra_discount_applyExtraDiscountApply
CREATE TABLE `con_extra_discount_apply` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`apply_no` VARCHAR(64) NOT NULL COMMENT '额外折扣申请编号,唯一;数据级别:普通',
`contract_draft_id` BIGINT NULL COMMENT '关联合同草稿 ID;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`employee_id` BIGINT NOT NULL COMMENT '申请员工 ID;数据级别:普通',
`apply_amount` DECIMAL(18,2) NOT NULL COMMENT '申请额外折扣金额;数据级别:普通',
`apply_reason` VARCHAR(512) NOT NULL COMMENT '申请原因;数据级别:普通',
`profit_impact_json` JSON NULL COMMENT '利润影响、课程项分摊和审批参考数据;数据级别:普通',
`effective_discount_amount` DECIMAL(18,2) NULL COMMENT '审批通过后实际生效折扣;数据级别:普通',
`file_ids` JSON NULL COMMENT '附件文件 ID 列表,文件中心统一管理;数据级别:普通',
`evidence_snapshot` JSON NULL COMMENT '关键凭据快照,提交后不可直接覆盖;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_apply_no` (`apply_no`),
KEY `idx_employee_status` (`employee_id`, `approval_status`),
KEY `idx_student_status` (`student_id`, `approval_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ExtraDiscountApply:员工端额外折扣申请';
con_contractContract
CREATE TABLE `con_contract` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`contract_no` VARCHAR(64) NOT NULL COMMENT '合同编号,唯一;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`family_id` BIGINT NULL COMMENT '客户家庭 ID;数据级别:普通',
`template_id` BIGINT NOT NULL COMMENT '合同模板 ID;数据级别:普通',
`employee_id` BIGINT NULL COMMENT '创建合同的销售/市场/课程顾问员工 ID;数据级别:普通',
`source_terminal` VARCHAR(32) NOT NULL COMMENT '来源终端,教师端 App/小程序或 PC 管理端;数据级别:普通',
`simulation_id` BIGINT NULL COMMENT '关联优惠试算 ID;数据级别:普通',
`extra_discount_apply_id` BIGINT NULL COMMENT '关联额外折扣申请 ID;数据级别:普通',
`hand_sign_status` VARCHAR(32) NOT NULL COMMENT '待手写签字/已手写签字/签字作废;数据级别:普通',
`sign_status` VARCHAR(32) NOT NULL COMMENT '待家长签署/已手写签字/已作废;数据级别:普通',
`payment_status` VARCHAR(32) NOT NULL COMMENT '待支付/支付中/支付成功/支付失败/已关闭;数据级别:普通',
`enterprise_seal_status` VARCHAR(32) NOT NULL COMMENT '未触发/盖章中/已盖章/盖章失败/已归档;数据级别:普通',
`contract_status` VARCHAR(32) NOT NULL COMMENT '草稿/生效/履约中/已终止/已退费;数据级别:普通',
`supervision_status` VARCHAR(32) NULL COMMENT '监管报送状态;数据级别:普通',
`currency` VARCHAR(8) NOT NULL DEFAULT 'CNY' COMMENT '币种,默认 CNY;数据级别:普通',
`amount` DECIMAL(18,2) NOT NULL COMMENT '含税金额,必须大于等于 0;数据级别:普通',
`tax_amount` DECIMAL(18,2) NULL COMMENT '税额,按发票或税率计算;数据级别:普通',
`approval_status` VARCHAR(32) NULL COMMENT '审批状态,未发起为空;数据级别:普通',
`approval_instance_id` BIGINT NULL COMMENT '关联审批实例 ID;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_contract_no` (`contract_no`),
KEY `idx_student_status` (`student_id`, `hand_sign_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Contract:合同主表';
con_guardian_hand_signatureGuardianHandSignature
CREATE TABLE `con_guardian_hand_signature` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`signature_no` VARCHAR(64) NOT NULL COMMENT '手写签字记录编号,唯一;数据级别:普通',
`contract_id` BIGINT NOT NULL COMMENT '合同 ID;数据级别:普通',
`guardian_id` BIGINT NOT NULL COMMENT '签字家长 ID;数据级别:普通',
`signature_file_id` BIGINT NOT NULL COMMENT '手写签字图片文件 ID;数据级别:普通',
`sign_trace_json` JSON NULL COMMENT '签字轨迹、设备、IP 和时间戳;数据级别:普通',
`signed_at` DATETIME NOT NULL COMMENT '手写签字完成时间;数据级别:普通',
`signature_status` VARCHAR(32) NOT NULL COMMENT '有效/作废/重签;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_signature_no` (`signature_no`),
KEY `idx_contract_guardian` (`contract_id`, `guardian_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='GuardianHandSignature:家长手写签字记录';
con_enterprise_seal_taskEnterpriseSealTask
CREATE TABLE `con_enterprise_seal_task` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`seal_task_no` VARCHAR(64) NOT NULL COMMENT '盖章任务编号,唯一;数据级别:普通',
`contract_id` BIGINT NOT NULL COMMENT '合同 ID;数据级别:普通',
`payment_id` BIGINT NOT NULL COMMENT '触发盖章的支付 ID;数据级别:普通',
`legal_entity_id` BIGINT NOT NULL COMMENT '企业电子公章所属法人主体 ID;数据级别:普通',
`seal_rule_code` VARCHAR(64) NOT NULL COMMENT '盖章规则编码;数据级别:普通',
`sealed_file_id` BIGINT NULL COMMENT '已盖章合同文件 ID;数据级别:普通',
`seal_status` VARCHAR(32) NOT NULL COMMENT '未触发/盖章中/已盖章/失败/已归档;数据级别:普通',
`failure_reason` VARCHAR(512) NULL COMMENT '盖章失败原因;数据级别:普通',
`retry_count` INT NOT NULL DEFAULT 0 COMMENT '重试次数;数据级别:普通',
`sealed_at` DATETIME NULL COMMENT '盖章完成时间;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_seal_task_no` (`seal_task_no`),
KEY `idx_contract_status` (`contract_id`, `seal_status`),
KEY `idx_payment` (`payment_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='EnterpriseSealTask:企业电子公章盖章任务';
ord_orderOrder
CREATE TABLE `ord_order` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`order_no` VARCHAR(64) NOT NULL COMMENT '订单编号,唯一;数据级别:普通',
`contract_id` BIGINT NOT NULL COMMENT '合同 ID;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`receivable_amount` DECIMAL(18,2) NOT NULL COMMENT '应收金额;数据级别:普通',
`discount_amount` DECIMAL(18,2) NULL COMMENT '优惠金额;数据级别:普通',
`paid_amount` DECIMAL(18,2) NOT NULL COMMENT '已收金额;数据级别:普通',
`order_status` VARCHAR(32) NOT NULL COMMENT '待支付/支付中/已支付/已关闭;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_order_no` (`order_no`),
KEY `idx_contract_status` (`contract_id`, `order_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Order:订单和应收';
ord_paymentPayment
CREATE TABLE `ord_payment` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`payment_no` VARCHAR(64) NOT NULL COMMENT '收款单号,唯一;数据级别:普通',
`order_id` BIGINT NOT NULL COMMENT '订单 ID;数据级别:普通',
`pay_channel` VARCHAR(32) NOT NULL COMMENT '微信/支付宝/银行卡/现金/监管账户;数据级别:普通',
`paid_amount` DECIMAL(18,2) NOT NULL COMMENT '实收金额;数据级别:普通',
`paid_at` DATETIME NULL COMMENT '支付完成时间;数据级别:普通',
`channel_trade_no` VARCHAR(128) NULL COMMENT '渠道流水号;数据级别:普通',
`supervision_account_id` BIGINT NULL COMMENT '资金监管账户 ID;数据级别:普通',
`receipt_status` VARCHAR(32) NOT NULL COMMENT '待确认/已确认/异常;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_payment_no` (`payment_no`),
KEY `idx_order` (`order_id`),
KEY `idx_trade_no` (`channel_trade_no`, `payment_no`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Payment:收款单';
con_supervision_reportSupervisionAccount
CREATE TABLE `con_supervision_report` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`report_no` VARCHAR(64) NOT NULL COMMENT '报送编号,唯一;数据级别:普通',
`biz_type` VARCHAR(64) NOT NULL COMMENT '合同/收款/课消/退费;数据级别:普通',
`biz_id` BIGINT NOT NULL COMMENT '业务 ID;数据级别:普通',
`platform_code` VARCHAR(64) NOT NULL COMMENT '监管平台编码;数据级别:普通',
`payload_json` JSON NOT NULL COMMENT '报送报文;数据级别:普通',
`receipt_json` JSON NULL COMMENT '回执报文;数据级别:普通',
`report_status` VARCHAR(32) NOT NULL COMMENT '待报送/成功/失败/重试中;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_report_no` (`report_no`),
KEY `idx_biz` (`biz_type`),
KEY `idx_status` (`report_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='SupervisionAccount:合同、收款、课消、退费监管报送';
ord_refundRefund
CREATE TABLE `ord_refund` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`refund_no` VARCHAR(64) NOT NULL COMMENT '退款编号,唯一;数据级别:普通',
`contract_id` BIGINT NOT NULL COMMENT '合同 ID;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`refund_amount` DECIMAL(18,2) NOT NULL COMMENT '退款金额;数据级别:普通',
`calculate_detail` JSON NOT NULL COMMENT '退款计算明细;数据级别:普通',
`refund_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_refund_no` (`refund_no`),
KEY `idx_contract_status` (`contract_id`, `refund_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Refund:退款单';
con_class_course_transferClassCourseTransfer
CREATE TABLE `con_class_course_transfer` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`transfer_no` VARCHAR(64) NOT NULL COMMENT '转班转课编号,唯一;数据级别:普通',
`student_id` BIGINT NOT NULL COMMENT '学员 ID;数据级别:普通',
`from_class_id` BIGINT NULL COMMENT '原班级 ID;数据级别:普通',
`to_class_id` BIGINT NULL COMMENT '目标班级 ID;数据级别:普通',
`from_course_id` BIGINT NULL COMMENT '原课程 ID;数据级别:普通',
`to_course_id` BIGINT NULL COMMENT '目标课程 ID;数据级别:普通',
`rights_snapshot` JSON NOT NULL COMMENT '权益变更快照;数据级别:普通',
`transfer_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_transfer_no` (`transfer_no`),
KEY `idx_student_status` (`student_id`, `transfer_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ClassCourseTransfer:转班转课权益变更';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-CON-ROLE-001 | 员工端创建合同并推送家长 | 课程顾问/销售/市场账号拥有本人授权学员,PC 管理端已启用价格、优惠和合同模板 | 在迪诺学堂教师端 App/小程序创建合同草稿、选择课程和优惠、确认报价并推送家长 | 员工端 100% 只展示本人授权学员;合同草稿可生成;家长端 30 秒内收到待签署合同 | 高 |
| TC-CON-ROLE-002 | 一线销售无 PC 制单入口 | 账号角色为课程顾问、销售人员或市场人员 | 登录 PC Web 管理端并访问合同创建、价格维护、优惠维护或直接访问相关链接 | 不展示合同制单和价格优惠维护菜单;直连返回无权限并提示使用迪诺学堂教师端 App/小程序;越权写审计 | 高 |
| TC-CON-PRICE-001 | 管理人员维护价格优惠 | 管理人员拥有 PC Web 合同配置权限 | 新增课程价格、组合价格、优惠规则并提交审批,通过后员工端刷新报价 | 审批通过前员工端不可引用;通过后 30 秒内可见;停用后新合同不可再选 | 高 |
| TC-CON-DISCOUNT-001 | 额外折扣审批后生效 | 员工端报价需要申请额外折扣,审批流已配置 | 员工提交额外折扣申请,管理员在 PC Web 审批通过或驳回 | 审批通过前不可推送家长;通过后最终应收金额更新;驳回后员工端展示原因并保留原报价 | 高 |
| TC-CON-SIGN-001 | 未手写签字禁止支付 | 员工端已推送合同到家长端,家长未完成手写签字 | 家长进入合同支付页并尝试支付 | 支付按钮置灰或接口拒绝;提示需先完成手写签字;完成手写签字后支付入口立即开放 | 高 |
| TC-CON-SEAL-001 | 支付成功自动企业盖章 | 家长已完成手写签字并成功支付 | 支付回调成功后触发企业电子公章任务并查看家长端合同 | 支付状态 10 秒内回写;盖章任务自动创建;盖章成功后家长端可查看已盖章文件;失败进入 PC 异常处理 | 高 |
| TC-CON-REG-001 | 支付盖章后监管备案 | 合同已手写签字、支付成功且企业盖章完成,监管配置启用 | 系统发起合同备案和收款报送,模拟回执成功与失败 | 成功回执归档;失败可重试或人工处理;合同、订单、监管状态一致 | 高 |
| TC-CON-AMEND-001 | 合同变更作废重签 | 合同已支付并盖章,需要变更课程或金额 | 发起合同变更或作废重签审批,家长重新签署相关协议 | 原合同、新合同、补充协议、权益重算、财务凭证和监管状态可追溯 | 高 |
| TC-CON-ENH-001 | 角色终端与合同创建交付闭环验收 | PC 价格优惠配置、员工端合同创建、员工端额外折扣申请、推送家长签署相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按明确管理人员在 PC Web 维护课程价格、组合价格、可用优惠和审批规则;销售/市场/课程顾问通过迪诺学堂教师端 App/小程序创建合同、申请额外折扣并推送家长签署。执行前端提交、后端处理、状态流转、异常重试和消息触达 | PC Web 无一线销售制单入口,员工端只能操作本人授权学员和授权优惠。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-CON-ENH-002 | 优惠价格治理交付闭环验收 | 课程价格管理、组合价格管理、可用优惠规则、额外折扣审批、员工端报价确认相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐价格规则、组合价格、优惠试算器、规则冲突提示、额外折扣审批、合同项分摊和退款反算;额外折扣须审批通过后才进入最终报价。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 合同、订单、支付、优惠分摊和退款测算金额一致。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-CON-ENH-003 | 签署支付与企业盖章交付闭环验收 | 家长合同查看、手写签字、合同支付、企业电子公章、合同归档相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按家长端必须先完成合同手写签字,系统才开放支付;支付成功后自动触发企业电子公章并归档合同文件。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 未手写签字不可支付;支付成功后企业电子公章、合同归档和状态回写自动完成。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-CON-ENH-004 | 合同变更交付闭环验收 | 合同详情、补充协议、转课测算、退款审批相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补充合同变更类型、补充协议签署、权益重算、收退差、监管重报和财务凭证调整。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 合同变更后课表、课消、应收、监管备案和凭证同步更新。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-CON-ENH-005 | 监管支付交付闭环验收 | 监管报送日志、合同详情、付款单相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按增加监管回执失败重试、人工处理、回执归档和状态提示。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 每笔监管相关资金动作均有报送状态、回执和失败处理入口。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 合同角色终端权限 | 初始化合同模块管理人员、课程顾问、销售人员、市场人员、家长和财务的端侧菜单、按钮、字段和接口权限;一线员工关闭 PC Web 合同制单入口 | roleCode、terminalScope、menuCodes、buttonCodes、fieldPolicy、apiPolicy、dataScope | 管理人员在 PC 管理端维护价格优惠和审批;员工端只处理本人授权学员合同 |
| 课程价格与组合价格 | 初始化课程标准价、校区价、组合价、多科联报价格、有效期、适用校区、启停状态和审批流 | courseId、campusScope、priceType、priceAmount、effectiveAt、approvalFlow、enabled | 员工端报价只能引用已审批启用的价格版本 |
| 可用优惠规则 | 初始化满减、折扣、赠课、老带新、多科联报、叠加互斥、择优、审批阈值和停用规则 | ruleType、stackPolicy、courseScope、discountValue、approvalThreshold、exclusiveGroup、enabled | 员工端只能选择适用优惠,冲突时展示原因和替代方案 |
| 额外折扣审批流 | 初始化员工端额外折扣申请入口、审批节点、金额阈值、利润影响展示和审批结果消息模板 | applyFlow、discountLimit、profitImpactRule、notifyTemplate、effectiveRule | 额外折扣审批通过后才进入最终报价并允许推送家长 |
| 家长手写签字与支付前置校验 | 初始化家长端合同查看、手写签字采集、签字轨迹、签字文件、支付按钮启用条件和支付失败提示 | handSignRequired=true、signFileBucket、signTraceRule、paymentGuard、failureTips | 未手写签字时家长端不可支付,接口层也阻断支付 |
| 企业电子公章 | 初始化企业电子公章规则、印章主体、盖章位置、自动触发条件、失败重试、归档策略和异常处理入口 | sealRuleCode、legalEntityId、sealPosition、trigger=PAYMENT_SUCCESS、retryPolicy、archivePolicy | 支付成功后自动盖章,失败进入 PC 合同异常处理 |
| 合同监管与归档 | 初始化合同备案、收款报送、回执归档、失败重试、人工处理和合同文件下载权限 | regulatorRule、reportRetry、receiptArchive、manualHandleFlow、downloadPolicy | 签字、支付、盖章、监管和归档状态可相互追溯 |
| 角色终端与合同创建交付配置 | 初始化明确管理人员在 PC Web 维护课程价格、组合价格、可用优惠和审批规则;销售/市场/课程顾问通过迪诺学堂教师端 App/小程序创建合同、申请额外折扣并推送家长签署。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | PC 价格优惠配置、员工端合同创建、员工端额外折扣申请、推送家长签署 | PC Web 无一线销售制单入口,员工端只能操作本人授权学员和授权优惠。 |
| 优惠价格治理交付配置 | 初始化补齐价格规则、组合价格、优惠试算器、规则冲突提示、额外折扣审批、合同项分摊和退款反算;额外折扣须审批通过后才进入最终报价。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 课程价格管理、组合价格管理、可用优惠规则、额外折扣审批、员工端报价确认 | 合同、订单、支付、优惠分摊和退款测算金额一致。 |
| 签署支付与企业盖章交付配置 | 初始化家长端必须先完成合同手写签字,系统才开放支付;支付成功后自动触发企业电子公章并归档合同文件。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 家长合同查看、手写签字、合同支付、企业电子公章、合同归档 | 未手写签字不可支付;支付成功后企业电子公章、合同归档和状态回写自动完成。 |
| 合同变更交付配置 | 初始化补充合同变更类型、补充协议签署、权益重算、收退差、监管重报和财务凭证调整。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 合同详情、补充协议、转课测算、退款审批 | 合同变更后课表、课消、应收、监管备案和凭证同步更新。 |
| 监管支付交付配置 | 初始化增加监管回执失败重试、人工处理、回执归档和状态提示。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 监管报送日志、合同详情、付款单 | 每笔监管相关资金动作均有报送状态、回执和失败处理入口。 |