12 KiB
12 KiB
租户域模板管理模块优化方案清单
1. 适用范围
- 本清单仅针对租户域模板管理模块。
- 不包含平台域统一模板治理、跨租户模板审计、平台级模板库等能力。
- 目标是把租户域模板管理从“能上传、能发布”升级为“可治理、可检索、可追踪、可联动”。
2. 优化目标
- 提升模板管理页面的信息架构与使用效率。
- 提升模板生命周期治理能力,包括草稿、发布、停用、归档、回滚。
- 提升模板与会议、审核、结算等业务场景的联动准确性。
- 提升模板下载留痕、权限控制、时效控制和风险控制能力。
- 提升后端接口一致性、可扩展性和并发安全。
- 提升数据库模型的多租户适配性与查询性能。
3. 现状问题归纳
3.1 前端页面布局
- 一个页面同时承载模板类型开关、模板列表、流程绑定、版本回滚、版本差异、上传建版,信息密度过高。
- 缺少统一筛选区,用户只能翻表找模板。
- 创建模板时需要手填
projectId、meetingId、objectKey,使用门槛高。 - 模板列表缺少关键治理字段展示,例如生效时间、水印开关、下载限制、最近更新时间、维护人。
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 查询接口
- 模板列表接口增加标准分页与筛选参数:
templateNametemplateTypestatusscopeTypebizScenewatermarkEnabledeffectiveStatuspageNopageSize
- 下载日志接口增加标准分页与筛选参数,并返回关联名称字段,不再依赖前端二次查用户和模板列表补名。
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_namefile_sizecontent_typechecksum
4.5.3 template_download_log
- 建议新增字段:
download_typewatermark_textproject_idmeeting_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全局唯一导致多租户扩展受限。
4.5.5 template_flow_link
- 建议保留:
(tenant_id, scene_code)唯一
- 建议增加:
- 绑定来源
- 绑定说明
- 最近绑定人
- 最近绑定时间
4.6 权限与风控优化
- 继续保留租户域权限拆分:
- 查询
- 创建
- 发布
- 停用
- 归档
- 回滚
- 下载
- 流程绑定
- 补充细粒度操作审计:
- 模板创建
- 版本新增
- 发布
- 回滚
- 流程绑定
- 普通下载
- 水印下载
- 对高风险操作输出审计原因字段:
- 回滚原因
- 归档原因
- 水印下载说明
4.7 交互与体验优化
- 统一中文文案,避免技术字段直接暴露给业务用户。
- 统一状态文案与颜色:
- 草稿
- 已发布
- 已停用
- 已归档
- 对空数据场景增加引导:
- 暂无模板,请先创建
- 暂无下载记录
- 对失败场景返回可理解提示:
- 模板已归档,不能新增版本
- 模板未在生效期内,不能绑定流程
- 当前小时下载次数已达上限
5. 分期实施建议
5.1 P0:必须先做
- 模板列表筛选与标准分页
- 下载日志标准分页与筛选
- 创建模板交互优化,取消手填
objectKey - 流程绑定强校验
- 模板创建/新增版本并发安全修复
- 发布/停用/归档/回滚状态机校验补齐
5.2 P1:强烈建议做
- 模板详情页与版本历史重构
- 有效期控制落地
- 水印下载真实落地
- 下载限流落地
- 下载日志返回关联名称,去掉前端补查
- 复制模板能力
5.3 P2:体验增强
- 模板预览
- 模板变更摘要对比优化
- 关联业务影响提示
- 模板清单导出
- 模板治理仪表盘
6. 验收标准建议
- 用户可以在 3 步内完成模板创建,不需要手填对象存储路径。
- 用户可以在列表中快速筛出“某场景、某状态、某范围”的模板。
- 流程绑定后,业务读取到的模板与绑定配置一致。
- 并发建版不会出现版本号冲突或串模板。
- 下载日志可分页、可筛选、可定位到具体用户与版本。
- 有效期、水印、下载限流配置能被真实执行,而不是只存库不生效。
7. 推荐实施顺序
- 先改后端查询、状态机、并发安全、日志接口。
- 再改前端页面结构与创建流程。
- 再补流程联动闭环、水印、限流、有效期。
- 最后补预览、复制、导出、治理报表等增强能力。