# xlxumu 畜牧管理系统 API 文档

## 概述

本文档描述了 xlxumu 畜牧管理系统的 RESTful API 接口。系统提供用户认证、牛只管理、财务管理、交易管理、商城管理和政府监管等功能。

## 基础信息

- **基础URL**: `http://localhost:8889/api/v1`
- **认证方式**: JWT Token
- **数据格式**: JSON
- **字符编码**: UTF-8

## 通用响应格式

### 成功响应
```json
{
  "success": true,
  "data": {
    // 具体数据内容
  },
  "message": "操作成功"
}
```

### 错误响应
```json
{
  "success": false,
  "message": "错误描述",
  "code": "ERROR_CODE"
}
```

## 认证接口 (/auth)

### 用户注册
- **URL**: `POST /auth/register`
- **描述**: 用户注册
- **请求体**:
```json
{
  "username": "string",
  "email": "string",
  "phone": "string",
  "password": "string",
  "real_name": "string",
  "user_type": "farmer|government|bank|insurance"
}
```
- **响应**:
```json
{
  "success": true,
  "data": {
    "user": {
      "id": 1,
      "username": "testuser",
      "email": "test@example.com",
      "user_type": "farmer"
    },
    "token": "jwt_token_string"
  }
}
```

### 用户登录
- **URL**: `POST /auth/login`
- **描述**: 用户登录
- **请求体**:
```json
{
  "username": "string",
  "password": "string"
}
```

### 刷新Token
- **URL**: `POST /auth/refresh`
- **描述**: 刷新访问令牌
- **请求头**: `Authorization: Bearer <token>`

### 用户登出
- **URL**: `POST /auth/logout`
- **描述**: 用户登出
- **请求头**: `Authorization: Bearer <token>`

## 用户管理接口 (/users)

### 获取用户信息
- **URL**: `GET /users/profile`
- **描述**: 获取当前用户信息
- **请求头**: `Authorization: Bearer <token>`

### 更新用户信息
- **URL**: `PUT /users/profile`
- **描述**: 更新用户信息
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "real_name": "string",
  "phone": "string",
  "avatar_url": "string"
}
```

### 修改密码
- **URL**: `PUT /users/password`
- **描述**: 修改用户密码
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "old_password": "string",
  "new_password": "string"
}
```

## 牛只管理接口 (/cattle)

### 获取牛只列表
- **URL**: `GET /cattle`
- **描述**: 获取牛只列表
- **请求头**: `Authorization: Bearer <token>`
- **查询参数**:
  - `page`: 页码 (默认: 1)
  - `limit`: 每页数量 (默认: 10)
  - `breed`: 品种筛选
  - `status`: 状态筛选
  - `health_status`: 健康状态筛选

### 添加牛只
- **URL**: `POST /cattle`
- **描述**: 添加新牛只
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "ear_tag": "string",
  "name": "string",
  "breed": "string",
  "gender": "male|female",
  "birth_date": "YYYY-MM-DD",
  "color": "string",
  "weight": 500.5,
  "farm_location": "string",
  "notes": "string"
}
```

### 获取牛只详情
- **URL**: `GET /cattle/:id`
- **描述**: 获取指定牛只详情
- **请求头**: `Authorization: Bearer <token>`

### 更新牛只信息
- **URL**: `PUT /cattle/:id`
- **描述**: 更新牛只信息
- **请求头**: `Authorization: Bearer <token>`

### 删除牛只
- **URL**: `DELETE /cattle/:id`
- **描述**: 删除牛只记录
- **请求头**: `Authorization: Bearer <token>`

### 牛只统计
- **URL**: `GET /cattle/statistics`
- **描述**: 获取牛只统计信息
- **请求头**: `Authorization: Bearer <token>`

## 财务管理接口 (/finance)

### 获取财务记录
- **URL**: `GET /finance/records`
- **描述**: 获取财务记录列表
- **请求头**: `Authorization: Bearer <token>`
- **查询参数**:
  - `page`: 页码
  - `limit`: 每页数量
  - `type`: 类型 (income|expense)
  - `category`: 分类
  - `start_date`: 开始日期
  - `end_date`: 结束日期

### 添加财务记录
- **URL**: `POST /finance/records`
- **描述**: 添加财务记录
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "type": "income|expense",
  "category": "string",
  "amount": 1000.00,
  "description": "string",
  "record_date": "YYYY-MM-DD"
}
```

### 财务统计
- **URL**: `GET /finance/statistics`
- **描述**: 获取财务统计信息
- **请求头**: `Authorization: Bearer <token>`
- **查询参数**:
  - `period`: 统计周期 (month|quarter|year)

## 交易管理接口 (/trading)

### 获取交易列表
- **URL**: `GET /trading/transactions`
- **描述**: 获取交易记录列表
- **请求头**: `Authorization: Bearer <token>`
- **查询参数**:
  - `page`: 页码
  - `limit`: 每页数量
  - `status`: 交易状态
  - `product_type`: 产品类型

### 创建交易
- **URL**: `POST /trading/transactions`
- **描述**: 创建新交易
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "seller_id": 1,
  "product_type": "cattle",
  "product_id": 1,
  "quantity": 10,
  "unit_price": 8500.00,
  "notes": "string"
}
```

### 获取交易详情
- **URL**: `GET /trading/transactions/:id`
- **描述**: 获取交易详情
- **请求头**: `Authorization: Bearer <token>`

### 更新交易状态
- **URL**: `PUT /trading/transactions/:id/status`
- **描述**: 更新交易状态
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "status": "pending|confirmed|completed|cancelled",
  "payment_status": "pending|paid|refunded",
  "delivery_status": "pending|shipped|delivered"
}
```

## 商城管理接口 (/mall)

### 获取产品列表
- **URL**: `GET /mall/products`
- **描述**: 获取商城产品列表
- **查询参数**:
  - `page`: 页码
  - `limit`: 每页数量
  - `category_id`: 分类ID
  - `keyword`: 搜索关键词
  - `min_price`: 最低价格
  - `max_price`: 最高价格

### 获取产品详情
- **URL**: `GET /mall/products/:id`
- **描述**: 获取产品详情

### 添加产品
- **URL**: `POST /mall/products`
- **描述**: 添加新产品
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "name": "string",
  "description": "string",
  "category_id": 1,
  "price": 100.00,
  "stock_quantity": 50,
  "images": ["url1", "url2"],
  "specifications": {}
}
```

### 获取订单列表
- **URL**: `GET /mall/orders`
- **描述**: 获取订单列表
- **请求头**: `Authorization: Bearer <token>`

### 创建订单
- **URL**: `POST /mall/orders`
- **描述**: 创建新订单
- **请求头**: `Authorization: Bearer <token>`
- **请求体**:
```json
{
  "items": [
    {
      "product_id": 1,
      "quantity": 2,
      "price": 100.00
    }
  ],
  "shipping_address": "string",
  "notes": "string"
}
```

## 政府监管接口 (/government)

### 获取农场监管列表
- **URL**: `GET /government/farms/supervision`
- **描述**: 获取农场监管信息
- **请求头**: `Authorization: Bearer <token>`
- **查询参数**:
  - `page`: 页码
  - `limit`: 每页数量
  - `region`: 地区
  - `status`: 监管状态

### 获取监管统计
- **URL**: `GET /government/statistics`
- **描述**: 获取监管统计数据
- **请求头**: `Authorization: Bearer <token>`
- **响应示例**:
```json
{
  "success": true,
  "data": {
    "overview": {
      "total_farms": 1250,
      "total_cattle": 45680,
      "active_farms": 1180,
      "compliance_rate": 94.4
    },
    "by_region": [
      {
        "region": "华北地区",
        "farms": 320,
        "cattle": 12500,
        "compliance_rate": 96.2
      }
    ],
    "by_type": [
      {
        "type": "肉牛养殖",
        "count": 680,
        "percentage": 54.4
      }
    ],
    "monthly_trend": [
      {
        "month": "2024-01",
        "new_registrations": 25,
        "inspections": 156,
        "violations": 8
      }
    ]
  }
}
```

## 系统接口

### 健康检查
- **URL**: `GET /health`
- **描述**: 系统健康检查
- **响应**:
```json
{
  "status": "ok",
  "timestamp": "2024-01-20T10:30:00Z",
  "database": "connected",
  "version": "1.0.0"
}
```

### 数据库状态
- **URL**: `GET /database/status`
- **描述**: 数据库连接状态

### 数据库表信息
- **URL**: `GET /database/tables`
- **描述**: 获取数据库表信息

## 错误码说明

| 错误码 | 描述 |
|--------|------|
| VALIDATION_ERROR | 请求参数验证失败 |
| UNAUTHORIZED | 未授权访问 |
| FORBIDDEN | 禁止访问 |
| NOT_FOUND | 资源未找到 |
| DATABASE_ERROR | 数据库操作失败 |
| INTERNAL_SERVER_ERROR | 服务器内部错误 |

## 认证说明

大部分API接口需要在请求头中包含JWT Token：

```
Authorization: Bearer <your_jwt_token>
```

Token可通过登录接口获取，有效期为24小时。

## 分页说明

支持分页的接口使用以下参数：
- `page`: 页码，从1开始
- `limit`: 每页数量，默认10，最大100

分页响应格式：
```json
{
  "success": true,
  "data": {
    "items": [...],
    "pagination": {
      "total": 100,
      "page": 1,
      "limit": 10,
      "pages": 10
    }
  }
}
```

## 开发环境

- **服务器地址**: http://localhost:8889
- **数据库**: SQLite (开发环境)
- **日志级别**: DEBUG

## 注意事项

1. 所有时间格式使用 ISO 8601 标准
2. 金额字段使用 DECIMAL 类型，保留2位小数
3. 文件上传大小限制为 10MB
4. API请求频率限制：每15分钟100次请求
5. 开发环境下会返回详细的错误信息，生产环境下会隐藏敏感信息