# 产业政策宣传 — 功能需求 ## 1. 文档说明 | 项 | 说明 | | --- | --- | | 模块名称 | 产业政策宣传 | | 目标 | 对产业政策宣传内容进行录入、查询、维护与发布管理,支撑面向使用方的政策查阅与展示 | | 关联系统 | 业务后台 | | 修订依据 | 同目录 `产业政策宣传功能需求-草稿` | 本文档仅描述**功能需求与业务规则**,不涉及库表结构、接口路径、请求体字段命名及技术栈选型。 --- ## 2. 术语与状态 ### 2.1 政策层级(枚举,单选) - **国家级** - **省级** - **市级** - **县级** ### 2.2 发布状态(互斥,单值) | 取值 | 含义概要 | | --- | --- | | **未发布** | 新建草稿或已下架回流;对外不可见(与产品「前台展示」定义一致);在满足矩阵规则下可编辑、可删除、可发布 | | **已发布** | 对外可见或可检索(与产品定义一致);**不允许修改**;**不允许直接删除**,须先执行 **下架** | **下架回流:** 对已发布内容执行「下架」后,发布状态回到 **未发布**,允许再次编辑并在校验通过后 **再次发布**,**无须新建**一条记录。 --- ## 3. 功能范围 - 产业政策宣传的新增、修改、删除、分页列表查询、详情查看 - 政策文件(非结构化文档)与封面图的上传、替换、展示及删除时的存储联动清理 - 发布、下架及发布状态约束下的操作权限控制 - 面向使用方的业务错误与校验提示(见第 6 章) --- ## 4. 业务流程概览 下列顺序描述**典型闭环**;具体操作禁忌以 **第 5 节矩阵** 为准。 1. **新建**:录入必填项,按需上传政策文件与封面 → 初始为 **未发布**。 2. **维护**:在 **未发布** 下可反复修改字段与附件,直至内容定稿。 3. **发布**:在 **未发布** 且满足发布前置校验时执行「发布」→ **已发布**。 4. **对外展示**:**已发布** 内容按产品约定在前台或公开渠道展示;后台详情为只读维护视角。 5. **下架**:在 **已发布** 下执行「下架」→ 回到 **未发布**,结束对外展示。 6. **再编辑 / 再发布**:下架后可修改并再次发布(重复步骤 2~3)。 7. **删除**:仅在 **未发布** 下允许删除整条记录及关联文件;**已发布** 须先下架。 ```mermaid stateDiagram-v2 [*] --> 未发布: 新建 未发布 --> 已发布: 发布 已发布 --> 未发布: 下架 未发布 --> [*]: 删除 ``` --- ## 5. 详细功能需求 ### 5.1 新增产业政策宣传 | 字段 | 规则 | | --- | --- | | 政策名称 | **必填**;长度 **1~20** 个字符(字符计数规则与项目全局一致) | | 政策层级 | **必填**;单选,取值限定为第 **2.1** 节 | | 政策简介 | **选填**;若有内容,长度不超过 **50 字** | | 出台日期 | **必填**;格式 **YYYY-MM-DD**;不得为未来日期(若业务允许「待定」须单独评审,默认不允许未来日期) | | 政策描述 | **必填**;长度不超过 **50 字** | | 政策文件 | **选填**;通过**单个**附件上传;允许后缀:`pdf`、`md`、`doc`、`docx`、`xls`、`xlsx`、`ppt`、`pptx`;单文件 ≤ **30 MB** | | 封面 | **选填**;通过**单个**图片上传;允许后缀:`jpg`、`jpeg`、`png`(若产品要求支持 `webp` 等可追加);单文件 ≤ **10 MB** | **必填字段汇总:** 政策名称、政策层级、出台日期、政策描述。 **校验:** - 须校验文件类型(后缀与白名单 / 项目安全规范一致)与大小;超限或格式不符时给出**可区分**的错误提示。 - 若业务要求政策名称在适用范围(如租户 / 组织)内唯一,应在评审时单独约定并写入本节。 **初始状态:** 新建成功后,发布状态为 **未发布**。 --- ### 5.2 查询产业政策宣传列表 - **关键字:** 对「政策名称」或「政策简介」进行**模糊**匹配(二者为 **OR** 关系);关键字为空时不按关键字过滤。 - **政策层级:** **精确**匹配筛选;未选择时不按层级过滤。 - **发布状态(建议):** 列表宜支持按 **未发布 / 已发布** 筛选,便于运营人员区分待发布与已上线内容。 - **分页:** 支持分页;默认 **每页 20 条**,默认首页为第一页;单页条数上限与项目列表通用规范一致(若有)。 - **排序:** 默认按 **创建时间倒序**(最新在前);次要排序键与项目列表规范一致(若有)。 列表宜展示:政策名称、政策层级、政策简介(可截断)、出台日期、发布状态、封面缩略图(若有),以及当前状态下可执行的操作入口。 --- ### 5.3 修改产业政策宣传 - **状态约束:** **仅未发布**(含新建后未发布、**已从已发布下架回流**)允许修改。**已发布**状态下**不允许修改**(列表 / 详情不提供可提交的编辑入口,或仅为只读;任何保存类修改须被拒绝并给出明确业务原因,如「已发布内容请先下架后再编辑」)。 - **可修改项:** 政策名称、政策层级、政策简介、出台日期、政策描述、政策文件、封面。 - **保存约束:** **政策名称、政策层级、出台日期、政策描述** 始终保持必填;**政策简介、政策文件、封面** 仍为选填,但若用户上传或替换附件,仍须满足 **5.1** 中的格式与大小规则。 - **附件替换:** 替换政策文件或封面时,旧文件在保存成功后应从存储中清理,避免孤儿文件(与删除整条的清理策略一致)。 --- ### 5.4 删除产业政策宣传 - **允许删除:** 发布状态为 **未发布** 的记录。 - **不允许删除:** 发布状态为 **已发布** 的记录;须先执行「下架」(见 **5.6**)回到 **未发布** 后再删除。 - **删除后果:** 删除本条业务记录时,须**同步删除**关联存储中的政策文件与封面文件,避免存储残留。 --- ### 5.5 查看产业政策宣传详情 - **展示内容:** 政策名称、政策层级、政策简介、出台日期、政策描述、政策文件(下载或预览入口)、政策文件原始名称(与上传文件名一致,便于识别)、封面、当前 **发布状态**。 - **权限与交互:** - **未发布:** 具备权限的用户可进入编辑流程(见 **5.3**)。 - **已发布:** 详情为 **只读**(无保存类编辑);可提供「下架」操作入口。 - **在线预览:** 政策文件(如 PDF)、封面图片的在线预览若需要,可作为迭代项单列,不作为本期必选。 --- ### 5.6 发布与下架 #### 发布 - **前置条件:** - 当前发布状态为 **未发布**; - 必填字段均已满足 **5.1** 规则(含政策名称、政策层级、出台日期、政策描述)。 - **操作结果:** 发布状态变为 **已发布**;内容按产品约定对外可见或可检索。 - **失败处理:** 校验不通过时须给出明确原因(如必填项缺失、日期非法等),不变更发布状态。 #### 下架 - **前置条件:** 当前发布状态为 **已发布**。 - **操作结果:** - 发布状态变为 **未发布**; - 对外展示 / 检索可见性结束(与产品「前台是否展示」定义一致); - 允许用户再次修改(**5.3**)并在满足条件后 **再次发布**,**无须新建**记录。 - **说明:** 下架**不删除**业务记录与已上传文件,仅变更发布状态与对外可见性。 --- ## 6. 状态与操作矩阵(汇总) 便于评审与测试用例编写。 | 当前发布状态 | 查看 | 修改 | 发布 | 下架 | 删除 | | --- | --- | --- | --- | --- | --- | | 未发布 | ✓ | ✓ | ✓ | — | ✓ | | 已发布 | ✓ | ✗ | — | ✓ | ✗ | **补充:** 从「已发布」下架后,记录回到 **未发布**,操作权限按上表第一行执行。 --- ## 7. 错误与提示约定 - 业务与校验错误宜采用项目统一的 **`code`、`msg`、`data`** 结构呈现,便于前端统一处理(不涉及具体协议与路径设计)。 - 常见提示宜可区分,例如: - 必填项缺失、字段超长、日期格式或业务规则不符; - 文件格式不支持、文件大小超限、上传失败; - 已发布不可编辑、已发布不可删除须先下架; - 发布 / 下架操作失败原因。 --- ## 8. 非功能需求(建议) | 类别 | 建议 | | --- | --- | | 权限 | 菜单与按钮级权限:新增、编辑、删除、发布、下架、查看等是否分角色 | | 审计 | 关键操作记操作日志(新增、修改、发布、下架、删除) | | 安全 | 上传文件类型校验、存储路径不可预测、下载与预览鉴权 | | 性能 | 列表查询响应时间满足后台通用体验;大附件若后续需直传或分片再扩展 | | 双语 | 若前台面向藏汉双语用户,展示文案与后台字段标签须与项目 i18n 规范一致(具体范围在 UI 设计阶段确认) | --- ## 9. 修订说明(相对草稿) | 草稿问题 | 优化处理 | | --- | --- | | 查询条件写为「标准类型」 | 更正为 **政策层级**,与本模块字段一致 | | 第 6 条「产互」 | 更正为 **删除**,并与发布状态矩阵对齐 | | 发布 / 下架规则分散且不完整 | 增补 **§4 流程概览**、**§5.6 发布与下架**、**§6 操作矩阵**;明确已发布不可改、不可删 | | 政策简介、政策文件、封面是否必填未写清 | 与同类模块对齐:**简介、文件、封面选填**;**政策描述必填** | | 政策名称长度仅写「不超过 20 字」 | 明确为 **1~20** 字符 | | 第 6、7 条接口与技术栈 | 接口细节删除;错误结构仅保留 **§7** 中的呈现约定;技术栈移至技术方案文档 | | 删除时文件处理仅一句话 | 在 **§5.4** 明确须联动清理政策文件与封面;修改替换附件时亦须清理旧文件 |