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

102 lines
2.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 公告系统功能说明
## 功能概述
在钱包旁边新增了公告中心功能,用户可以查看平台通知、使用教程、规则说明和常见问题解答。
## 主要特性
### 前台功能(用户端)
- **公告列表页** (`/announcements`)
- 支持按分类筛选(全部、通知公告、使用教程、规则说明、常见问题)
- 显示置顶和重要标记
- 分页浏览
- 点击查看详情
- **公告详情页** (`/announcements/:id`)
- 查看完整公告内容
- 支持富文本显示
- 自动统计浏览次数
### 后台功能(管理端)
- 公告管理 CRUD(创建、编辑、删除)
- 发布/归档公告
- 设置优先级、置顶、重要标记
- 按状态和分类筛选
## 数据库表结构
```sql
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 组件库
- 响应式设计,支持移动端
## 未来扩展
可以考虑添加:
- 公告搜索功能
- 用户收藏公告
- 评论功能
- 富文本编辑器(管理端)
- 公告推送通知