01 · 模块定位
平台基础中心
使用总部账号可配置组织和权限;校区账号只能查看授权范围;合同模板和审批流可被业务模块调用。业务目标
组织、校区、账号、权限、主数据、审批、消息、文件和审计的统一底座。
使用终端
PC Web 管理后台,总部/区域/校区管理人员使用。
验收主线
使用总部账号可配置组织和权限;校区账号只能查看授权范围;合同模板和审批流可被业务模块调用。
02 · 范围边界
明确本模块负责什么、依赖什么、不负责什么
边界清晰后,原型、接口和数据库设计才能避免重复建设。模块内范围
- 组织主数据
- 账号角色
- 字段权限
- 审批引擎
- 消息中心
- 文件中心
- 审计日志
上游依赖
- 组织校区与账号权限
- 课程/客户/合同等主数据
- 审批流、消息模板、文件中心
- 必要的第三方接口密钥
下游输出
- 业务状态和待办
- 消息通知和审批记录
- 报表指标和数据快照
- 审计日志和接口回执
03 · 确认口径、后台配置与默认实施规则
平台基础中心必须承接的已确认规则
本章节来自待决策与澄清清单的收口结果,已经转为本模块 PRD 的正式需求、配置项或默认实施规则。| 分类 | 事项 | 本模块落地要求 | 责任方 |
|---|---|---|---|
| 已确认口径 | 校区地图点位与设备清单 | 校区经纬度、校区大头钉、摄像头编码、品牌、教室、平台/网关关系、在线状态、设备总数均由后台动态维护,不作为静态初始化一次性数据。 | 产品/运营/信息化 |
| 后台配置项 | 校区税务主体配置 | 按校区配置 taxpayerName、taxpayerNo、officialAppCode、authCertificateId、verifyEndpoint、quotaPolicy、enabled、effectiveDate 和负责人。 | 财务管理员/系统管理员 |
| 后台配置项 | 校区点位与设备台账 | 配置 campusLatitude、campusLongitude、campusPinName、cameraCode、classroomId、brand、onlineStatusMapping、streamPolicy、recordSearchPolicy。 | 运营/信息化/校区 |
| 默认实施规则 | 接口设计说明书组织方式 | 采用单独 HTML 文件集中管理接口协议;模块 PRD 保留模块级接口摘要,避免每个模块重复写通用协议。 | 产品/研发 |
| 默认实施规则 | 接口错误码与重试中间件 | 所有外部接口和内部异步任务统一错误码、幂等键、重试次数、告警阈值和回执归档策略。 | 后端/测试/运维 |
04 · 业务流程
平台基础中心主流程
流程用于指导原型图的页面顺序、按钮状态和异常分支。组织主数据需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
账号角色需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
字段权限需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
审批引擎需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
消息中心需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
文件中心需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
审计日志需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。
05 · 功能清单
按子模块拆到可设计、可开发、可测试的颗粒度
每一行功能都需要在原型中体现入口、状态、按钮、字段和反馈。| 一级功能 | 二级功能 | 功能说明 | 规则/验收 |
|---|---|---|---|
| 组织主数据 | 基础维护 | 组织主数据支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 组织主数据 | 业务处理 | 组织主数据需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 组织主数据 | 异常闭环 | 越权访问处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 账号角色 | 基础维护 | 账号角色支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 账号角色 | 业务处理 | 账号角色需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 账号角色 | 异常闭环 | 组织归属缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 字段权限 | 基础维护 | 字段权限支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 字段权限 | 业务处理 | 字段权限需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 字段权限 | 异常闭环 | 审批链断点处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 审批引擎 | 基础维护 | 审批引擎支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 审批引擎 | 业务处理 | 审批引擎需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 审批引擎 | 异常闭环 | 越权访问处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 消息中心 | 基础维护 | 消息中心支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 消息中心 | 业务处理 | 消息中心需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 消息中心 | 异常闭环 | 组织归属缺失处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 文件中心 | 基础维护 | 文件中心支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 文件中心 | 业务处理 | 文件中心需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 文件中心 | 异常闭环 | 审批链断点处理 | 失败原因可见、可重试、可转人工、可追溯 |
| 审计日志 | 基础维护 | 审计日志支持新增、编辑、启用/停用、查询、导入导出和操作审计。 | 编码唯一、数据范围过滤、逻辑删除和审计留痕 |
| 审计日志 | 业务处理 | 审计日志需覆盖入口、字段、状态、权限、审批/消息、异常处理、审计和指标统计,并与上下游模块保持数据一致。 | 必须联动状态、权限、消息、审批和指标 |
| 审计日志 | 异常闭环 | 越权访问处理 | 失败原因可见、可重试、可转人工、可追溯 |
功能到数据对象/接口/表映射
| 功能域 | 承接对象 | 核心表 | 代表接口 | 状态机/状态字段 | 研发落地校验 |
|---|---|---|---|---|---|
| 组织主数据 | Organization、CampusProfile、LegalEntity、User/Employee | sys_organization、sys_campus_profile、sys_legal_entity、sys_user | 接口资源组 /api/v1/fnd/features/01 | org_type、user_type、login_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 账号角色 | Organization、CampusProfile、LegalEntity、User/Employee | sys_organization、sys_campus_profile、sys_legal_entity、sys_user | 接口资源组 /api/v1/fnd/features/02 | org_type、user_type、login_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 字段权限 | Organization、CampusProfile、LegalEntity、User/Employee | sys_organization、sys_campus_profile、sys_legal_entity、sys_user | 接口资源组 /api/v1/fnd/features/03 | org_type、user_type、login_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 审批引擎 | Organization、CampusProfile、LegalEntity、User/Employee | sys_organization、sys_campus_profile、sys_legal_entity、sys_user | 接口资源组 /api/v1/fnd/features/04 | org_type、user_type、login_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 消息中心 | MessageTemplate | sys_message_template | 接口资源组 /api/v1/fnd/features/05 | biz_status、approval_status、is_deleted、version | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 文件中心 | Organization、CampusProfile、LegalEntity、User/Employee | sys_organization、sys_campus_profile、sys_legal_entity、sys_user | 接口资源组 /api/v1/fnd/features/06 | org_type、user_type、login_status | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
| 审计日志 | AuditLog | sys_audit_log | 接口资源组 /api/v1/fnd/features/07 | biz_type | 新增/编辑/删除/审批/导出/回调均需校验租户、校区、角色、数据范围、逻辑删除、幂等和审计 |
06 · 原子级功能需求
用于研发任务拆分和测试用例追踪
需求编号可直接进入项目管理工具。| 编号 | 需求描述 | 入口页面 | 关键动作 | 输入校验 | 输出结果 | 异常处理 | 验收标准 |
|---|---|---|---|---|---|---|---|
| FR-FND-001 | 集团、区域、校区、部门、岗位、员工层级可配置 | 校区运营工作台 | 新增组织 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 越权访问 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FND-002 | 支持菜单、按钮、字段、数据范围、临时授权 | 敏感字段查看审批 | 明文查看申请、临时授权或过期回收 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 审批原因缺失、越权查看或水印生成失败 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FND-003 | 总部维护课程、班型、价格、渠道、合同模板和财务科目 | 账号角色 | 配置角色 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 审批链断点 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FND-004 | 审批流支持金额、折扣、校区、课程等条件分支 | 审批流配置 | 设置审批 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 越权访问 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
| FR-FND-005 | 所有关键操作生成审计记录 | 消息模板 | 维护模板 | 校验租户、校区、角色、数据范围、状态前置、必填、唯一和敏感操作授权 | 生成业务记录、状态流转、消息通知、审计日志、指标快照和必要的第三方任务 | 组织归属缺失 | 主流程、异常流、权限流、接口失败和数据一致性均可通过测试 |
07 · 关联闭环补充需求
平台基础中心在跨模块闭环中的责任边界
本章节承接最终闭环核对清单,明确本模块需要补齐的页面、接口对象、异常兜底和验收口径。| 闭环项 | 本模块责任 | 关键场景 | 页面/功能补充 | 关联对象/接口 | 验收口径 |
|---|---|---|---|---|---|
| 跨模块闭环主责 | 维护闭环主责矩阵、组织数据范围、责任人和异常兜底规则 | 补课、合同、资金、设备、直播、工资条等跨模块事项需要统一归口 | 闭环责任矩阵、模块责任配置、异常归口配置、组织角色授权 | ClosureOwnershipMatrix、Organization、User/Employee、AuditLog | 每个闭环项必须配置主责模块、协作模块、责任角色、超时升级和关闭口径 |
| 国税主体配置 | 提供集团、法人、校区、账套和税务主体的基础映射 | 校区独立核验发票、独立账套和总部财务统管 | 法人主体配置、校区税务信息、账套组织映射 | Organization、AccountSet/TaxReport、/api/v1/orgs | 税务主体变更必须版本化留痕,并同步财务校区配置 |
08 · 页面与原型设计说明
页面清单、布局要求、按钮字段和状态
原型图设计需要覆盖列表、详情、表单、弹窗、空状态、异常状态和权限状态。| 终端 | 页面 | 用户 | 页面目标 | 布局结构 | 关键按钮 | 关键字段 | 异常状态 | 原型备注 |
|---|---|---|---|---|---|---|---|---|
| PC Web | 校区运营工作台 | 校长/校区主管 | 处理待办、审批、课表异常、收款预警 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-校区运营工作台;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 组织架构 | 总部管理员 | 维护集团、区域、校区、部门、岗位 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-组织架构;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 账号角色 | 系统管理员 | 配置账号、角色、菜单、按钮、字段和数据范围 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-账号角色;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 审批流配置 | 系统管理员 | 配置审批对象、条件分支、节点和超时规则 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-审批流配置;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 消息模板 | 系统管理员 | 维护站内信、短信、小程序、App、企微模板 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-消息模板;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 跨模块闭环主责矩阵 | 产品/项目经理 | 维护补课、回放、积分、巡课、合同、付款等闭环的主责模块、协作模块和交付任务 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-跨模块闭环主责矩阵;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 组织树 | 授权用户 | 围绕权限闭环完善组织树的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-组织树;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 角色授权 | 授权用户 | 围绕权限闭环完善角色授权的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-角色授权;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 员工账号 | 授权用户 | 围绕权限闭环完善员工账号的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-员工账号;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 权限诊断 | 授权用户 | 围绕权限闭环完善权限诊断的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-权限诊断;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 审批配置 | 授权用户 | 围绕配置闭环完善审批配置的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-审批配置;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 业务单据详情 | 授权用户 | 围绕配置闭环完善业务单据详情的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-业务单据详情;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 数据字典 | 授权用户 | 围绕安全基础完善数据字典的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-数据字典;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 审计日志 | 授权用户 | 围绕安全基础完善审计日志的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-审计日志;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
| PC Web | 敏感操作审批 | 授权用户 | 围绕安全基础完善敏感操作审批的入口、字段、状态、异常提示、处理进度和验收反馈 | 平台基础页采用统一管理端框架,左侧为组织、角色、字典或配置对象导航,中部为列表/配置主区,右侧使用详情抽屉、权限诊断或审批日志。 | 新增组织、维护账号、配置角色、配置审批、维护字典、发布消息模板、查看审计、权限诊断 | 组织名称、组织类型、上级组织、适用校区、负责人、启用状态、数据范围、审批规则、模板编码、审计对象 | 组织层级冲突、角色越权、字段权限缺失、审批规则未命中、模板变量缺失、敏感操作未授权 | 管理员端不单独绘制高保真 UI,需在原型任务中标注信息架构、配置关系、权限边界、状态流和异常处理。 建议 Figma Frame:FND-敏感操作审批;需补齐正常、空态、加载、无权限、处理中、成功和失败状态。 |
09 · 页面到接口的前后端闭环矩阵
把原型页面、后端接口、数据对象、状态和消息审批绑定到一起
设计原型时,每个关键页面必须能解释前端展示什么、后端提交什么、状态怎么变、异常怎么处理。| 原型页面 | 关键接口 | 关联对象 | 状态流 | 审批/权限触发 | 消息/待办触达 | 原型验收要求 |
|---|---|---|---|---|---|---|
| 校区运营工作台 | POST/GET /api/v1/orgs | Organization | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 组织架构 | POST/GET /api/v1/users | CampusProfile | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 账号角色 | PUT /api/v1/roles/permissions | LegalEntity | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 审批流配置 | POST/PUT /api/v1/approval/flows | User/Employee | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 消息模板 | POST /api/v1/messages/send | Employee | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 跨模块闭环主责矩阵 | POST/GET /api/v1/orgs | Role | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 组织树 | POST/GET /api/v1/users | UserRole | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 角色授权 | PUT /api/v1/roles/permissions | ApprovalFlow | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 员工账号 | POST/PUT /api/v1/approval/flows | MessageTemplate | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 权限诊断 | POST /api/v1/messages/send | AuditLog | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 审批配置 | POST/GET /api/v1/orgs | Organization | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
| 业务单据详情 | POST/GET /api/v1/users | CampusProfile | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 无审批时仍需写操作审计,敏感操作按安全中心规则触发审批 | 处理完成、失败和异常转人工均需触发站内通知或待办 | 原型需展示入口、主按钮、禁用原因、提交中、成功、失败、无权限、空状态和异常转人工入口 |
10 · 原型、UI、研发、测试交付补充
把关键闭环补强为下一阶段可执行任务
本章节为正式 PRD 的交付要求,面向原型图、UI、开发、联调和测试分工。| 能力域 | 功能补充要求 | 原型交付要求 | UI 交互要求 | 研发实现要求 | 测试验收要求 |
|---|---|---|---|---|---|
| 权限闭环 | 补齐权限变更的实时生效、缓存刷新、影响用户提示、审计日志和回滚策略。 | 组织树、角色授权、员工账号、权限诊断 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;权限变更后用户重新进入页面、接口调用和导出均按新权限执行。 |
| 配置闭环 | 要求审批流与消息模板按业务类型、组织范围、版本号和启停状态统一配置,业务单据引用当时版本。 | 审批配置、消息模板、业务单据详情 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;历史单据按原版本追溯,新单据按当前启用版本执行。 |
| 安全基础 | 补齐逻辑删除、恢复审批、字段脱敏、临时授权和操作审计的公共规则。 | 数据字典、审计日志、敏感操作审批 需要在原型中拆到列表、详情、表单、弹窗、空状态、失败态、无权限态和处理进度。 | UI 需清晰呈现状态标签、流程节点、主次按钮、危险操作确认、移动/平板/TV 适配和错误提示;PC 管理端遵循统一框架,仅输出信息架构和交互说明。 | 后端需提供接口幂等、权限校验、状态机、审计日志、消息/审批触发、异步补偿和跨模块数据一致性保障。 | 测试需覆盖主流程、异常流、权限流、重复提交、批量部分失败和数据一致性;所有可删除对象具备 is_deleted、deleted_at、deleted_by,并可审计。 |
11 · 数据对象与字段字典
明确页面、接口、数据库共同使用的数据语言
字段涉及敏感、人脸、财务、绩效时,原型需体现脱敏、授权和审计。核心对象
| 对象 | 说明 |
|---|---|
| Organization | 集团、区域、校区、部门组织树;落地表:sys_organization |
| CampusProfile | 校区档案、经纬度和监管基础信息;落地表:sys_campus_profile |
| LegalEntity | 法人主体、税务主体和收款主体;落地表:sys_legal_entity |
| User/Employee | 统一登录账号;落地表:sys_user |
| Employee | 员工基础档案;落地表:sys_employee |
| Role | 角色定义;落地表:sys_role |
| UserRole | 用户角色与组织授权关系;落地表:sys_user_role |
| ApprovalFlow | 审批流配置;落地表:sys_approval_flow |
| MessageTemplate | 消息模板与多端触达配置;落地表:sys_message_template |
| AuditLog | 全平台操作审计日志;落地表:sys_audit_log |
关联引用对象
| 对象 | 说明 |
|---|---|
| IntegrationLog | 接口调用日志;引用来源:OPEN / int_integration_log |
| SensitiveFieldPolicy | 敏感字段脱敏策略;引用来源:SEC / sec_sensitive_field_policy |
| SensitiveAccessApproval | 敏感数据查看审批;引用来源:SEC / sec_sensitive_access_approval |
| ExportApproval | 敏感数据导出审批;引用来源:SEC / sec_export_approval |
完整字段字典
| 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|
| Organization | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Organization | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Organization | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Organization | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Organization | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Organization | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Organization | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Organization | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Organization | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Organization | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Organization | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Organization | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Organization | org_code | VARCHAR(64) | 是 | 组织编码,租户内唯一 | 普通 |
| Organization | org_name | VARCHAR(128) | 是 | 组织名称 | 普通 |
| Organization | org_type | VARCHAR(32) | 是 | 集团/区域/校区/部门/法人主体 | 普通 |
| Organization | parent_id | BIGINT | 否 | 上级组织 ID,根节点为空 | 普通 |
| Organization | sort_no | INT | 否 | 同级排序 | 普通 |
| Organization | enabled | TINYINT | 是 | 是否启用 | 普通 |
| CampusProfile | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| CampusProfile | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| CampusProfile | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| CampusProfile | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| CampusProfile | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| CampusProfile | created_at | DATETIME | 是 | 创建时间 | 普通 |
| CampusProfile | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| CampusProfile | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| CampusProfile | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| CampusProfile | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| CampusProfile | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| CampusProfile | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| CampusProfile | campus_code | VARCHAR(64) | 是 | 校区编码,唯一 | 普通 |
| CampusProfile | campus_name | VARCHAR(128) | 是 | 校区名称 | 普通 |
| CampusProfile | legal_entity_id | BIGINT | 否 | 所属法人主体 | 普通 |
| CampusProfile | address | VARCHAR(255) | 否 | 校区地址 | 普通 |
| CampusProfile | longitude | DECIMAL(12,8) | 否 | 地图经度,后台动态配置 | 普通 |
| CampusProfile | latitude | DECIMAL(12,8) | 否 | 地图纬度,后台动态配置 | 普通 |
| CampusProfile | business_hours | JSON | 否 | 营业时间配置 | 普通 |
| LegalEntity | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| LegalEntity | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| LegalEntity | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| LegalEntity | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| LegalEntity | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| LegalEntity | created_at | DATETIME | 是 | 创建时间 | 普通 |
| LegalEntity | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| LegalEntity | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| LegalEntity | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| LegalEntity | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| LegalEntity | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| LegalEntity | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| LegalEntity | entity_code | VARCHAR(64) | 是 | 主体编码,唯一 | 普通 |
| LegalEntity | entity_name | VARCHAR(128) | 是 | 主体名称 | 普通 |
| LegalEntity | taxpayer_no | VARCHAR(64) | 是 | 纳税人识别号 | 敏感 |
| LegalEntity | bank_account_no | VARCHAR(64) | 否 | 银行账号,展示需脱敏 | 敏感 |
| LegalEntity | invoice_rule | JSON | 否 | 开票与核验规则 | 普通 |
| LegalEntity | enabled | TINYINT | 是 | 是否启用 | 普通 |
| User/Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| User/Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| User/Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| User/Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| User/Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| User/Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| User/Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| User/Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| User/Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| User/Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| User/Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| User/Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| User/Employee | user_no | VARCHAR(64) | 是 | 账号编号,唯一 | 普通 |
| User/Employee | login_name | VARCHAR(64) | 是 | 登录名,唯一 | 普通 |
| User/Employee | mobile | VARCHAR(32) | 否 | 手机号,敏感脱敏展示 | 敏感 |
| User/Employee | password_hash | VARCHAR(255) | 否 | 密码哈希,禁止前端返回 | 高敏 |
| User/Employee | user_type | VARCHAR(32) | 是 | 员工/学员/家长/外部账号 | 普通 |
| User/Employee | login_status | VARCHAR(32) | 是 | 正常/锁定/停用/待激活 | 普通 |
| Employee | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Employee | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Employee | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Employee | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Employee | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Employee | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Employee | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Employee | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Employee | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Employee | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Employee | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Employee | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Employee | employee_no | VARCHAR(64) | 是 | 工号,唯一 | 普通 |
| Employee | user_id | BIGINT | 否 | 关联账号 ID | 普通 |
| Employee | employee_name | VARCHAR(64) | 是 | 员工姓名 | 普通 |
| Employee | primary_campus_id | BIGINT | 否 | 主校区 ID | 普通 |
| Employee | job_title | VARCHAR(64) | 否 | 岗位名称 | 普通 |
| Employee | hire_status | VARCHAR(32) | 是 | 在职/试用/离职/停用 | 普通 |
| Role | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| Role | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| Role | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| Role | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| Role | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| Role | created_at | DATETIME | 是 | 创建时间 | 普通 |
| Role | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| Role | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| Role | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| Role | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| Role | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| Role | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| Role | role_code | VARCHAR(64) | 是 | 角色编码,唯一 | 普通 |
| Role | role_name | VARCHAR(128) | 是 | 角色名称 | 普通 |
| Role | role_level | VARCHAR(32) | 是 | 总部/区域/校区/个人 | 普通 |
| Role | data_scope_type | VARCHAR(32) | 是 | 数据范围类型 | 普通 |
| Role | enabled | TINYINT | 是 | 是否启用 | 普通 |
| UserRole | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| UserRole | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| UserRole | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| UserRole | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| UserRole | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| UserRole | created_at | DATETIME | 是 | 创建时间 | 普通 |
| UserRole | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| UserRole | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| UserRole | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| UserRole | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| UserRole | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| UserRole | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| UserRole | user_id | BIGINT | 是 | 用户 ID | 普通 |
| UserRole | role_id | BIGINT | 是 | 角色 ID | 普通 |
| UserRole | scope_org_ids | JSON | 否 | 授权组织范围 | 普通 |
| UserRole | valid_from | DATETIME | 是 | 授权开始时间 | 普通 |
| UserRole | valid_to | DATETIME | 否 | 授权结束时间 | 普通 |
| ApprovalFlow | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| ApprovalFlow | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| ApprovalFlow | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| ApprovalFlow | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| ApprovalFlow | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| ApprovalFlow | created_at | DATETIME | 是 | 创建时间 | 普通 |
| ApprovalFlow | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| ApprovalFlow | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| ApprovalFlow | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| ApprovalFlow | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| ApprovalFlow | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| ApprovalFlow | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| ApprovalFlow | flow_code | VARCHAR(64) | 是 | 审批流编码,唯一 | 普通 |
| ApprovalFlow | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| ApprovalFlow | flow_name | VARCHAR(128) | 是 | 审批流名称 | 普通 |
| ApprovalFlow | condition_json | JSON | 否 | 触发条件 | 普通 |
| ApprovalFlow | node_json | JSON | 是 | 节点、审批人和超时规则 | 普通 |
| ApprovalFlow | version_no | INT | 是 | 审批流版本号 | 普通 |
| ApprovalFlow | enabled | TINYINT | 是 | 是否启用 | 普通 |
| MessageTemplate | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| MessageTemplate | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| MessageTemplate | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| MessageTemplate | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| MessageTemplate | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| MessageTemplate | created_at | DATETIME | 是 | 创建时间 | 普通 |
| MessageTemplate | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| MessageTemplate | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| MessageTemplate | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| MessageTemplate | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| MessageTemplate | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| MessageTemplate | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| MessageTemplate | template_code | VARCHAR(64) | 是 | 模板编码,唯一 | 普通 |
| MessageTemplate | template_name | VARCHAR(128) | 是 | 模板名称 | 普通 |
| MessageTemplate | channel | VARCHAR(32) | 是 | 站内信/短信/微信小程序/企微/Push | 普通 |
| MessageTemplate | receiver_rule | JSON | 是 | 接收人规则 | 普通 |
| MessageTemplate | content_template | TEXT | 是 | 模板内容 | 普通 |
| MessageTemplate | enabled | TINYINT | 是 | 是否启用 | 普通 |
| AuditLog | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| AuditLog | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| AuditLog | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| AuditLog | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| AuditLog | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| AuditLog | created_at | DATETIME | 是 | 创建时间 | 普通 |
| AuditLog | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| AuditLog | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| AuditLog | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| AuditLog | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| AuditLog | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| AuditLog | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| AuditLog | operator_id | BIGINT | 是 | 操作人 ID | 普通 |
| AuditLog | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| AuditLog | biz_id | BIGINT | 否 | 业务主键 ID | 普通 |
| AuditLog | action_code | VARCHAR(64) | 是 | 操作编码 | 普通 |
| AuditLog | before_snapshot | JSON | 否 | 变更前快照 | 普通 |
| AuditLog | after_snapshot | JSON | 否 | 变更后快照 | 普通 |
| 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 | 是 | 是否加水印 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | request_no | VARCHAR(64) | 是 | 申请编号,唯一 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | applicant_id | BIGINT | 是 | 申请人 ID | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | biz_type | VARCHAR(64) | 是 | 业务类型 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | biz_id | BIGINT | 是 | 业务 ID | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | field_scope | JSON | 是 | 申请查看字段 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | access_reason | VARCHAR(512) | 是 | 查看原因 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | expire_at | DATETIME | 否 | 授权过期时间 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| sec_sensitive_access_approval | SensitiveAccessApproval | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
| sec_export_approval | ExportApproval | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sec_export_approval | ExportApproval | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sec_export_approval | ExportApproval | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sec_export_approval | ExportApproval | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sec_export_approval | ExportApproval | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sec_export_approval | ExportApproval | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sec_export_approval | ExportApproval | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sec_export_approval | ExportApproval | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sec_export_approval | ExportApproval | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sec_export_approval | ExportApproval | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sec_export_approval | ExportApproval | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sec_export_approval | ExportApproval | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sec_export_approval | ExportApproval | export_no | VARCHAR(64) | 是 | 导出编号,唯一 | 普通 |
| sec_export_approval | ExportApproval | applicant_id | BIGINT | 是 | 申请人 ID | 普通 |
| sec_export_approval | ExportApproval | export_biz_type | VARCHAR(64) | 是 | 导出业务类型 | 普通 |
| sec_export_approval | ExportApproval | filter_snapshot | JSON | 是 | 导出筛选条件快照 | 普通 |
| sec_export_approval | ExportApproval | file_id | BIGINT | 否 | 导出文件 ID | 普通 |
| sec_export_approval | ExportApproval | download_expire_at | DATETIME | 否 | 下载过期时间 | 普通 |
| sec_export_approval | ExportApproval | approval_status | VARCHAR(32) | 否 | 审批状态,未发起为空 | 普通 |
| sec_export_approval | ExportApproval | approval_instance_id | BIGINT | 否 | 关联审批实例 ID | 普通 |
JSON 字段结构与校验
| 表名 | 对象 | 字段 | 结构编码 | 结构定义 | 校验规则 | 示例 |
|---|---|---|---|---|---|---|
| sys_campus_profile | CampusProfile | business_hours | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| sys_legal_entity | LegalEntity | invoice_rule | GENERIC | object | array | 必须符合字段说明中的业务结构;保存前进行 JSON Schema 校验并记录版本 | {"version":1,"items":[]} |
| sys_user_role | UserRole | scope_org_ids | ORG_SCOPE | {scopeType:string, orgIds:number[], campusIds:number[], includeChildren:boolean} | 组织和校区必须在当前租户授权范围内 | {"scopeType":"CAMPUS","campusIds":[101,102],"includeChildren":false} |
| sys_approval_flow | ApprovalFlow | condition_json | APPROVAL_CONDITION | {amountRange?:[number,number], orgScope?:number[], bizStatus?:string[], expression?:string} | 表达式只能使用审批变量白名单 | {"amountRange":[1000,999999],"bizStatus":["SUBMITTED"]} |
| sys_approval_flow | ApprovalFlow | node_json | APPROVAL_NODE | {nodes:[{nodeCode:string, approverType:string, approverIds:number[], timeoutHours:number, rejectTo:string}]} | 节点编码唯一;审批人必须是启用账号 | {"nodes":[{"nodeCode":"FIN_REVIEW","approverType":"ROLE","approverIds":[3001],"timeoutHours":24}]} |
| sys_message_template | MessageTemplate | receiver_rule | MESSAGE_RECEIVER | {receiverType:string, roleCodes?:string[], userIds?:number[], dynamicField?:string} | 接收人必须能解析到有效账号;失败生成消息异常任务 | {"receiverType":"ROLE","roleCodes":["CAMPUS_MANAGER"]} |
| sys_audit_log | AuditLog | before_snapshot | AUDIT_SNAPSHOT | {before?:object, after?:object, changedFields:string[], maskPolicy:string} | 敏感字段必须按脱敏策略写入,不允许存储明文密码或密钥 | {"changedFields":["owner_id"],"maskPolicy":"MOBILE_MASK"} |
| sys_audit_log | AuditLog | after_snapshot | AUDIT_SNAPSHOT | {before?:object, after?:object, changedFields:string[], maskPolicy:string} | 敏感字段必须按脱敏策略写入,不允许存储明文密码或密钥 | {"changedFields":["owner_id"],"maskPolicy":"MOBILE_MASK"} |
状态/枚举标准字典
| 表名 | 对象 | 字段 | 枚举编码 | 取值 | 终态/流转规则 | 字段说明 |
|---|---|---|---|---|---|---|
| sys_organization | Organization | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_organization | Organization | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_organization | Organization | org_type | ORG_TYPE | 集团、区域、校区、部门、法人主体 | 非终态,可按状态机或字典规则流转 | 集团/区域/校区/部门/法人主体 |
| sys_organization | Organization | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| sys_campus_profile | CampusProfile | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_campus_profile | CampusProfile | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_legal_entity | LegalEntity | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_legal_entity | LegalEntity | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_legal_entity | LegalEntity | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| sys_user | User/Employee | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_user | User/Employee | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_user | User/Employee | user_type | USER_TYPE | 员工、学员、家长、外部账号 | 非终态,可按状态机或字典规则流转 | 员工/学员/家长/外部账号 |
| sys_user | User/Employee | login_status | LOGIN_STATUS | PENDING 待激活、NORMAL 正常、LOCKED 锁定、DISABLED 停用 | 包含终态,终态禁止直接编辑,需走变更/红冲/撤回流程 | 正常/锁定/停用/待激活 |
| sys_employee | Employee | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_employee | Employee | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_employee | Employee | hire_status | HIRE_STATUS | 在职、试用、离职、停用 | 非终态,可按状态机或字典规则流转 | 在职/试用/离职/停用 |
| sys_role | Role | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_role | Role | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_role | Role | role_level | ROLE_LEVEL | 总部、区域、校区、个人 | 非终态,可按状态机或字典规则流转 | 总部/区域/校区/个人 |
| sys_role | Role | data_scope_type | DATA_SCOPE_TYPE | HEADQUARTER 总部全量、REGION 区域辖区、CAMPUS 校区本地、DEPARTMENT 部门、TEAM 团队、SELF 本人、CUSTOM 自定义 | 非终态,可按状态机或字典规则流转 | 数据范围类型 |
| sys_role | Role | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| sys_user_role | UserRole | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_user_role | UserRole | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_approval_flow | ApprovalFlow | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_approval_flow | ApprovalFlow | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_approval_flow | ApprovalFlow | biz_type | BIZ_TYPE | LEAD 线索、CUSTOMER 客户、CONTRACT 合同、ORDER 订单、PAYMENT 收款、REFUND 退费、LESSON 课次、CONSUMPTION 课消、EXPENSE 报销、VOUCHER 凭证、INVOICE 发票、LIVE 直播、PATROL 巡课、DEVICE 设备、MATERIAL 物料、PAYROLL 工资 | 非终态,可按状态机或字典规则流转 | 业务类型 |
| sys_approval_flow | ApprovalFlow | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| sys_message_template | MessageTemplate | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_message_template | MessageTemplate | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_message_template | MessageTemplate | channel | CHANNEL | 站内信、短信、微信小程序、企微、Push | 非终态,可按状态机或字典规则流转 | 站内信/短信/微信小程序/企微/Push |
| sys_message_template | MessageTemplate | enabled | ENABLED_STATUS | 0 停用、1 启用 | 非终态,可按状态机或字典规则流转 | 是否启用 |
| sys_audit_log | AuditLog | tenant_id | TENANT_ID | 集团、租户隔离字段 | 非终态,可按状态机或字典规则流转 | 集团/租户隔离字段,所有查询必须带租户上下文 |
| sys_audit_log | AuditLog | is_deleted | BOOL_DELETED | 0 未删除、1 已删除 | 非终态,可按状态机或字典规则流转 | 是否已删除,0 未删除,1 已删除 |
| sys_audit_log | AuditLog | biz_type | BIZ_TYPE | LEAD 线索、CUSTOMER 客户、CONTRACT 合同、ORDER 订单、PAYMENT 收款、REFUND 退费、LESSON 课次、CONSUMPTION 课消、EXPENSE 报销、VOUCHER 凭证、INVOICE 发票、LIVE 直播、PATROL 巡课、DEVICE 设备、MATERIAL 物料、PAYROLL 工资 | 非终态,可按状态机或字典规则流转 | 业务类型 |
敏感字段与数据安全策略
| 来源 | 表名 | 对象 | 字段 | 数据级别 | 脱敏/返回策略 | 明文查看条件 | 导出策略 | 审计要求 | 端侧展示规则 |
|---|---|---|---|---|---|---|---|---|---|
| 本模块对象 | 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、核验、查重、人工校正、导出和付款阻断均留痕 | 移动端可上传和查看本人报销结果,不展示其他人员票据明文 |
| 本模块对象 | sys_user | User/Employee | mobile | 敏感 | MOBILE_MASK | 默认展示 138****0000;明文查看需字段权限或敏感字段查看审批 | 导出手机号必须触发导出审批、下载水印和有效期控制 | 明文查看、复制、导出和批量下载均写入 SensitiveAccessLog | PC 管理端按字段权限展示;移动端仅展示本人授权范围内脱敏信息 |
| 本模块对象 | sys_user | User/Employee | password_hash | 高敏 | NEVER_RETURN | 禁止接口返回明文;仅密钥中心/鉴权服务按服务身份读取密钥引用 | 禁止导出;配置导出只允许导出脱敏引用和启停状态 | 配置新增、修改、启停、轮换和失败读取均记录安全审计 | 前端只展示已配置/未配置、到期时间和连通性状态,不展示密钥值 |
| 本模块对象 | sys_user_role | UserRole | scope_org_ids | 普通 | PAYLOAD_DESENSITIZE | 接口报文、快照和文件地址默认脱敏;排障查看需运维/安全授权 | 导出日志或报文时自动清理手机号、证件号、密钥、票据和人脸字段 | 查看报文、下载附件、失败重放和人工补偿均记录审计 | 业务端展示摘要和状态,完整报文仅运维/安全后台查看 |
| 本模块对象 | sys_user_role | UserRole | valid_from | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 本模块对象 | sys_user_role | UserRole | valid_to | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | 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 | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
| 引用对象 | sec_sensitive_access_approval | SensitiveAccessApproval | expire_at | 普通 | BIZ_FIELD_MASK | 按字段权限、数据范围和业务角色展示;明文查看按敏感字段审批规则执行 | 导出时按数据级别触发审批、水印、下载有效期和日志 | 查看、修改、删除、导出、下载和审批均记录操作审计 | 默认遵循总部、区域、校区、团队、本人数据范围和端侧最小可见原则 |
核心数据表完整字段
| 表名 | 对象 | 字段 | 类型 | 必填 | 规则 | 数据级别 |
|---|---|---|---|---|---|---|
| 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_campus_profile | CampusProfile | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_campus_profile | CampusProfile | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_campus_profile | CampusProfile | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_campus_profile | CampusProfile | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_campus_profile | CampusProfile | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_campus_profile | CampusProfile | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_campus_profile | CampusProfile | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_campus_profile | CampusProfile | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_campus_profile | CampusProfile | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_campus_profile | CampusProfile | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_campus_profile | CampusProfile | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_campus_profile | CampusProfile | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_campus_profile | CampusProfile | campus_code | VARCHAR(64) | 是 | 校区编码,唯一 | 普通 |
| sys_campus_profile | CampusProfile | campus_name | VARCHAR(128) | 是 | 校区名称 | 普通 |
| sys_campus_profile | CampusProfile | legal_entity_id | BIGINT | 否 | 所属法人主体 | 普通 |
| sys_campus_profile | CampusProfile | address | VARCHAR(255) | 否 | 校区地址 | 普通 |
| sys_campus_profile | CampusProfile | longitude | DECIMAL(12,8) | 否 | 地图经度,后台动态配置 | 普通 |
| sys_campus_profile | CampusProfile | latitude | DECIMAL(12,8) | 否 | 地图纬度,后台动态配置 | 普通 |
| sys_campus_profile | CampusProfile | business_hours | JSON | 否 | 营业时间配置 | 普通 |
| 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 | 是 | 是否启用 | 普通 |
| 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_user_role | UserRole | id | BIGINT | 是 | 主键,雪花或号段生成,禁止复用 | 普通 |
| sys_user_role | UserRole | tenant_id | BIGINT | 是 | 集团/租户隔离字段,所有查询必须带租户上下文 | 普通 |
| sys_user_role | UserRole | org_id | BIGINT | 否 | 所属组织,集团级或公共配置为空 | 普通 |
| sys_user_role | UserRole | campus_id | BIGINT | 否 | 所属校区,跨校区或总部级数据为空 | 普通 |
| sys_user_role | UserRole | created_by | BIGINT | 是 | 创建人账号 ID | 普通 |
| sys_user_role | UserRole | created_at | DATETIME | 是 | 创建时间 | 普通 |
| sys_user_role | UserRole | updated_by | BIGINT | 否 | 最后更新人账号 ID | 普通 |
| sys_user_role | UserRole | updated_at | DATETIME | 否 | 最后更新时间 | 普通 |
| sys_user_role | UserRole | is_deleted | TINYINT | 是 | 是否已删除,0 未删除,1 已删除 | 普通 |
| sys_user_role | UserRole | deleted_at | DATETIME | 否 | 删除时间,未删除为空 | 普通 |
| sys_user_role | UserRole | deleted_by | BIGINT | 否 | 删除人账号 ID,未删除为空 | 普通 |
| sys_user_role | UserRole | version | INT | 是 | 乐观锁版本号,写操作必须校验 | 普通 |
| sys_user_role | UserRole | user_id | BIGINT | 是 | 用户 ID | 普通 |
| sys_user_role | UserRole | role_id | BIGINT | 是 | 角色 ID | 普通 |
| sys_user_role | UserRole | scope_org_ids | JSON | 否 | 授权组织范围 | 普通 |
| sys_user_role | UserRole | valid_from | DATETIME | 是 | 授权开始时间 | 普通 |
| sys_user_role | UserRole | valid_to | DATETIME | 否 | 授权结束时间 | 普通 |
| 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 | 普通 |
数据表与对象映射
| 表名 | 对象 | 用途 | 完整字段 | 索引建议 |
|---|---|---|---|---|
| sys_organization | Organization | 集团、区域、校区、部门组织树 | 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,必填)、org_code(VARCHAR(64),必填)、org_name(VARCHAR(128),必填)、org_type(VARCHAR(32),必填)、parent_id(BIGINT)、sort_no(INT)、enabled(TINYINT,必填) | uk_org_code、idx_parent_type |
| sys_campus_profile | CampusProfile | 校区档案、经纬度和监管基础信息 | 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,必填)、campus_code(VARCHAR(64),必填)、campus_name(VARCHAR(128),必填)、legal_entity_id(BIGINT)、address(VARCHAR(255))、longitude(DECIMAL(12,8))、latitude(DECIMAL(12,8))、business_hours(JSON) | uk_campus_code、idx_geo |
| sys_legal_entity | LegalEntity | 法人主体、税务主体和收款主体 | 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,必填)、entity_code(VARCHAR(64),必填)、entity_name(VARCHAR(128),必填)、taxpayer_no(VARCHAR(64),必填)、bank_account_no(VARCHAR(64))、invoice_rule(JSON)、enabled(TINYINT,必填) | uk_entity_code、uk_taxpayer_no |
| sys_user | User/Employee | 统一登录账号 | 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,必填)、user_no(VARCHAR(64),必填)、login_name(VARCHAR(64),必填)、mobile(VARCHAR(32))、password_hash(VARCHAR(255))、user_type(VARCHAR(32),必填)、login_status(VARCHAR(32),必填) | uk_user_no、uk_login_name、idx_mobile |
| sys_employee | Employee | 员工基础档案 | 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,必填)、employee_no(VARCHAR(64),必填)、user_id(BIGINT)、employee_name(VARCHAR(64),必填)、primary_campus_id(BIGINT)、job_title(VARCHAR(64))、hire_status(VARCHAR(32),必填) | uk_employee_no、idx_campus_status |
| sys_role | Role | 角色定义 | id(BIGINT,必填)、tenant_id(BIGINT,必填)、org_id(BIGINT)、campus_id(BIGINT)、created_by(BIGINT,必填)、created_at(DATETIME,必填)、updated_by(BIGINT)、updated_at(DATETIME)、is_deleted(TINYINT,必填)、deleted_at(DATETIME)、deleted_by(BIGINT)、version(INT,必填)、role_code(VARCHAR(64),必填)、role_name(VARCHAR(128),必填)、role_level(VARCHAR(32),必填)、data_scope_type(VARCHAR(32),必填)、enabled(TINYINT,必填) | uk_role_code、idx_scope |
| sys_user_role | UserRole | 用户角色与组织授权关系 | 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,必填)、user_id(BIGINT,必填)、role_id(BIGINT,必填)、scope_org_ids(JSON)、valid_from(DATETIME,必填)、valid_to(DATETIME) | uk_user_role_scope、idx_role |
| sys_approval_flow | ApprovalFlow | 审批流配置 | 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,必填)、flow_code(VARCHAR(64),必填)、biz_type(VARCHAR(64),必填)、flow_name(VARCHAR(128),必填)、condition_json(JSON)、node_json(JSON,必填)、version_no(INT,必填)、enabled(TINYINT,必填) | uk_flow_code_version、idx_biz_enabled |
| sys_message_template | MessageTemplate | 消息模板与多端触达配置 | 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),必填)、channel(VARCHAR(32),必填)、receiver_rule(JSON,必填)、content_template(TEXT,必填)、enabled(TINYINT,必填) | uk_template_code、idx_channel_enabled |
| sys_audit_log | AuditLog | 全平台操作审计日志 | 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,必填)、operator_id(BIGINT,必填)、biz_type(VARCHAR(64),必填)、biz_id(BIGINT)、action_code(VARCHAR(64),必填)、before_snapshot(JSON)、after_snapshot(JSON)、ip_address(VARCHAR(64)) | idx_biz、idx_operator_time |
12 · 状态机与业务规则
约束业务对象如何流转、何时可编辑、何时触发审批
原型需要把状态标签、可操作按钮和禁用原因展示清楚。| 对象 | 状态 | 触发与说明 |
|---|---|---|
| 集团会议直播 | 草稿 -> 待发布 -> 已通知 -> 直播中 -> 纪要整理中 -> 待任务确认 -> 已归档 | 会议创建、范围通知、直播、签到、纪要任务、资料归档 |
| 敏感字段查看 | 待审批 -> 已授权 -> 已查看 -> 已过期 -> 已撤回 -> 已驳回 | 敏感字段明文查看申请、审批、限时授权、水印和审计 |
| 活码访问安全 | 启用中 -> 限频中 -> 黑名单命中 -> 目标下架 -> 已停用 -> 已过期 -> 异常告警 | 短链访问、防刷、失效页、黑名单和异常渠道告警 |
| 国税核验配置 | 草稿 -> 启用中 -> 频控中 -> 异常 -> 已停用 -> 已过期 | 校区税务主体、官方接口凭证、额度、启用状态和调用日志 |
| 跨模块闭环主责 | 待定义 -> 已定义 -> 评审中 -> 已确认 -> 变更中 -> 已归档 | 定义主责模块、协作模块、接口、消息、审批、测试和验收边界 |
平台基础中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
平台基础中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
平台基础中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
平台基础中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
平台基础中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
平台基础中心涉及该规则时,必须在前端提示、后端校验、审计日志和测试用例中同时覆盖。
13 · 权限、审批与消息
动作权限、数据范围、审批触发和消息触达必须闭环
权限需要覆盖菜单、按钮、字段、接口和导出。动作权限
- 新增组织:需映射菜单、按钮、接口和字段权限
- 维护账号:需映射菜单、按钮、接口和字段权限
- 配置角色:需映射菜单、按钮、接口和字段权限
- 设置审批:需映射菜单、按钮、接口和字段权限
- 维护模板:需映射菜单、按钮、接口和字段权限
- 查看审计:需映射菜单、按钮、接口和字段权限
数据范围
- 总部全量
- 区域辖区
- 校区本地
- 部门/岗位
- 本人负责
- 授权班级/学员
审批配置
| 审批名称 | 触发条件 | 流程 | 结果 | 留痕 |
|---|---|---|---|---|
| 合同优惠审批 | 折扣低于总部配置阈值或赠课超过上限 | 顾问提交 -> 销售主管 -> 校长 -> 财务抄送 | 通过后合同可签署,驳回后返回报价草稿 | 保留优惠前后金额和审批意见 |
| 报销审批 | 员工提交费用报销或发票查重命中风险 | 员工提交 -> 部门主管 -> 校长/预算负责人 -> 财务复核 | 通过后进入付款,驳回后返回报销人修改 | 保留票据影像、OCR 结果、核验结果、查重结果和审批意见 |
| 账套反结账审批 | 已结账期间需要反结账或更正税务资料 | 校区财务提交 -> 总部财务复核 -> 财务负责人终审 | 通过后解锁期间并记录调整原因 | 保留反结账前后凭证、税表和审批说明 |
| 物料采购审批 | 采购金额超过阈值、跨校区采购或固定资产采购 | 申请人 -> 校区负责人 -> 采购/财务 -> 总部审批 | 通过后生成采购订单和到货验收任务 | 保留预算、供应商、报价和采购合同附件 |
| 固定资产报废审批 | 固定资产、图书或高价值物料需要报废 | 责任人提交 -> 校区负责人 -> 资产管理员 -> 财务复核 | 通过后出库、报废并生成财务核销记录 | 保留照片、盘点记录、处置说明和残值 |
| 转校审批 | 学员权益跨校区转移 | 原校区校长 -> 目标校区校长 -> 财务确认 | 权益和服务归属迁移 | 记录转出转入校区和余额 |
| 数据导出审批 | 导出客户、学员、人脸、工资、利润等敏感数据 | 申请人 -> 部门主管 -> 数据管理员 | 生成限时下载链接 | 记录用途、字段、下载人和 IP |
| 录像调取审批 | 非巡课任务内调取历史录像或导出重点片段 | 申请人 -> 校长/区域负责人 -> 数据管理员 | 授权限时查看、导出或驳回 | 记录调取原因、录像范围、查看人和下载日志 |
消息模板
| 消息 | 接收人 | 触发 | 渠道 | 变量 |
|---|---|---|---|---|
| 新线索分配提醒 | 课程顾问 | 线索分配成功 | 站内信、App、企微 | 学员姓名、来源渠道、校区、保护期 |
| 试听预约通知 | 家长/教师/顾问 | 试听课预约成功或变更 | 小程序、短信、App | 上课时间、校区、教室、教师 |
| 库存预警 | 库管/校区负责人 | 物料或礼品低于安全库存 | 站内信、App、企微 | SKU、校区、当前库存、安全库存、补货建议 |
| 积分兑换核销通知 | 学员/家长/校区前台 | 兑换成功、即将过期或核销完成 | 小程序、App、站内信 | 礼品名称、兑换码、核销校区、有效期 |
| 到校签到通知 | 家长 | 人脸或人工签到成功 | 小程序、App | 学员姓名、签到时间、校区、课程 |
| 摄像头离线告警 | 设备管理员/校区前台 | 摄像头心跳超时或拉流失败 | 站内信、App | 校区、教室、摄像头编号、品牌、异常时间 |
| 数据导出审批 | 审批人 | 敏感数据导出申请 | 站内信、App | 申请人、字段范围、用途、过期时间 |
| 公开课直播报名提醒 | 报名家长/线索顾问 | 公开课报名成功、开播前提醒、未到场提醒 | 短信、公众号、企微、H5 | 活动、渠道、顾问、直播入口 |
14 · 接口与技术细节
接口需支持幂等、权限、审计、重试和回执
每个写接口必须有 requestId 或业务幂等键,外部回调必须验签和去重。| 接口 | 方法 | 方向 | 请求字段 | 响应字段 | 幂等/权限 |
|---|---|---|---|---|---|
| /api/v1/orgs | POST/GET | PC Web 到平台 | tenantId, parentId, orgType, orgName, status | orgId, orgTree, effectiveScope | 组织编码唯一,按租户隔离 |
| /api/v1/users | POST/GET | PC Web 到平台 | mobile, employeeNo, campusIds, roleIds | userId, loginStatus, permissionSummary | 手机号与员工号唯一 |
| /api/v1/roles/permissions | PUT | PC Web 到平台 | roleId, permissionCodes, dataScope | effectiveMenus, buttons, fields | 角色变更写入审计 |
| /api/v1/approval/flows | POST/PUT | PC Web 到平台 | bizType, conditionJson, nodes, versionNo | flowId, enabled, nextVersion | 同业务仅一个启用版本 |
| /api/v1/messages/send | POST | 平台内部 | templateCode, receivers, variables, requestId | messageId, sendStatus | requestId 幂等 |
前端约束
- 统一登录态和租户校区上下文
- 列表分页、筛选、排序、列显隐
- 表单本地校验与服务端错误映射
- 移动/平板/TV 按终端适配交互
后端约束
- 领域服务封装业务规则
- 写操作事务一致性
- 关键操作审计快照
- 异步任务失败重试和告警
集成约束
- 第三方接口统一走开放集成中心
- 回执文件归档
- 接口日志可按业务单号追踪
- 密钥和回调地址按环境隔离
15 · 数据库与存储设计
核心表建议、关键字段和索引方向
详细 DDL 已在平台技术设计文档中统一展开,本处保留模块核心表、关键字段和索引方向。| 表名 | 用途 | 核心字段 | 索引建议 |
|---|---|---|---|
| sys_organization | 集团、区域、校区、部门组织树 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、org_code、org_name、org_type、parent_id、sort_no、enabled | uk_org_code、idx_parent_type |
| sys_campus_profile | 校区档案、经纬度和监管基础信息 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、campus_code、campus_name、legal_entity_id、address、longitude、latitude、business_hours | uk_campus_code、idx_geo |
| sys_legal_entity | 法人主体、税务主体和收款主体 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、entity_code、entity_name、taxpayer_no、bank_account_no、invoice_rule、enabled | uk_entity_code、uk_taxpayer_no |
| sys_user | 统一登录账号 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、user_no、login_name、mobile、password_hash、user_type、login_status | uk_user_no、uk_login_name、idx_mobile |
| sys_employee | 员工基础档案 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、employee_no、user_id、employee_name、primary_campus_id、job_title、hire_status | uk_employee_no、idx_campus_status |
| sys_role | 角色定义 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、role_code、role_name、role_level、data_scope_type、enabled | uk_role_code、idx_scope |
| sys_user_role | 用户角色与组织授权关系 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、user_id、role_id、scope_org_ids、valid_from、valid_to | uk_user_role_scope、idx_role |
| sys_approval_flow | 审批流配置 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、flow_code、biz_type、flow_name、condition_json、node_json、version_no、enabled | uk_flow_code_version、idx_biz_enabled |
| sys_message_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、channel、receiver_rule、content_template、enabled | uk_template_code、idx_channel_enabled |
| sys_audit_log | 全平台操作审计日志 | id、tenant_id、org_id、campus_id、created_by、created_at、updated_by、updated_at、is_deleted、deleted_at、deleted_by、version、operator_id、biz_type、biz_id、action_code、before_snapshot、after_snapshot、ip_address | idx_biz、idx_operator_time |
DDL 草案
sys_organizationOrganization
CREATE TABLE `sys_organization` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`org_code` VARCHAR(64) NOT NULL COMMENT '组织编码,租户内唯一;数据级别:普通',
`org_name` VARCHAR(128) NOT NULL COMMENT '组织名称;数据级别:普通',
`org_type` VARCHAR(32) NOT NULL COMMENT '集团/区域/校区/部门/法人主体;数据级别:普通',
`parent_id` BIGINT NULL COMMENT '上级组织 ID,根节点为空;数据级别:普通',
`sort_no` INT NULL COMMENT '同级排序;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_org_code` (`org_id`, `org_code`),
KEY `idx_parent_type` (`parent_id`, `org_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Organization:集团、区域、校区、部门组织树';
sys_campus_profileCampusProfile
CREATE TABLE `sys_campus_profile` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`campus_code` VARCHAR(64) NOT NULL COMMENT '校区编码,唯一;数据级别:普通',
`campus_name` VARCHAR(128) NOT NULL COMMENT '校区名称;数据级别:普通',
`legal_entity_id` BIGINT NULL COMMENT '所属法人主体;数据级别:普通',
`address` VARCHAR(255) NULL COMMENT '校区地址;数据级别:普通',
`longitude` DECIMAL(12,8) NULL COMMENT '地图经度,后台动态配置;数据级别:普通',
`latitude` DECIMAL(12,8) NULL COMMENT '地图纬度,后台动态配置;数据级别:普通',
`business_hours` JSON NULL COMMENT '营业时间配置;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_campus_code` (`campus_id`, `campus_code`),
KEY `idx_geo` (`tenant_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='CampusProfile:校区档案、经纬度和监管基础信息';
sys_legal_entityLegalEntity
CREATE TABLE `sys_legal_entity` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`entity_code` VARCHAR(64) NOT NULL COMMENT '主体编码,唯一;数据级别:普通',
`entity_name` VARCHAR(128) NOT NULL COMMENT '主体名称;数据级别:普通',
`taxpayer_no` VARCHAR(64) NOT NULL COMMENT '纳税人识别号;数据级别:敏感',
`bank_account_no` VARCHAR(64) NULL COMMENT '银行账号,展示需脱敏;数据级别:敏感',
`invoice_rule` JSON NULL COMMENT '开票与核验规则;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_entity_code` (`entity_code`),
UNIQUE KEY `uk_taxpayer_no` (`taxpayer_no`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='LegalEntity:法人主体、税务主体和收款主体';
sys_userUser/Employee
CREATE TABLE `sys_user` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`user_no` VARCHAR(64) NOT NULL COMMENT '账号编号,唯一;数据级别:普通',
`login_name` VARCHAR(64) NOT NULL COMMENT '登录名,唯一;数据级别:普通',
`mobile` VARCHAR(32) NULL COMMENT '手机号,敏感脱敏展示;数据级别:敏感',
`password_hash` VARCHAR(255) NULL COMMENT '密码哈希,禁止前端返回;数据级别:高敏',
`user_type` VARCHAR(32) NOT NULL COMMENT '员工/学员/家长/外部账号;数据级别:普通',
`login_status` VARCHAR(32) NOT NULL COMMENT '正常/锁定/停用/待激活;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_no` (`user_no`),
UNIQUE KEY `uk_login_name` (`login_name`),
KEY `idx_mobile` (`mobile`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='User/Employee:统一登录账号';
sys_employeeEmployee
CREATE TABLE `sys_employee` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`employee_no` VARCHAR(64) NOT NULL COMMENT '工号,唯一;数据级别:普通',
`user_id` BIGINT NULL COMMENT '关联账号 ID;数据级别:普通',
`employee_name` VARCHAR(64) NOT NULL COMMENT '员工姓名;数据级别:普通',
`primary_campus_id` BIGINT NULL COMMENT '主校区 ID;数据级别:普通',
`job_title` VARCHAR(64) NULL COMMENT '岗位名称;数据级别:普通',
`hire_status` VARCHAR(32) NOT NULL COMMENT '在职/试用/离职/停用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_employee_no` (`employee_no`),
KEY `idx_campus_status` (`campus_id`, `hire_status`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Employee:员工基础档案';
sys_roleRole
CREATE TABLE `sys_role` (
`id` BIGINT NOT NULL COMMENT '主键,雪花或号段生成,禁止复用;数据级别:普通',
`tenant_id` BIGINT NOT NULL COMMENT '集团/租户隔离字段,所有查询必须带租户上下文;数据级别:普通',
`org_id` BIGINT NULL COMMENT '所属组织,集团级或公共配置为空;数据级别:普通',
`campus_id` BIGINT NULL COMMENT '所属校区,跨校区或总部级数据为空;数据级别:普通',
`created_by` BIGINT NOT NULL COMMENT '创建人账号 ID;数据级别:普通',
`created_at` DATETIME NOT NULL COMMENT '创建时间;数据级别:普通',
`updated_by` BIGINT NULL COMMENT '最后更新人账号 ID;数据级别:普通',
`updated_at` DATETIME NULL COMMENT '最后更新时间;数据级别:普通',
`is_deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '是否已删除,0 未删除,1 已删除;数据级别:普通',
`deleted_at` DATETIME NULL COMMENT '删除时间,未删除为空;数据级别:普通',
`deleted_by` BIGINT NULL COMMENT '删除人账号 ID,未删除为空;数据级别:普通',
`version` INT NOT NULL DEFAULT 1 COMMENT '乐观锁版本号,写操作必须校验;数据级别:普通',
`role_code` VARCHAR(64) NOT NULL COMMENT '角色编码,唯一;数据级别:普通',
`role_name` VARCHAR(128) NOT NULL COMMENT '角色名称;数据级别:普通',
`role_level` VARCHAR(32) NOT NULL COMMENT '总部/区域/校区/个人;数据级别:普通',
`data_scope_type` VARCHAR(32) NOT NULL COMMENT '数据范围类型;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_role_code` (`role_code`),
KEY `idx_scope` (`data_scope_type`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='Role:角色定义';
sys_user_roleUserRole
CREATE TABLE `sys_user_role` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`user_id` BIGINT NOT NULL COMMENT '用户 ID;数据级别:普通',
`role_id` BIGINT NOT NULL COMMENT '角色 ID;数据级别:普通',
`scope_org_ids` JSON NULL COMMENT '授权组织范围;数据级别:普通',
`valid_from` DATETIME NOT NULL COMMENT '授权开始时间;数据级别:普通',
`valid_to` DATETIME NULL COMMENT '授权结束时间;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_role_scope` (`user_id`, `role_id`, `scope_org_ids`),
KEY `idx_role` (`role_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='UserRole:用户角色与组织授权关系';
sys_approval_flowApprovalFlow
CREATE TABLE `sys_approval_flow` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`flow_code` VARCHAR(64) NOT NULL COMMENT '审批流编码,唯一;数据级别:普通',
`biz_type` VARCHAR(64) NOT NULL COMMENT '业务类型;数据级别:普通',
`flow_name` VARCHAR(128) NOT NULL COMMENT '审批流名称;数据级别:普通',
`condition_json` JSON NULL COMMENT '触发条件;数据级别:普通',
`node_json` JSON NOT NULL COMMENT '节点、审批人和超时规则;数据级别:普通',
`version_no` INT NOT NULL COMMENT '审批流版本号;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_flow_code_version` (`flow_code`, `version`),
KEY `idx_biz_enabled` (`biz_type`, `enabled`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='ApprovalFlow:审批流配置';
sys_message_templateMessageTemplate
CREATE TABLE `sys_message_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 '模板名称;数据级别:普通',
`channel` VARCHAR(32) NOT NULL COMMENT '站内信/短信/微信小程序/企微/Push;数据级别:普通',
`receiver_rule` JSON NOT NULL COMMENT '接收人规则;数据级别:普通',
`content_template` TEXT NOT NULL COMMENT '模板内容;数据级别:普通',
`enabled` TINYINT NOT NULL COMMENT '是否启用;数据级别:普通',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_template_code` (`template_code`),
KEY `idx_channel_enabled` (`channel`, `enabled`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='MessageTemplate:消息模板与多端触达配置';
sys_audit_logAuditLog
CREATE TABLE `sys_audit_log` (
`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 '乐观锁版本号,写操作必须校验;数据级别:普通',
`operator_id` BIGINT NOT NULL COMMENT '操作人 ID;数据级别:普通',
`biz_type` VARCHAR(64) NOT NULL COMMENT '业务类型;数据级别:普通',
`biz_id` BIGINT NULL COMMENT '业务主键 ID;数据级别:普通',
`action_code` VARCHAR(64) NOT NULL COMMENT '操作编码;数据级别:普通',
`before_snapshot` JSON NULL COMMENT '变更前快照;数据级别:普通',
`after_snapshot` JSON NULL COMMENT '变更后快照;数据级别:普通',
`ip_address` VARCHAR(64) NULL COMMENT '操作 IP;数据级别:普通',
PRIMARY KEY (`id`),
KEY `idx_biz` (`biz_type`),
KEY `idx_operator_time` (`operator_id`),
KEY `idx_tenant_deleted` (`tenant_id`, `is_deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='AuditLog:全平台操作审计日志';
16 · 异常、指标、测试与初始化
保证模块上线后可运营、可追踪、可验收
测试要覆盖主流程、异常流、权限流、接口失败和数据一致性。异常状态
指标埋点
测试用例
| 编号 | 场景 | 前置 | 步骤 | 预期 | 优先级 |
|---|---|---|---|---|---|
| TC-001 | 线索从活动落地页进入 CRM | 活动已发布且表单字段完整 | 提交报名表单并查看 CRM 线索池 | 线索生成、渠道归因正确、自动分配顾问 | 高 |
| TC-004 | 报价优惠审批 | 折扣低于阈值 | 顾问提交报价 | 审批待办生成,通过后可创建合同 | 高 |
| TC-005 | 电子合同签署和收款 | 合同模板启用 | 生成合同、家长签署、支付 | 合同已签署、订单已收款、权益生效 | 高 |
| TC-006 | 合同监管备案失败重报 | 监管接口模拟字段失败 | 提交备案后修复字段重报 | 失败回执保留,重报成功 | 高 |
| TC-020 | 移动端兼容检查 | 准备家长小程序/H5、学员小程序、iPhone、iPad、安卓 App 环境 | 分别登录家长端和学员端执行核心学习、缴费、授权、审批流程 | 两个端的首页、权限、任务和通知互不混淆,关键操作可完成 | 中 |
| TC-021 | 跨校区数据隔离 | 创建两个校区和不同校区账号 | 校区 A 账号访问校区 B 客户 | 无法查看或仅显示授权范围数据 | 高 |
| TC-022 | 字段脱敏与明文查看 | 用户具备普通客户权限但无明文权限 | 打开客户详情并尝试查看手机号 | 手机号脱敏,查看明文需审批或授权留痕 | 高 |
| TC-023 | 按钮权限控制 | 顾问账号无退费审批权限 | 进入退费单详情 | 可查看授权数据但不可审批 | 高 |
| TC-025 | 批量导入失败明细 | 准备含错误字段的线索导入文件 | 导入文件并查看结果 | 展示成功数、失败数和错误明细下载 | 中 |
| TC-034 | 合同备案后字段不可逆 | 合同已备案成功 | 尝试修改监管关键字段 | 系统阻止直接修改并引导更正流程 | 高 |
| TC-FND-ENH-001 | 权限闭环交付闭环验收 | 组织树、角色授权、员工账号、权限诊断相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐权限变更的实时生效、缓存刷新、影响用户提示、审计日志和回滚策略。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 权限变更后用户重新进入页面、接口调用和导出均按新权限执行。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FND-ENH-002 | 配置闭环交付闭环验收 | 审批配置、消息模板、业务单据详情相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按要求审批流与消息模板按业务类型、组织范围、版本号和启停状态统一配置,业务单据引用当时版本。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 历史单据按原版本追溯,新单据按当前启用版本执行。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
| TC-FND-ENH-003 | 安全基础交付闭环验收 | 数据字典、审计日志、敏感操作审批相关基础数据、权限、审批流、消息模板和接口配置已初始化 | 按补齐逻辑删除、恢复审批、字段脱敏、临时授权和操作审计的公共规则。执行前端提交、后端处理、状态流转、异常重试和消息触达 | 所有可删除对象具备 is_deleted、deleted_at、deleted_by,并可审计。;同时产生审计日志、指标埋点和必要的补偿任务 | 高 |
上线初始化
| 初始化项 | 动作 | 数据 | 验收 |
|---|---|---|---|
| 组织与校区 | 导入集团、品牌、法人主体、区域、校区、部门、岗位 | 总部组织树、校区编码、法人关系、营业时间 | 组织层级正确且权限可继承 |
| 账号与权限 | 初始化总部、区域、校区、顾问、教务、教师、财务、家长、学员角色 | 账号、角色、菜单、按钮、字段、数据范围 | 测试账号可按角色访问指定页面 |
| 课程与价格 | 导入课程、班型、课包、课时、价格、适用校区 | 课程编码、班型、价格表、有效期、赠课规则 | 报价和合同可正确引用价格 |
| 优惠规则 | 初始化折扣、满减、优惠券、老带新、多科联报和组合包规则 | 规则编码、叠加互斥、适用课程、校区、有效期、审批阈值 | 报价单可正确计算并生成分摊明细 |
| 合同模板 | 配置多个统一电子合同模板 | 模板编号、适用课程、条款变量、签署人规则 | 合同生成内容完整且可签署 |
| 审批规则 | 配置优惠、退费、转课、导出、薪资、课消撤销审批流 | 审批对象、条件、节点、超时提醒 | 测试单据可进入正确审批链 |
| 财务科目 | 配置收款、预收、课消收入、退费、薪资、报销和内置科目映射 | 科目、辅助核算、校区、项目、部门 | 凭证可生成并写入测试账套 |
| 多账套会计 | 按校区初始化独立账套、会计期间、凭证字、科目和税务参数 | 账套编码、法人主体、校区、期间、税种、申报模板 | 校区账套可独立记账,总部可汇总和复核 |
| 权限闭环交付配置 | 初始化补齐权限变更的实时生效、缓存刷新、影响用户提示、审计日志和回滚策略。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 组织树、角色授权、员工账号、权限诊断 | 权限变更后用户重新进入页面、接口调用和导出均按新权限执行。 |
| 配置闭环交付配置 | 初始化要求审批流与消息模板按业务类型、组织范围、版本号和启停状态统一配置,业务单据引用当时版本。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 审批配置、消息模板、业务单据详情 | 历史单据按原版本追溯,新单据按当前启用版本执行。 |
| 安全基础交付配置 | 初始化补齐逻辑删除、恢复审批、字段脱敏、临时授权和操作审计的公共规则。所需的页面入口、功能开关、审批流、消息模板、状态枚举、异常原因和角色权限 | 数据字典、审计日志、敏感操作审批 | 所有可删除对象具备 is_deleted、deleted_at、deleted_by,并可审计。 |