Files
hfb_sys/docs/announcement-feature.md
T
ymlandClaude Opus 4.6 28b6e326e8 新增公告中心功能
## 功能概述
在钱包旁边新增公告中心,用户可以查看平台通知、教程、规则和常见问题。

## 主要变更

### 后端
- 新增 announcement 模块(handler/service/repository)
- 新增 announcements 数据库表
- 添加公告相关 API 端点(用户端和管理端)
- 扩展 response 包,新增 NotFound 和 InternalServerError 方法

### 前端
- 新增公告功能模块(/features/announcement)
- 实现公告列表页和详情页
- 在顶部导航添加公告入口(钱包旁边)
- 支持按分类筛选(通知、教程、规则、FAQ)
- 支持置顶和重要标记显示

### 数据库
- 迁移文件:000005_add_announcements.sql
- 示例数据:000006_insert_sample_announcements.sql
- 包含6条示例公告

## 技术特点
- 遵循项目现有架构模式
- 响应式设计,支持移动端
- 自动统计浏览次数
- 支持富文本内容展示

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-06-05 20:40:20 +08:00

2.8 KiB
Raw Blame History

公告系统功能说明

功能概述

在钱包旁边新增了公告中心功能,用户可以查看平台通知、使用教程、规则说明和常见问题解答。

主要特性

前台功能(用户端)

  • 公告列表页 (/announcements)

    • 支持按分类筛选(全部、通知公告、使用教程、规则说明、常见问题)
    • 显示置顶和重要标记
    • 分页浏览
    • 点击查看详情
  • 公告详情页 (/announcements/:id)

    • 查看完整公告内容
    • 支持富文本显示
    • 自动统计浏览次数

后台功能(管理端)

  • 公告管理 CRUD(创建、编辑、删除)
  • 发布/归档公告
  • 设置优先级、置顶、重要标记
  • 按状态和分类筛选

数据库表结构

CREATE TABLE announcements (
  id BIGINT PRIMARY KEY AUTO_INCREMENT,
  title VARCHAR(255) NOT NULL,
  content TEXT NOT NULL,
  category VARCHAR(32) NOT NULL DEFAULT 'notice',
  priority INT NOT NULL DEFAULT 0,
  is_pinned TINYINT(1) NOT NULL DEFAULT 0,
  is_important TINYINT(1) NOT NULL DEFAULT 0,
  view_count INT NOT NULL DEFAULT 0,
  status VARCHAR(32) NOT NULL DEFAULT 'draft',
  published_at DATETIME NULL,
  created_by BIGINT UNSIGNED NULL,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);

API 端点

用户端

  • GET /api/announcements - 获取公告列表
  • GET /api/announcements/:id - 获取公告详情

管理端

  • GET /api/admin/announcements - 管理员获取公告列表
  • GET /api/admin/announcements/:id - 管理员获取公告详情
  • POST /api/admin/announcements - 创建公告
  • PUT /api/admin/announcements/:id - 更新公告
  • POST /api/admin/announcements/:id/publish - 发布公告
  • POST /api/admin/announcements/:id/archive - 归档公告
  • DELETE /api/admin/announcements/:id - 删除公告

权限要求

管理端需要以下权限:

  • announcement:view - 查看公告
  • announcement:manage - 管理公告(创建、编辑、发布、归档、删除)

前端路由

  • /announcements - 公告列表
  • /announcements/:id - 公告详情

导航入口

在顶部导航栏"钱包"旁边添加了"公告"入口,用户可以方便地访问公告中心。

数据迁移

  1. 运行 000005_add_announcements.sql 创建表结构
  2. 运行 000006_insert_sample_announcements.sql 插入示例数据

技术实现

后端

  • 使用 Go + Gin 框架
  • GORM 作为 ORM
  • 遵循模块化设计(handler -> service -> repository

前端

  • Vue 3 + TypeScript
  • Element Plus UI 组件库
  • 响应式设计,支持移动端

未来扩展

可以考虑添加:

  • 公告搜索功能
  • 用户收藏公告
  • 评论功能
  • 富文本编辑器(管理端)
  • 公告推送通知