# 首页内容管理指南

本文档说明如何管理小程序首页的Banner和热门服务。

## 功能概述

系统支持动态配置首页的以下内容:
- **Banner轮播图**: 首页顶部的轮播广告图
- **热门服务**: 首页展示的服务快捷入口

## 数据库表结构

### banners表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INT | 主键 |
| image_url | VARCHAR(500) | Banner图片URL |
| link_url | VARCHAR(500) | 点击跳转链接(可选) |
| sort_order | INT | 排序顺序(数字越小越靠前) |
| is_active | BOOLEAN | 是否启用 |

### hot_services表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | INT | 主键 |
| name_zh | VARCHAR(100) | 服务名称(中文) |
| name_en | VARCHAR(100) | 服务名称(英文) |
| name_pt | VARCHAR(100) | 服务名称(葡萄牙语) |
| image_url | VARCHAR(500) | 服务图片URL(可选) |
| link_url | VARCHAR(500) | 点击跳转链接(可选) |
| sort_order | INT | 排序顺序(数字越小越靠前) |
| is_active | BOOLEAN | 是否启用 |

## API接口

### 公共接口(小程序使用)

#### 获取Banner列表
```
GET /api/v1/home/banners
```
返回所有启用的Banner,按sort_order排序。

#### 获取热门服务列表
```
GET /api/v1/home/hot-services
```
返回所有启用的热门服务,按sort_order排序。
支持多语言,通过`Accept-Language`请求头指定语言(zh/en/pt)。

### 管理后台接口(需要管理员权限)

#### Banner管理
```
GET    /api/v1/admin/home/banners          # 获取所有Banner
POST   /api/v1/admin/home/banners          # 创建Banner
PUT    /api/v1/admin/home/banners/:id      # 更新Banner
DELETE /api/v1/admin/home/banners/:id      # 删除Banner
```

#### 热门服务管理
```
GET    /api/v1/admin/home/hot-services     # 获取所有热门服务
POST   /api/v1/admin/home/hot-services     # 创建热门服务
PUT    /api/v1/admin/home/hot-services/:id # 更新热门服务
DELETE /api/v1/admin/home/hot-services/:id # 删除热门服务
```

## 使用示例

### 创建Banner
```bash
curl -X POST http://localhost:3000/api/v1/admin/home/banners \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "/uploads/banner1.jpg",
    "link_url": "/pages/promotion/detail",
    "sort_order": 1,
    "is_active": true
  }'
```

### 创建热门服务
```bash
curl -X POST http://localhost:3000/api/v1/admin/home/hot-services \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name_zh": "国内/外机票",
    "name_en": "Domestic/International Tickets",
    "name_pt": "Passagens Domésticas/Internacionais",
    "image_url": "/uploads/service-flight.jpg",
    "sort_order": 1,
    "is_active": true
  }'
```

## 默认数据

系统已预置4个热门服务:
1. 国内/外机票 (Domestic/International Tickets / Passagens Domésticas/Internacionais)
2. 全球酒店 (Global Hotels / Hotéis Globais)
3. 机场贵宾室 (VIP Lounge / Sala VIP)
4. 特殊旅客定制 (Custom Service / Serviço Personalizado)

## 注意事项

1. **图片上传**: 图片需要先通过上传接口上传,获得URL后再配置
2. **排序**: sort_order数字越小,显示越靠前
3. **启用状态**: 只有is_active=true的内容才会在小程序中显示
4. **多语言**: 热门服务支持三种语言,小程序会根据用户语言设置自动显示对应语言
5. **图片URL**: 可以是相对路径(如/uploads/xxx.jpg)或完整URL

## 管理后台UI

管理后台的Banner和热门服务管理界面可以在配置页面中添加,或者创建独立的管理页面。

建议在管理后台的侧边栏添加"首页管理"菜单项,包含:
- Banner管理
- 热门服务管理

## 小程序前端

小程序首页会自动从API加载Banner和热门服务数据:
- Banner会显示在页面顶部的轮播图中
- 热门服务会显示在"热门服务"区域
- 如果没有配置图片,会显示占位符

## 故障排查

### Banner不显示
1. 检查数据库中是否有is_active=true的Banner记录
2. 检查image_url是否正确
3. 检查图片文件是否存在于uploads目录
4. 检查小程序控制台是否有错误信息

### 热门服务不显示
1. 检查数据库中是否有is_active=true的记录
2. 检查API返回的数据格式是否正确
3. 检查小程序的语言设置

### 图片加载失败
1. 确认后端服务器正在运行
2. 确认图片URL可以访问
3. 检查CSP安全策略是否允许加载图片
4. 在微信开发者工具中关闭"不校验合法域名"选项
