西藏巴青项目

实战业务培训功能需求.md 14KB

实战业务培训 — 功能需求

1. 文档说明

说明
模块名称 实战业务培训(科技平台与服务)
目标 在业务后台维护实战类培训活动信息,控制发布与报名时段,展示报名进展,支撑牧业相关实战培训的发布、运营与台账管理
关联系统 业务后台;学员在线报名、签到、评价等若由其他模块承担,本模块侧重培训主档的维护、发布控制与报名状态展示
修订依据 同目录 实战业务培训-草稿.md、界面原型(实战业务培训.png

本文档仅描述功能需求与业务规则,不涉及库表结构、接口路径、请求体字段命名、HTTP 报文及技术栈选型。


2. 术语与枚举

2.1 实战培训(一条记录)

  • 表示一场可对外(或对内)开放报名的实战业务培训活动
  • 包含培训基本信息、报名时段、计划规模、可选封面与预期成果等。
  • 通过 发布状态(§2.2)控制是否对外生效;通过 培训状态 training_status(§2.3)反映当前报名阶段(由系统按时间与人数自动计算并入库,用户不可手工改状态)。

2.2 发布状态

状态 含义概要
未发布 新建「仅保存」、或下架回流后的状态;可编辑、可删除、可执行发布
已发布 已对外生效的培训;不可修改不可删除;可查看、在满足条件下可下架

发布日期:执行「发布」成功当日,记录为自然日 YYYY-MM-DD;未发布时列表展示「—」或空。下架后建议保留上次发布日期供审计(是否清空由产品确认,默认保留)。

2.3 培训状态(training_status,自动计算入库)

字典父编码 006006001 未开始、006002 报名中、006003 已报满、006004 已截止。

已发布前提下,按当前系统时间报名开始/截止时间计划人数实际报名人数判定;未发布时为 006001(未开始)。

判定优先级(满足即停):

优先级 条件 状态
1 发布状态为 未发布 006001 未开始
2 当前时间 报名截止时间 006004 已截止
3 当前时间 报名开始时间 006001 未开始
4 实际报名人数 计划人数 006003 已报满
5 报名开始时间 当前时间 报名截止时间 006002 报名中

实际报名人数:统计 biz_practical_training_memberenroll_status=0(已报名)的记录数,写入主表 actual_enrolled_count;小程序用户可在 报名中 执行报名/取消报名并触发状态刷新。

2.4 时间字段关系(全局约束)

以下比较均基于 YYYY-MM-DD HH:mm:ss(界面 datetime 选择器):

报名开始时间 < 报名截止时间 < 培训时间
  • 培训时间:培训举办时点(必填)。
  • 报名开始时间:开放报名起点(必填)。
  • 报名截止时间:开放报名终点(必填)。

保存、发布前均须满足上述链式关系;任一不满足则拒绝提交并提示。

2.5 列表筛选项与字段关系

筛选项 与记录字段关系
培训主题 与「培训主题」完全一致(精确匹配);空则不过滤
培训日期 按「培训时间」的日期部分筛选;区间为闭区间(起止日均计入)

3. 功能范围

本期实现:

能力 说明
培训列表 培训主题精确、培训日期区间筛选;分页;见 §5.2
新增培训 录入业务字段与封面;见 §5.1
修改培训 仅未发布可改;见 §5.3
查看详情 只读;见 §5.5
删除培训 仅未发布;见 §5.4
发布 / 下架 §5.6
报名状态展示 列表/详情按 §2.3 展示 training_status
小程序报名/取消 登录用户对 报名中 培训报名或取消,回写人数与状态

本期不实现(除非后续单独立项):

  • 排队候补
  • 培训签到、考核、证书、评价
  • 消息通知(短信/站内信提醒报名开始或报满)
  • 培训地点地图选点、直播链接自动校验
  • 批量导入培训、复制上一场培训

4. 业务流程概览

flowchart TD
    A[新增实战培训] --> B{保存方式}
    B -->|确定/仅保存| C[未发布]
    B -->|发布| D[已发布并记录发布日期]
    C --> E[列表查询/筛选]
    D --> E
    E --> F[查看详情]
    E --> G[修改]
    E --> H[删除]
    E --> I[发布]
    E --> J[下架]
    G --> C
    H --> E
    I --> D
    J --> C
    C --> I
    D --> J
    F --> E

典型运营顺序:

  1. 运营人员新增培训,填写主题、培训时间、简介、计划人数、地点、报名时段等,上传封面(可选)。
  2. 可先仅保存为未发布,经内部核对后再发布;或在新增表单直接发布
  3. 发布后对外生效,列表展示报名状态实际报名人数;到达报名开始后不可下架§5.6)。
  4. 报名截止或报满后,状态自动变为 已截止已报满;如需调整内容须下架(若仍允许)→ 修改 → 再发布。

5. 详细功能需求

5.1 新增实战培训

5.1.1 业务字段

字段 必填 规则摘要
培训主题 1~20 个字符(与草稿「限制 20 字」一致)
培训时间 datetime;打开表单时默认当前时刻(可改);须 晚于 报名截止时间
培训简介 多行文本;去除首尾空白后非空;长度上限宜 500 字(评审可调整)
计划人数 正整数;单位
培训地点 文本;长度宜 1~200
预期成果 多行文本;选填
报名开始时间 datetime;须 早于 报名截止时间且 早于 培训时间
报名截止时间 datetime;须 晚于 报名开始且 早于 培训时间
封面 单张图片;后缀 jpgjpegpng(可扩展 webp);单文件 ≤ 10 MB

5.1.2 保存方式(与原型一致)

操作 行为
确定 校验通过后保存,发布状态为未发布;不写入发布日期
发布(表单内,如橙色按钮) 校验通过后保存,发布状态为已发布发布日期为操作当日
取消 关闭表单,不保存

5.1.3 校验摘要

规则 说明
时间链 报名开始 < 报名截止 < 培训时间§2.4
计划人数 正整数,≥ 1
封面 类型、大小不符时拒绝上传或拒绝保存
必填 任一必填为空或仅空白时拒绝保存

5.2 查询实战培训列表

5.2.1 筛选

条件 规则
培训主题 选填;精确匹配;空则不过滤
培训日期 选填;日期区间(开始~结束,含起止日);按培训时间的日期部分匹配;开始日晚于结束日时提示修正

5.2.2 列表规则

  • 默认每页 20 条;默认排序:培训时间倒序(或 创建时间倒序,产品择一,全文一致)。
  • 工具栏:搜索重置新增

5.2.3 展示列(与原型一致)

培训主题、培训时间、计划人数(人)、培训地点、报名开始时间、报名截止时间、发布日期报名状态实际报名人数(人)、操作。

展示说明
发布日期 未发布显示「—」
报名状态 §2.3 中文标签;宜配颜色区分(报名中/已报满/已截止等)
实际报名人数 无报名模块时为 0 或「—」;不得超过计划人数展示异常时需产品约定

5.2.4 操作列(与 §6 一致)

发布状态 行内操作
未发布 查看、发布、编辑、删除
已发布 查看、下架(满足 §5.6 下架前置时显示或可点)

5.3 修改实战培训

要求
状态约束 未发布 可进入编辑并保存
已发布 不可修改;须先 下架(若允许)
可改范围 §5.1.1 全部字段(含替换封面)
校验 §5.1.3
编辑表单按钮 通常 确定(保持未发布)、取消;是否提供 发布 与新增一致

5.4 删除实战培训

要求
允许删除 未发布 且具备删除权限
不允许删除 已发布;须先下架
删除方式 建议 逻辑删除(与项目其他业务台账一致):列表不可见,数据可审计
确认 删除前二次确认;本期不提供批量删除(若实现须单独说明)
关联 删除时宜清理封面文件;已有关联报名数据时是否禁止删除,由报名模块评审(默认:有报名记录则禁止删除未发布培训

5.5 查看实战培训详情

要求
展示内容 §5.1.1 全部字段、封面预览、发布状态发布日期报名状态实际报名人数;宜含创建/修改审计信息
未发布 只读;可提供 编辑发布删除(与列表等价)
已发布 只读;可提供 下架(满足条件时);不提供编辑、删除
培训简介/预期成果 全文展示,保留换行

5.6 发布与下架

发布

说明
入口 列表「发布」、详情「发布」、新增表单「发布」
前置 未发布§5.1.3 校验通过
结果 已发布发布日期 = 操作当日(YYYY-MM-DD)
重复 已发布不可再次发布

下架

说明
入口 列表「下架」、详情「下架」
前置 已发布;且当前时间 早于 报名开始时间(「开始报名后不允许下架」
不满足前置 当前时间 报名开始时间时,不展示禁用下架,并提示原因(如「报名已开始,不可下架」)
结果 未发布;对外展示结束;记录与封面保留;可再编辑、再发布
已报满/已截止 若仍早于报名开始才可下架;报名开始后一律不可下架(与草稿一致)

6. 状态与操作矩阵(汇总)

已授权前提下:

当前发布状态 查看 新增 修改 发布 下架 删除
未发布
已发布(且当前时间<报名开始)
已发布(且当前时间≥报名开始)
列表/global

下架成功后按 未发布 行权限处理。


7. 报名状态计算示例(自查)

发布 当前时间 vs 报名时段 实际报名 vs 计划 报名状态
未发布 任意 任意 未开始
已发布 < 报名开始 任意 未开始
已发布 在 [开始, 截止] 内 < 计划 报名中
已发布 在 [开始, 截止] 内 ≥ 计划 已报满
已发布 > 报名截止 任意 已截止

8. 错误与提示约定

面向使用方的提示宜语义明确,例如:

场景 提示方向(示例)
必填项缺失 标明字段(如「请填写培训简介」)
培训主题超长 「培训主题不能超过 20 字」
时间链不满足 「报名截止时间须早于培训时间」等分项提示
计划人数非法 「计划人数须为正整数」
封面类型/大小不符 「仅支持 jpg、png 格式」「封面不能超过 10MB」
已发布不可编辑/删除 「已发布培训须先下架后再修改」
报名开始后不可下架 「报名已开始,不允许下架」
删除确认取消 不执行删除

本文档不约定 HTTP 状态码、错误码字段名及接口报文结构。


9. 非功能需求(建议)

类别 建议
权限 查询、新增、修改、删除、发布、下架宜分按钮权限
审计 新增、修改、删除、发布、下架记操作日志
性能 列表分页;报名状态宜服务端计算,避免前后端口径不一致
封面 上传鉴权、访问控制;替换时清理旧文件
双语 界面 i18n(汉语 + 藏文,若适用)

10. 相对草稿的修订说明

草稿内容 处理
技术栈、MySQL、RuoYi 已移除
codemsgdata 已移除
报名状态四条规则 整理为 §2.3 含优先级与未发布特例
下架与「开始报名后」 明确为 当前时间 ≥ 报名开始 不可下架(§5.6
操作列 发布前/后 汇总为 §5.2.4、§6
仅罗列字段 补充流程、矩阵、时间链、删除策略、范围边界
实际报名人数来源 说明本模块展示、报名功能另模块(§2.3

11. 需求追溯

能力 章节
新增与字段校验 §5.1
列表筛选 §5.2
修改 / 删除 §5.3、§5.4
查看 §5.5
发布 / 下架 §5.6
报名状态 §2.3、§7
操作流程 §4