writeOff/docs/租户域模板管理模块优化方案清单.md
haomingming 815aa04fe8 first
2026-05-20 18:21:39 +08:00

12 KiB
Raw Permalink Blame History

租户域模板管理模块优化方案清单

1. 适用范围

  • 本清单仅针对租户域模板管理模块
  • 不包含平台域统一模板治理、跨租户模板审计、平台级模板库等能力。
  • 目标是把租户域模板管理从“能上传、能发布”升级为“可治理、可检索、可追踪、可联动”。

2. 优化目标

  • 提升模板管理页面的信息架构与使用效率。
  • 提升模板生命周期治理能力,包括草稿、发布、停用、归档、回滚。
  • 提升模板与会议、审核、结算等业务场景的联动准确性。
  • 提升模板下载留痕、权限控制、时效控制和风险控制能力。
  • 提升后端接口一致性、可扩展性和并发安全。
  • 提升数据库模型的多租户适配性与查询性能。

3. 现状问题归纳

3.1 前端页面布局

  • 一个页面同时承载模板类型开关、模板列表、流程绑定、版本回滚、版本差异、上传建版,信息密度过高。
  • 缺少统一筛选区,用户只能翻表找模板。
  • 创建模板时需要手填 projectIdmeetingIdobjectKey,使用门槛高。
  • 模板列表缺少关键治理字段展示,例如生效时间、水印开关、下载限制、最近更新时间、维护人。

3.2 显示内容

  • 当前列表更偏“技术字段展示”,不够业务化。
  • 版本信息展示不完整,无法快速判断“当前发布版”和“历史草稿版”差异。
  • 下载日志页展示维度少,问题排查效率低。

3.3 用户操作

  • 缺少按业务对象选择模板适用范围的交互。
  • 流程绑定操作没有足够的场景提示和影响提示。
  • 水印下载、普通下载、发布、回滚等高风险操作缺少确认与说明。
  • 缺少预览、复制模板、批量筛选、快速查看版本历史等高频能力。

3.4 后端逻辑

  • 模板流程绑定与业务消费链路没有完全闭环。
  • 模板创建和新增版本存在并发安全风险。
  • 有效期、水印、下载限流等字段虽然存在,但未完整落地到业务逻辑。
  • 下载日志缺少标准分页、标准筛选和关联名称字段返回。

3.5 数据库设计

  • 模板类型配置表的主键设计与多租户语义不完全一致。
  • 日志和版本表索引偏弱,后续数据量上来后容易退化。
  • 模板主表、版本表、流程绑定表的约束还不够完整。

4. 租户域模板管理优化方案

4.1 前端页面布局优化

4.1.1 页面结构重构

  • 将当前单页改为“三级结构”:
    • 一级:模板管理首页
    • 二级:模板详情页
    • 二级:模板下载日志页
  • 模板管理首页仅保留:
    • 查询筛选区
    • 模板列表区
    • 快捷操作区
  • 版本历史、版本差异、流程绑定改为详情抽屉或详情页的子区块,不与主列表混排。

4.1.2 首页布局建议

  • 顶部操作栏:
    • 新建模板
    • 刷新
    • 导出模板清单
  • 查询筛选区:
    • 模板名称
    • 模板类型
    • 模板状态
    • 适用范围
    • 业务场景
    • 是否启用水印
    • 生效状态
    • 最近更新时间范围
  • 列表区:
    • 默认按“最近更新时间倒序”
    • 支持分页
    • 支持空态提示

4.1.3 详情页布局建议

  • 基本信息卡片:
    • 模板名称、类型、状态、业务场景、适用范围、生效时间、水印、下载限制
  • 当前版本卡片:
    • 当前版本号、对象文件、变更说明、创建时间、创建人
  • 版本历史区:
    • 版本号、状态、是否生效、变更说明、回滚原因、创建时间
  • 流程联动区:
    • 当前已绑定场景
    • 是否允许绑定
    • 绑定影响说明
  • 下载记录区:
    • 最近下载记录摘要

4.2 显示内容优化

4.2.1 模板列表字段建议

  • 模板名称
  • 模板类型
  • 业务场景
  • 适用范围
  • 关联项目/会议名称
  • 当前版本号
  • 当前状态
  • 生效开始时间
  • 生效结束时间
  • 水印开关
  • 下载限流
  • 最近更新时间
  • 更新人

4.2.2 版本列表字段建议

  • 版本号
  • 版本状态
  • 是否当前生效
  • 文件名
  • 对象存储路径
  • 变更说明
  • 回滚原因
  • 创建人
  • 创建时间

4.2.3 下载日志字段建议

  • 模板名称
  • 模板版本号
  • 下载人姓名
  • 下载人账号/手机号
  • 下载时间
  • IP
  • User-Agent
  • 下载方式
    • 普通下载
    • 水印下载
  • 水印文案
  • 关联项目/会议

4.3 用户操作优化

4.3.1 新建模板

  • 取消手填 objectKey 为主的方式,改为:
    • 选择模板类型
    • 选择业务场景
    • 选择适用范围
    • 若为项目级,选择项目
    • 若为会议级,选择会议
    • 上传文件
    • 填写变更说明
    • 配置生效时间、水印、下载限流
  • 上传成功后由系统自动回填对象存储路径。

4.3.2 模板列表操作

  • 为每条模板提供分层操作:
    • 查看详情
    • 新增版本
    • 发布
    • 停用
    • 归档
    • 下载
    • 水印下载
    • 查看版本差异
    • 查看下载记录
    • 复制模板
  • 对危险操作增加二次确认:
    • 发布
    • 回滚
    • 停用
    • 归档

4.3.3 版本管理

  • 新增版本时默认继承模板基础配置,不重复填写范围与场景。
  • 增加“与当前发布版对比”快捷入口。
  • 回滚时必须填写回滚原因。
  • 已归档模板不可新增版本。

4.3.4 流程联动

  • 流程绑定独立为一个区块或独立弹窗。
  • 绑定时只允许选择:
    • 已发布
    • 未停用
    • 场景一致
    • 当前生效 的模板。
  • 显示绑定影响提示,例如:
    • 绑定后将用于会议推荐
    • 绑定后将用于审核通知
    • 绑定后将用于结算材料

4.3.5 下载日志

  • 支持按以下条件筛选:
    • 模板名称
    • 模板 ID
    • 下载人
    • 版本号
    • 下载时间范围
    • IP
    • 下载方式
  • 支持跳转查看“该模板全部下载记录”。

4.4 后端逻辑优化

4.4.1 查询接口

  • 模板列表接口增加标准分页与筛选参数:
    • templateName
    • templateType
    • status
    • scopeType
    • bizScene
    • watermarkEnabled
    • effectiveStatus
    • pageNo
    • pageSize
  • 下载日志接口增加标准分页与筛选参数,并返回关联名称字段,不再依赖前端二次查用户和模板列表补名。

4.4.2 模板生命周期校验

  • 发布校验:
    • 当前版本文件存在
    • 模板类型已启用
    • 若配置有效期,开始时间不能晚于结束时间
  • 停用校验:
    • 若被流程联动使用,需提示影响
  • 归档校验:
    • 已归档模板不可再发布、不可新增版本
  • 回滚校验:
    • 只能回滚到本模板已有版本
    • 回滚原因必填

4.4.3 流程联动闭环

  • 流程绑定时增加强校验:
    • sceneCode 必须与模板 bizScene 一致
    • 模板必须为 PUBLISHED
    • 模板必须在生效期内
  • 业务消费链路按联动关系读模板,不允许页面配置和实际业务读取脱节。
  • 会议推荐、审核通知、结算模板获取逻辑统一经过模板服务,不各自散落实现。

4.4.4 下载能力治理

  • 普通下载与水印下载分开记录下载类型。
  • 若模板启用下载限流,则下载前校验单位时间内下载次数。
  • 若模板配置有效期,则过期后禁止下载。
  • 若模板启用水印下载,则需要真正生成带水印文件或带水印预签名资源,而不是只回传文案。

4.4.5 并发与事务安全

  • 创建模板后获取主键不要再用 MAX(id),改为标准主键回填。
  • 新增版本号不要再用 MAX(version_no)+1 裸算,改为:
    • 悲观锁
    • 或唯一约束重试
    • 或独立版本号分配策略
  • 发布、回滚、建版操作保持事务一致性,避免主表状态和版本表状态不一致。

4.4.6 可测试性

  • 增加自动化测试覆盖:
    • 创建模板
    • 并发新增版本
    • 发布/停用/归档/回滚
    • 流程绑定场景校验
    • 有效期校验
    • 下载限流
    • 日志分页与筛选

4.5 数据库设计优化

4.5.1 template

  • 建议补充或强化约束:
    • tenant_id + template_name + scope_type + scope_id + biz_scene 可考虑唯一性策略
    • 状态字段增加明确枚举约束
  • 建议补充索引:
    • (tenant_id, status, updated_at)
    • (tenant_id, template_type, status)
    • (tenant_id, biz_scene, status)
    • (tenant_id, scope_type, scope_id)

4.5.2 template_version

  • 建议保留唯一约束:
    • (tenant_id, template_id, version_no)
  • 建议新增索引:
    • (tenant_id, template_id, is_effective)
    • (tenant_id, template_id, created_at)
  • 建议增加字段:
    • file_name
    • file_size
    • content_type
    • checksum

4.5.3 template_download_log

  • 建议新增字段:
    • download_type
    • watermark_text
    • project_id
    • meeting_id
  • 建议新增索引:
    • (tenant_id, template_id, downloaded_at)
    • (tenant_id, user_id, downloaded_at)
    • (tenant_id, downloaded_at)

4.5.4 template_type_option

  • 现有主键建议调整为适合多租户的联合唯一约束:
    • 主键独立 id
    • 唯一键 (tenant_id, type_code)
  • 避免 type_code 全局唯一导致多租户扩展受限。
  • 建议保留:
    • (tenant_id, scene_code) 唯一
  • 建议增加:
    • 绑定来源
    • 绑定说明
    • 最近绑定人
    • 最近绑定时间

4.6 权限与风控优化

  • 继续保留租户域权限拆分:
    • 查询
    • 创建
    • 发布
    • 停用
    • 归档
    • 回滚
    • 下载
    • 流程绑定
  • 补充细粒度操作审计:
    • 模板创建
    • 版本新增
    • 发布
    • 回滚
    • 流程绑定
    • 普通下载
    • 水印下载
  • 对高风险操作输出审计原因字段:
    • 回滚原因
    • 归档原因
    • 水印下载说明

4.7 交互与体验优化

  • 统一中文文案,避免技术字段直接暴露给业务用户。
  • 统一状态文案与颜色:
    • 草稿
    • 已发布
    • 已停用
    • 已归档
  • 对空数据场景增加引导:
    • 暂无模板,请先创建
    • 暂无下载记录
  • 对失败场景返回可理解提示:
    • 模板已归档,不能新增版本
    • 模板未在生效期内,不能绑定流程
    • 当前小时下载次数已达上限

5. 分期实施建议

5.1 P0必须先做

  • 模板列表筛选与标准分页
  • 下载日志标准分页与筛选
  • 创建模板交互优化,取消手填 objectKey
  • 流程绑定强校验
  • 模板创建/新增版本并发安全修复
  • 发布/停用/归档/回滚状态机校验补齐

5.2 P1强烈建议做

  • 模板详情页与版本历史重构
  • 有效期控制落地
  • 水印下载真实落地
  • 下载限流落地
  • 下载日志返回关联名称,去掉前端补查
  • 复制模板能力

5.3 P2体验增强

  • 模板预览
  • 模板变更摘要对比优化
  • 关联业务影响提示
  • 模板清单导出
  • 模板治理仪表盘

6. 验收标准建议

  • 用户可以在 3 步内完成模板创建,不需要手填对象存储路径。
  • 用户可以在列表中快速筛出“某场景、某状态、某范围”的模板。
  • 流程绑定后,业务读取到的模板与绑定配置一致。
  • 并发建版不会出现版本号冲突或串模板。
  • 下载日志可分页、可筛选、可定位到具体用户与版本。
  • 有效期、水印、下载限流配置能被真实执行,而不是只存库不生效。

7. 推荐实施顺序

  1. 先改后端查询、状态机、并发安全、日志接口。
  2. 再改前端页面结构与创建流程。
  3. 再补流程联动闭环、水印、限流、有效期。
  4. 最后补预览、复制、导出、治理报表等增强能力。