6.8 公告与链接管理
概述
内容域还有两个租户级模块:通知公告(goframe_notice)与友情链接(goframe_link)。公告带状态开关,友链无状态列——两者均为标准 CRUD 的典型代表。
通知公告(goframe_notice,/api/notice)
text
七件套 + PUT /api/notice/status(sys:notice:status)
sys:notice:{page|list|detail|add|update|delete|batchDelete|status}| 特征 | 说明 |
|---|---|
| status | 1-正常 2-禁用(注释枚举,字典驱动 {field}Text) |
| 租户级 | 各租户独立公告 |
| 文件字段 | 支持附件(FileFields 模式) |
| 富文本 | 内容字段可按 ContentFields 声明(如启用富文本编辑) |
友情链接(goframe_link,/api/link)
text
七件套(无 status 接口)
sys:link:{page|list|detail|add|update|delete|batchDelete}| 特征 | 说明 |
|---|---|
| 无 status 列 | 表结构无状态字段,不声明 Status 接口 |
| 租户级 | 各租户独立友链 |
| URL 字段 | website/site/url 等列不作模糊筛选列(生成器 isUrlField 判定) |
标准 CRUD 模式的教学价值
两个模块都是"最小差异"的标准形态——新模块开发可直接对照:
text
差异只体现在:
* SerializeMaps(status → notice_status)
* LikeFields/EqFields 筛选声明
* FileFields/ContentFields(如有文件/富文本列)
* 有无 Status 接口(看表有无 status 列)
其余七件套结构与 example 模块完全一致(见第 3 章)。管理建议
- 公告状态用于"草稿/下架"语义(禁用后前端不展示)
- 友链删除无守卫(软删可恢复);批量删除支持勾选操作
- 两者均为租户级——平台统一公告场景需在租户维度分别维护(或扩展平台共享行 tenant_id=0,需业务确认)