docs: 更新项目文档和数据库设计,添加官网相关功能

This commit is contained in:
ylweng
2025-08-20 03:01:14 +08:00
parent 47c67ff704
commit fdc58aa3a2
58 changed files with 37635 additions and 28437 deletions

View File

@@ -1,30 +1,13 @@
{
"name": "xlxumu-api",
"version": "1.0.0",
"description": "锡林郭勒盟安格斯牛数字化管理平台API服务",
"author": "xlxumu team",
"description": "锡林郭勒盟智慧养殖数字化管理平台API服务",
"main": "server.js",
"scripts": {
"start": "node server.js",
"dev": "nodemon server.js",
"test": "jest"
"dev": "nodemon server.js"
},
"dependencies": {
"express": "^4.18.0",
"cors": "^2.8.5",
"helmet": "^6.0.0",
"dotenv": "^16.0.0",
"jsonwebtoken": "^9.0.0",
"bcryptjs": "^2.4.3",
"mysql2": "^3.0.0",
"sequelize": "^6.0.0",
"joi": "^17.0.0",
"winston": "^3.8.0",
"express-rate-limit": "^6.7.0"
},
"devDependencies": {
"nodemon": "^2.0.0",
"jest": "^29.0.0",
"supertest": "^6.3.0"
"express": "^4.18.2"
}
}
}

View File

@@ -27,10 +27,11 @@ app.use(limiter);
// 基础路由
app.get('/', (req, res) => {
res.json({
message: '欢迎使用锡林郭勒盟地区养殖产业平台API服务',
version: '1.0.0'
});
res.json({
message: '欢迎使用锡林郭勒盟地区智慧养殖产业平台API服务',
version: '1.0.0',
timestamp: new Date().toISOString()
});
});
app.get('/health', (req, res) => {

View File

@@ -914,9 +914,87 @@ CREATE TABLE government_reports (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='政府监管报告表';
```
## 官网相关表设计
### 1. 官网首页配置表 (website_homepage)
存储官网首页的配置信息。
```sql
CREATE TABLE website_homepage (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '配置ID',
section_name VARCHAR(50) NOT NULL COMMENT '板块名称',
content_type ENUM('banner', 'video', 'text', 'link') NOT NULL COMMENT '内容类型',
title VARCHAR(100) NOT NULL COMMENT '标题',
subtitle VARCHAR(200) COMMENT '副标题',
content TEXT COMMENT '内容',
media_url VARCHAR(255) COMMENT '媒体文件URL图片或视频',
link_url VARCHAR(255) COMMENT '链接地址',
sort_order INT DEFAULT 0 COMMENT '排序顺序',
is_active BOOLEAN DEFAULT TRUE COMMENT '是否启用',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_section (section_name),
INDEX idx_active (is_active),
INDEX idx_sort (sort_order)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='官网首页配置表';
```
### 2. 新闻资讯表 (news_articles)
存储新闻资讯信息。
```sql
CREATE TABLE news_articles (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '新闻ID',
title VARCHAR(150) NOT NULL COMMENT '标题',
subtitle VARCHAR(200) COMMENT '副标题',
content TEXT NOT NULL COMMENT '内容',
author VARCHAR(50) COMMENT '作者',
source VARCHAR(100) COMMENT '来源',
cover_image VARCHAR(255) COMMENT '封面图片URL',
is_featured BOOLEAN DEFAULT FALSE COMMENT '是否推荐',
status ENUM('draft', 'published', 'archived') DEFAULT 'draft' COMMENT '状态',
publish_date TIMESTAMP NULL COMMENT '发布时间',
category VARCHAR(50) COMMENT '分类',
views INT UNSIGNED DEFAULT 0 COMMENT '浏览量',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_status (status),
INDEX idx_category (category),
INDEX idx_publish_date (publish_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='新闻资讯表';
```
### 3. 政策公告表 (policy_announcements)
存储政策公告信息。
```sql
CREATE TABLE policy_announcements (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '公告ID',
title VARCHAR(150) NOT NULL COMMENT '标题',
content TEXT NOT NULL COMMENT '内容',
issuer VARCHAR(100) NOT NULL COMMENT '发布机构',
issue_date DATE NOT NULL COMMENT '发布日期',
effective_date DATE COMMENT '生效日期',
document_number VARCHAR(50) COMMENT '文号',
attachment_url VARCHAR(255) COMMENT '附件URL',
is_important BOOLEAN DEFAULT FALSE COMMENT '是否重要公告',
status ENUM('draft', 'published', 'expired') DEFAULT 'draft' COMMENT '状态',
views INT UNSIGNED DEFAULT 0 COMMENT '浏览量',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_issue_date (issue_date),
INDEX idx_status (status),
INDEX idx_issuer (issuer)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='政策公告表';
```
## 数据库关系图
```mermaid
```
erDiagram
users ||--o{ user_roles : has
roles ||--o{ user_roles : includes
@@ -946,6 +1024,8 @@ erDiagram
users ||--o{ claims : reviews
users ||--o{ government_reports : submits
users ||--o{ government_reports : approves
users ||--o{ news : authors
users ||--o{ messages : processes
users {
BIGINT id PK
@@ -1271,4 +1351,79 @@ erDiagram
TIMESTAMP created_at
TIMESTAMP updated_at
}
news {
BIGINT id PK
VARCHAR title
TEXT summary
LONGTEXT content
ENUM category
VARCHAR image_url
BIGINT author_id FK
INT views
ENUM status
TIMESTAMP published_at
TIMESTAMP created_at
TIMESTAMP updated_at
}
messages {
BIGINT id PK
VARCHAR name
VARCHAR email
VARCHAR phone
TEXT content
ENUM status
BIGINT processed_by FK
TIMESTAMP processed_at
TIMESTAMP created_at
TIMESTAMP updated_at
}
```
### 21. 新闻资讯表 (news)
存储官网新闻资讯信息。
```sql
CREATE TABLE news (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '新闻ID',
title VARCHAR(200) NOT NULL COMMENT '标题',
summary TEXT COMMENT '摘要',
content LONGTEXT NOT NULL COMMENT '内容',
category ENUM('policy', 'market', 'technology', 'general') NOT NULL COMMENT '分类: 政策解读/市场动态/技术前沿/综合',
image_url VARCHAR(255) COMMENT '封面图片URL',
author_id BIGINT UNSIGNED COMMENT '作者ID',
views INT DEFAULT 0 COMMENT '浏览量',
status ENUM('draft', 'published', 'archived') DEFAULT 'draft' COMMENT '状态: 草稿/已发布/已归档',
published_at TIMESTAMP NULL COMMENT '发布时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (author_id) REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_category (category),
INDEX idx_status (status),
INDEX idx_published_at (published_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='新闻资讯表';
```
### 22. 用户留言表 (messages)
存储用户在官网提交的留言信息。
```sql
CREATE TABLE messages (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY COMMENT '留言ID',
name VARCHAR(50) NOT NULL COMMENT '姓名',
email VARCHAR(100) NOT NULL COMMENT '邮箱',
phone VARCHAR(20) COMMENT '电话',
content TEXT NOT NULL COMMENT '留言内容',
status ENUM('pending', 'processed', 'archived') DEFAULT 'pending' COMMENT '状态: 待处理/已处理/已归档',
processed_by BIGINT UNSIGNED COMMENT '处理人ID',
processed_at TIMESTAMP NULL COMMENT '处理时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (processed_by) REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_status (status),
INDEX idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户留言表';
```