Files
xlxumu/docs/design/管理后台接口设计文档.md

44 KiB
Raw Permalink Blame History

管理后台接口设计文档

版本历史

版本 日期 作者 变更说明
1.0 2024-01-20 后端团队 初始版本

1. 接口概述

1.1 设计原则

  • RESTful风格: 遵循REST架构风格使用标准HTTP方法
  • 统一响应格式: 所有接口返回统一的JSON格式
  • 版本控制: 通过URL路径进行API版本管理
  • 安全认证: 基于JWT的身份认证和权限控制
  • 参数验证: 严格的输入参数验证和错误处理
  • 文档完整: 详细的接口文档和示例

1.2 基础信息

  • Base URL: https://api.xlxumu.com/admin/v1
  • Content-Type: application/json
  • 字符编码: UTF-8
  • 认证方式: Bearer Token (JWT)

1.3 通用响应格式

{
  "success": true,
  "code": 200,
  "message": "操作成功",
  "data": {},
  "timestamp": 1705747200000,
  "request_id": "req_123456789"
}

1.4 错误响应格式

{
  "success": false,
  "code": 400,
  "message": "参数错误",
  "errors": [
    {
      "field": "username",
      "message": "用户名不能为空"
    }
  ],
  "timestamp": 1705747200000,
  "request_id": "req_123456789"
}

1.5 状态码说明

状态码 说明 描述
200 OK 请求成功
201 Created 创建成功
400 Bad Request 请求参数错误
401 Unauthorized 未授权
403 Forbidden 禁止访问
404 Not Found 资源不存在
409 Conflict 资源冲突
422 Unprocessable Entity 参数验证失败
500 Internal Server Error 服务器内部错误

2. 认证授权

2.1 登录认证

2.1.1 管理员登录

接口地址: POST /auth/login

请求参数:

{
  "username": "admin",
  "password": "password123",
  "captcha": "ABCD",
  "captcha_key": "captcha_key_123"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "登录成功",
  "data": {
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
    "refresh_token": "refresh_token_123",
    "expires_in": 7200,
    "user": {
      "id": 1,
      "username": "admin",
      "real_name": "系统管理员",
      "avatar": "https://example.com/avatar.jpg",
      "roles": ["super_admin"],
      "permissions": ["*"]
    }
  }
}

2.1.2 刷新Token

接口地址: POST /auth/refresh

请求参数:

{
  "refresh_token": "refresh_token_123"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "刷新成功",
  "data": {
    "token": "new_jwt_token",
    "expires_in": 7200
  }
}

2.1.3 退出登录

接口地址: POST /auth/logout

请求头:

Authorization: Bearer {token}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "退出成功"
}

2.2 权限验证

2.2.1 获取用户信息

接口地址: GET /auth/user

请求头:

Authorization: Bearer {token}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 1,
    "username": "admin",
    "real_name": "系统管理员",
    "avatar": "https://example.com/avatar.jpg",
    "roles": ["super_admin"],
    "permissions": ["*"],
    "last_login_at": "2024-01-20 10:30:00",
    "last_login_ip": "192.168.1.100"
  }
}

2.2.2 获取用户菜单

接口地址: GET /auth/menus

请求头:

Authorization: Bearer {token}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": [
    {
      "id": 1,
      "name": "系统管理",
      "path": "/system",
      "icon": "system",
      "sort_order": 1,
      "children": [
        {
          "id": 2,
          "name": "用户管理",
          "path": "/system/users",
          "icon": "user",
          "sort_order": 1
        }
      ]
    }
  ]
}

3. 用户管理

3.1 用户列表

3.1.1 获取用户列表

接口地址: GET /users

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
keyword string 搜索关键词
status int 用户状态0-禁用1-正常
role_id int 角色ID
created_start string 创建开始时间
created_end string 创建结束时间

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "username": "farmer001",
        "real_name": "张三",
        "phone": "138****8000",
        "email": "zhang@example.com",
        "avatar": "https://example.com/avatar.jpg",
        "status": 1,
        "roles": [
          {
            "id": 2,
            "name": "养殖户",
            "code": "farmer"
          }
        ],
        "last_login_at": "2024-01-20 10:30:00",
        "created_at": "2024-01-15 09:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 100,
      "total_pages": 5
    }
  }
}

3.2 用户详情

3.2.1 获取用户详情

接口地址: GET /users/{id}

路径参数:

参数 类型 必填 说明
id int 用户ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 1,
    "username": "farmer001",
    "real_name": "张三",
    "phone": "13800138000",
    "email": "zhang@example.com",
    "avatar": "https://example.com/avatar.jpg",
    "gender": 1,
    "birthday": "1990-01-01",
    "address": "北京市朝阳区",
    "id_card": "110101199001010001",
    "status": 1,
    "roles": [
      {
        "id": 2,
        "name": "养殖户",
        "code": "farmer"
      }
    ],
    "farms": [
      {
        "id": 1,
        "name": "张三养猪场",
        "type": "pig",
        "status": 1
      }
    ],
    "last_login_at": "2024-01-20 10:30:00",
    "last_login_ip": "192.168.1.100",
    "created_at": "2024-01-15 09:00:00",
    "updated_at": "2024-01-20 10:30:00"
  }
}

3.3 用户操作

3.3.1 创建用户

接口地址: POST /users

请求参数:

{
  "username": "farmer002",
  "password": "password123",
  "real_name": "李四",
  "phone": "13900139000",
  "email": "li@example.com",
  "gender": 1,
  "birthday": "1985-05-15",
  "address": "上海市浦东新区",
  "role_ids": [2]
}

响应数据:

{
  "success": true,
  "code": 201,
  "message": "创建成功",
  "data": {
    "id": 2,
    "username": "farmer002",
    "real_name": "李四",
    "phone": "139****9000",
    "email": "li@example.com",
    "status": 1,
    "created_at": "2024-01-20 11:00:00"
  }
}

3.3.2 更新用户

接口地址: PUT /users/{id}

路径参数:

参数 类型 必填 说明
id int 用户ID

请求参数:

{
  "real_name": "李四四",
  "phone": "13900139001",
  "email": "li4@example.com",
  "gender": 1,
  "birthday": "1985-05-15",
  "address": "上海市浦东新区张江镇",
  "role_ids": [2, 3]
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "更新成功",
  "data": {
    "id": 2,
    "username": "farmer002",
    "real_name": "李四四",
    "phone": "139****9001",
    "email": "li4@example.com",
    "updated_at": "2024-01-20 11:30:00"
  }
}

3.3.3 删除用户

接口地址: DELETE /users/{id}

路径参数:

参数 类型 必填 说明
id int 用户ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "删除成功"
}

3.3.4 批量删除用户

接口地址: DELETE /users

请求参数:

{
  "ids": [1, 2, 3]
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "批量删除成功",
  "data": {
    "deleted_count": 3
  }
}

3.3.5 重置用户密码

接口地址: POST /users/{id}/reset-password

路径参数:

参数 类型 必填 说明
id int 用户ID

请求参数:

{
  "new_password": "newpassword123"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "密码重置成功"
}

3.3.6 启用/禁用用户

接口地址: POST /users/{id}/toggle-status

路径参数:

参数 类型 必填 说明
id int 用户ID

请求参数:

{
  "status": 0
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "状态更新成功",
  "data": {
    "id": 1,
    "status": 0
  }
}

4. 角色权限管理

4.1 角色管理

4.1.1 获取角色列表

接口地址: GET /roles

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
keyword string 搜索关键词
status int 角色状态

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "name": "超级管理员",
        "code": "super_admin",
        "description": "系统超级管理员,拥有所有权限",
        "status": 1,
        "user_count": 1,
        "created_at": "2024-01-01 00:00:00"
      },
      {
        "id": 2,
        "name": "养殖户",
        "code": "farmer",
        "description": "普通养殖户用户",
        "status": 1,
        "user_count": 50,
        "created_at": "2024-01-01 00:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 5,
      "total_pages": 1
    }
  }
}

4.1.2 获取角色详情

接口地址: GET /roles/{id}

路径参数:

参数 类型 必填 说明
id int 角色ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 2,
    "name": "养殖户",
    "code": "farmer",
    "description": "普通养殖户用户",
    "status": 1,
    "permissions": [
      {
        "id": 10,
        "name": "查看养殖场",
        "code": "farm:view",
        "type": "api"
      },
      {
        "id": 11,
        "name": "管理动物",
        "code": "animal:manage",
        "type": "api"
      }
    ],
    "users": [
      {
        "id": 1,
        "username": "farmer001",
        "real_name": "张三"
      }
    ],
    "created_at": "2024-01-01 00:00:00",
    "updated_at": "2024-01-15 10:00:00"
  }
}

4.1.3 创建角色

接口地址: POST /roles

请求参数:

{
  "name": "运营管理员",
  "code": "operator",
  "description": "负责平台运营管理",
  "permission_ids": [10, 11, 12, 13]
}

响应数据:

{
  "success": true,
  "code": 201,
  "message": "创建成功",
  "data": {
    "id": 3,
    "name": "运营管理员",
    "code": "operator",
    "description": "负责平台运营管理",
    "status": 1,
    "created_at": "2024-01-20 12:00:00"
  }
}

4.1.4 更新角色

接口地址: PUT /roles/{id}

路径参数:

参数 类型 必填 说明
id int 角色ID

请求参数:

{
  "name": "高级运营管理员",
  "description": "负责平台高级运营管理",
  "permission_ids": [10, 11, 12, 13, 14, 15]
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "更新成功",
  "data": {
    "id": 3,
    "name": "高级运营管理员",
    "description": "负责平台高级运营管理",
    "updated_at": "2024-01-20 12:30:00"
  }
}

4.1.5 删除角色

接口地址: DELETE /roles/{id}

路径参数:

参数 类型 必填 说明
id int 角色ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "删除成功"
}

4.2 权限管理

4.2.1 获取权限树

接口地址: GET /permissions/tree

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": [
    {
      "id": 1,
      "name": "系统管理",
      "code": "system",
      "type": "menu",
      "path": "/system",
      "icon": "system",
      "sort_order": 1,
      "children": [
        {
          "id": 2,
          "name": "用户管理",
          "code": "system:user",
          "type": "menu",
          "path": "/system/users",
          "icon": "user",
          "sort_order": 1,
          "children": [
            {
              "id": 3,
              "name": "查看用户",
              "code": "system:user:view",
              "type": "button",
              "sort_order": 1
            },
            {
              "id": 4,
              "name": "创建用户",
              "code": "system:user:create",
              "type": "button",
              "sort_order": 2
            }
          ]
        }
      ]
    }
  ]
}

4.2.2 获取权限列表

接口地址: GET /permissions

请求参数:

参数 类型 必填 说明
type string 权限类型menu,button,api
parent_id int 父权限ID
status int 权限状态

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": [
    {
      "id": 1,
      "name": "系统管理",
      "code": "system",
      "type": "menu",
      "parent_id": null,
      "path": "/system",
      "icon": "system",
      "sort_order": 1,
      "status": 1,
      "created_at": "2024-01-01 00:00:00"
    }
  ]
}

4.2.3 创建权限

接口地址: POST /permissions

请求参数:

{
  "name": "财务管理",
  "code": "finance",
  "type": "menu",
  "parent_id": null,
  "path": "/finance",
  "icon": "finance",
  "sort_order": 3
}

响应数据:

{
  "success": true,
  "code": 201,
  "message": "创建成功",
  "data": {
    "id": 20,
    "name": "财务管理",
    "code": "finance",
    "type": "menu",
    "parent_id": null,
    "path": "/finance",
    "icon": "finance",
    "sort_order": 3,
    "status": 1,
    "created_at": "2024-01-20 13:00:00"
  }
}

5. 养殖场管理

5.1 养殖场列表

5.1.1 获取养殖场列表

接口地址: GET /farms

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
keyword string 搜索关键词
type string 养殖类型
status int 养殖场状态
province string 省份
city string 城市
user_id int 用户ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "name": "张三养猪场",
        "code": "FARM001",
        "type": "pig",
        "area": 5000.00,
        "capacity": 500,
        "address": "北京市朝阳区某某村",
        "province": "北京市",
        "city": "北京市",
        "district": "朝阳区",
        "status": 1,
        "user": {
          "id": 1,
          "username": "farmer001",
          "real_name": "张三"
        },
        "animal_count": 150,
        "created_at": "2024-01-15 09:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 50,
      "total_pages": 3
    }
  }
}

5.2 养殖场详情

5.2.1 获取养殖场详情

接口地址: GET /farms/{id}

路径参数:

参数 类型 必填 说明
id int 养殖场ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 1,
    "name": "张三养猪场",
    "code": "FARM001",
    "type": "pig",
    "area": 5000.00,
    "capacity": 500,
    "address": "北京市朝阳区某某村123号",
    "province": "北京市",
    "city": "北京市",
    "district": "朝阳区",
    "longitude": 116.407526,
    "latitude": 39.904030,
    "license_number": "京农许字[2024]001号",
    "license_image": "https://example.com/license.jpg",
    "description": "专业养猪场,采用现代化养殖技术",
    "status": 1,
    "user": {
      "id": 1,
      "username": "farmer001",
      "real_name": "张三",
      "phone": "138****8000"
    },
    "statistics": {
      "total_animals": 150,
      "healthy_animals": 145,
      "sick_animals": 5,
      "total_value": 150000.00
    },
    "created_at": "2024-01-15 09:00:00",
    "updated_at": "2024-01-20 10:00:00"
  }
}

5.3 养殖场操作

5.3.1 审核养殖场

接口地址: POST /farms/{id}/audit

路径参数:

参数 类型 必填 说明
id int 养殖场ID

请求参数:

{
  "status": 1,
  "audit_notes": "审核通过,符合养殖标准"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "审核成功",
  "data": {
    "id": 1,
    "status": 1,
    "audit_notes": "审核通过,符合养殖标准",
    "audited_at": "2024-01-20 14:00:00"
  }
}

5.3.2 获取养殖场统计

接口地址: GET /farms/{id}/statistics

路径参数:

参数 类型 必填 说明
id int 养殖场ID

请求参数:

参数 类型 必填 说明
start_date string 开始日期
end_date string 结束日期

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "basic_stats": {
      "total_animals": 150,
      "healthy_animals": 145,
      "sick_animals": 5,
      "dead_animals": 0,
      "total_value": 150000.00
    },
    "breed_stats": [
      {
        "breed": "杜洛克猪",
        "count": 80,
        "percentage": 53.33
      },
      {
        "breed": "长白猪",
        "count": 70,
        "percentage": 46.67
      }
    ],
    "health_stats": {
      "vaccination_rate": 95.5,
      "health_check_rate": 100.0,
      "disease_rate": 3.33
    },
    "financial_stats": {
      "total_income": 50000.00,
      "total_expense": 30000.00,
      "net_profit": 20000.00,
      "profit_margin": 40.0
    }
  }
}

6. 动物管理

6.1 动物列表

6.1.1 获取动物列表

接口地址: GET /animals

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
keyword string 搜索关键词
farm_id int 养殖场ID
category_id int 动物分类ID
breed string 品种
gender int 性别
health_status string 健康状态
status int 动物状态

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "code": "PIG001",
        "name": "小猪001",
        "breed": "杜洛克猪",
        "gender": 1,
        "birth_date": "2023-06-15",
        "age_days": 219,
        "weight": 85.5,
        "health_status": "healthy",
        "status": 1,
        "farm": {
          "id": 1,
          "name": "张三养猪场",
          "user": {
            "id": 1,
            "real_name": "张三"
          }
        },
        "category": {
          "id": 1,
          "name": "猪",
          "code": "pig"
        },
        "purchase_price": 800.00,
        "current_value": 1200.00,
        "created_at": "2023-06-15 10:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 500,
      "total_pages": 25
    }
  }
}

6.2 动物详情

6.2.1 获取动物详情

接口地址: GET /animals/{id}

路径参数:

参数 类型 必填 说明
id int 动物ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 1,
    "code": "PIG001",
    "name": "小猪001",
    "breed": "杜洛克猪",
    "gender": 1,
    "birth_date": "2023-06-15",
    "age_days": 219,
    "weight": 85.5,
    "health_status": "healthy",
    "status": 1,
    "farm": {
      "id": 1,
      "name": "张三养猪场",
      "code": "FARM001",
      "user": {
        "id": 1,
        "username": "farmer001",
        "real_name": "张三"
      }
    },
    "category": {
      "id": 1,
      "name": "猪",
      "code": "pig"
    },
    "parents": {
      "father": {
        "id": 10,
        "code": "PIG010",
        "name": "种猪公001"
      },
      "mother": {
        "id": 11,
        "code": "PIG011",
        "name": "种猪母001"
      }
    },
    "purchase_info": {
      "price": 800.00,
      "date": "2023-06-15",
      "source": "本地养殖场"
    },
    "current_value": 1200.00,
    "notes": "生长良好,无疾病史",
    "health_records_count": 5,
    "vaccination_records_count": 3,
    "created_at": "2023-06-15 10:00:00",
    "updated_at": "2024-01-20 10:00:00"
  }
}

6.3 健康记录

6.3.1 获取动物健康记录

接口地址: GET /animals/{id}/health-records

路径参数:

参数 类型 必填 说明
id int 动物ID

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
record_type string 记录类型
start_date string 开始日期
end_date string 结束日期

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "record_type": "checkup",
        "record_date": "2024-01-15",
        "symptoms": null,
        "diagnosis": "健康状况良好",
        "treatment": null,
        "medicine": null,
        "dosage": null,
        "veterinarian": "李兽医",
        "cost": 50.00,
        "next_checkup_date": "2024-02-15",
        "notes": "定期健康检查",
        "images": [
          "https://example.com/health1.jpg"
        ],
        "created_by": {
          "id": 1,
          "real_name": "张三"
        },
        "created_at": "2024-01-15 14:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 5,
      "total_pages": 1
    }
  }
}

7. 订单管理

7.1 订单列表

7.1.1 获取订单列表

接口地址: GET /orders

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
keyword string 搜索关键词(订单号)
order_type string 订单类型
order_status string 订单状态
payment_status string 支付状态
buyer_id int 买家ID
seller_id int 卖家ID
start_date string 开始日期
end_date string 结束日期

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "order_no": "ORD202401200001",
        "order_type": "animal",
        "total_amount": 2400.00,
        "discount_amount": 0.00,
        "shipping_fee": 100.00,
        "actual_amount": 2500.00,
        "payment_method": "alipay",
        "payment_status": "paid",
        "order_status": "confirmed",
        "buyer": {
          "id": 2,
          "username": "buyer001",
          "real_name": "李四"
        },
        "seller": {
          "id": 1,
          "username": "farmer001",
          "real_name": "张三"
        },
        "farm": {
          "id": 1,
          "name": "张三养猪场"
        },
        "item_count": 2,
        "paid_at": "2024-01-20 10:30:00",
        "created_at": "2024-01-20 10:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 100,
      "total_pages": 5
    }
  }
}

7.2 订单详情

7.2.1 获取订单详情

接口地址: GET /orders/{id}

路径参数:

参数 类型 必填 说明
id int 订单ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "id": 1,
    "order_no": "ORD202401200001",
    "order_type": "animal",
    "total_amount": 2400.00,
    "discount_amount": 0.00,
    "shipping_fee": 100.00,
    "actual_amount": 2500.00,
    "payment_method": "alipay",
    "payment_status": "paid",
    "order_status": "confirmed",
    "buyer": {
      "id": 2,
      "username": "buyer001",
      "real_name": "李四",
      "phone": "139****9000"
    },
    "seller": {
      "id": 1,
      "username": "farmer001",
      "real_name": "张三",
      "phone": "138****8000"
    },
    "farm": {
      "id": 1,
      "name": "张三养猪场",
      "address": "北京市朝阳区某某村123号"
    },
    "shipping_address": {
      "name": "李四",
      "phone": "13900139000",
      "province": "上海市",
      "city": "上海市",
      "district": "浦东新区",
      "address": "张江镇某某路123号",
      "full_address": "上海市上海市浦东新区张江镇某某路123号"
    },
    "shipping_method": "express",
    "tracking_number": "SF1234567890",
    "items": [
      {
        "id": 1,
        "item_type": "animal",
        "item_id": 1,
        "item_name": "杜洛克猪",
        "item_code": "PIG001",
        "item_spec": "体重85kg6月龄",
        "unit_price": 1200.00,
        "quantity": 2,
        "unit": "头",
        "subtotal": 2400.00,
        "notes": "健康状况良好"
      }
    ],
    "notes": "请尽快发货",
    "paid_at": "2024-01-20 10:30:00",
    "shipped_at": null,
    "delivered_at": null,
    "completed_at": null,
    "cancelled_at": null,
    "cancel_reason": null,
    "created_at": "2024-01-20 10:00:00",
    "updated_at": "2024-01-20 10:30:00"
  }
}

7.3 订单操作

7.3.1 订单审核

接口地址: POST /orders/{id}/audit

路径参数:

参数 类型 必填 说明
id int 订单ID

请求参数:

{
  "action": "approve",
  "notes": "订单审核通过"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "审核成功",
  "data": {
    "id": 1,
    "order_status": "confirmed",
    "audit_notes": "订单审核通过",
    "audited_at": "2024-01-20 15:00:00"
  }
}

7.3.2 订单退款

接口地址: POST /orders/{id}/refund

路径参数:

参数 类型 必填 说明
id int 订单ID

请求参数:

{
  "refund_amount": 2500.00,
  "refund_reason": "买家申请退款",
  "notes": "同意退款申请"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "退款成功",
  "data": {
    "id": 1,
    "payment_status": "refunded",
    "order_status": "cancelled",
    "refund_amount": 2500.00,
    "refund_reason": "买家申请退款",
    "refunded_at": "2024-01-20 15:30:00"
  }
}

8. 财务管理

8.1 财务记录

8.1.1 获取财务记录列表

接口地址: GET /financial-records

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
record_type string 记录类型income,expense
category string 分类
user_id int 用户ID
farm_id int 养殖场ID
start_date string 开始日期
end_date string 结束日期
min_amount decimal 最小金额
max_amount decimal 最大金额

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "record_type": "income",
        "category": "sale",
        "amount": 2400.00,
        "description": "销售杜洛克猪2头",
        "related_id": 1,
        "related_type": "order",
        "payment_method": "alipay",
        "receipt_image": "https://example.com/receipt1.jpg",
        "record_date": "2024-01-20",
        "user": {
          "id": 1,
          "username": "farmer001",
          "real_name": "张三"
        },
        "farm": {
          "id": 1,
          "name": "张三养猪场"
        },
        "notes": "订单收入",
        "created_by": {
          "id": 1,
          "real_name": "张三"
        },
        "created_at": "2024-01-20 16:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 200,
      "total_pages": 10
    },
    "summary": {
      "total_income": 50000.00,
      "total_expense": 30000.00,
      "net_profit": 20000.00
    }
  }
}

8.2 财务统计

8.2.1 获取财务统计

接口地址: GET /financial-records/statistics

请求参数:

参数 类型 必填 说明
start_date string 开始日期
end_date string 结束日期
user_id int 用户ID
farm_id int 养殖场ID
group_by string 分组方式day,month,year

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "summary": {
      "total_income": 100000.00,
      "total_expense": 60000.00,
      "net_profit": 40000.00,
      "profit_margin": 40.0
    },
    "income_by_category": [
      {
        "category": "sale",
        "amount": 80000.00,
        "percentage": 80.0
      },
      {
        "category": "other",
        "amount": 20000.00,
        "percentage": 20.0
      }
    ],
    "expense_by_category": [
      {
        "category": "feed",
        "amount": 30000.00,
        "percentage": 50.0
      },
      {
        "category": "medicine",
        "amount": 15000.00,
        "percentage": 25.0
      },
      {
        "category": "labor",
        "amount": 15000.00,
        "percentage": 25.0
      }
    ],
    "trend_data": [
      {
        "date": "2024-01",
        "income": 25000.00,
        "expense": 15000.00,
        "profit": 10000.00
      },
      {
        "date": "2024-02",
        "income": 30000.00,
        "expense": 18000.00,
        "profit": 12000.00
      }
    ]
  }
}

9. 系统管理

9.1 系统配置

9.1.1 获取系统配置

接口地址: GET /system/configs

请求参数:

参数 类型 必填 说明
config_key string 配置键
is_public int 是否公开

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": [
    {
      "id": 1,
      "config_key": "site_name",
      "config_value": "畜牧养殖管理平台",
      "config_type": "string",
      "description": "网站名称",
      "is_public": 1,
      "created_at": "2024-01-01 00:00:00",
      "updated_at": "2024-01-15 10:00:00"
    }
  ]
}

9.1.2 更新系统配置

接口地址: PUT /system/configs/{id}

路径参数:

参数 类型 必填 说明
id int 配置ID

请求参数:

{
  "config_value": "新的网站名称",
  "description": "更新后的网站名称"
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "更新成功",
  "data": {
    "id": 1,
    "config_key": "site_name",
    "config_value": "新的网站名称",
    "description": "更新后的网站名称",
    "updated_at": "2024-01-20 16:30:00"
  }
}

9.2 操作日志

9.2.1 获取操作日志

接口地址: GET /system/operation-logs

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
user_id int 用户ID
module string 模块
action string 操作
start_date string 开始日期
end_date string 结束日期
ip string IP地址

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "user": {
          "id": 1,
          "username": "admin",
          "real_name": "系统管理员"
        },
        "module": "user",
        "action": "create",
        "method": "POST",
        "url": "/admin/v1/users",
        "ip": "192.168.1.100",
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)...",
        "request_data": {
          "username": "farmer002",
          "real_name": "李四"
        },
        "response_data": {
          "success": true,
          "data": {
            "id": 2
          }
        },
        "status_code": 201,
        "execution_time": 150,
        "created_at": "2024-01-20 11:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 1000,
      "total_pages": 50
    }
  }
}

10. 数据统计

10.1 仪表板统计

10.1.1 获取仪表板数据

接口地址: GET /dashboard/statistics

请求参数:

参数 类型 必填 说明
start_date string 开始日期
end_date string 结束日期

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "overview": {
      "total_users": 1000,
      "total_farms": 200,
      "total_animals": 50000,
      "total_orders": 5000,
      "total_revenue": 5000000.00
    },
    "growth_stats": {
      "user_growth": {
        "current": 1000,
        "previous": 950,
        "growth_rate": 5.26
      },
      "farm_growth": {
        "current": 200,
        "previous": 180,
        "growth_rate": 11.11
      },
      "animal_growth": {
        "current": 50000,
        "previous": 48000,
        "growth_rate": 4.17
      },
      "order_growth": {
        "current": 5000,
        "previous": 4500,
        "growth_rate": 11.11
      }
    },
    "recent_activities": [
      {
        "type": "user_register",
        "message": "新用户 farmer003 注册成功",
        "time": "2024-01-20 16:30:00"
      },
      {
        "type": "order_created",
        "message": "订单 ORD202401200002 创建成功",
        "time": "2024-01-20 16:25:00"
      }
    ],
    "chart_data": {
      "user_trend": [
        {
          "date": "2024-01-01",
          "count": 900
        },
        {
          "date": "2024-01-20",
          "count": 1000
        }
      ],
      "order_trend": [
        {
          "date": "2024-01-01",
          "count": 4000,
          "amount": 4000000.00
        },
        {
          "date": "2024-01-20",
          "count": 5000,
          "amount": 5000000.00
        }
      ]
    }
  }
}

10.2 业务统计

10.2.1 获取用户统计

接口地址: GET /statistics/users

请求参数:

参数 类型 必填 说明
start_date string 开始日期
end_date string 结束日期
group_by string 分组方式day,month,year

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "summary": {
      "total_users": 1000,
      "active_users": 800,
      "new_users": 50,
      "retention_rate": 80.0
    },
    "user_by_role": [
      {
        "role": "farmer",
        "count": 900,
        "percentage": 90.0
      },
      {
        "role": "buyer",
        "count": 100,
        "percentage": 10.0
      }
    ],
    "user_by_region": [
      {
        "province": "北京市",
        "count": 200,
        "percentage": 20.0
      },
      {
        "province": "上海市",
        "count": 150,
        "percentage": 15.0
      }
    ],
    "trend_data": [
      {
        "date": "2024-01-01",
        "total": 950,
        "new": 20,
        "active": 760
      },
      {
        "date": "2024-01-20",
        "total": 1000,
        "new": 50,
        "active": 800
      }
    ]
  }
}

11. 文件上传

11.1 文件上传

11.1.1 上传单个文件

接口地址: POST /upload/file

请求参数:

  • Content-Type: multipart/form-data
  • file: 文件对象
  • type: 文件类型 (avatar, license, receipt, health_record)
  • category: 文件分类 (可选)

响应数据:

{
  "success": true,
  "code": 200,
  "message": "上传成功",
  "data": {
    "file_id": "file_123456",
    "file_name": "avatar.jpg",
    "file_size": 102400,
    "file_type": "image/jpeg",
    "file_url": "https://cdn.xlxumu.com/uploads/2024/01/20/avatar_123456.jpg",
    "thumbnail_url": "https://cdn.xlxumu.com/uploads/2024/01/20/thumb_avatar_123456.jpg",
    "uploaded_at": "2024-01-20 17:00:00"
  }
}

11.1.2 批量上传文件

接口地址: POST /upload/files

请求参数:

  • Content-Type: multipart/form-data
  • files[]: 文件对象数组
  • type: 文件类型
  • category: 文件分类 (可选)

响应数据:

{
  "success": true,
  "code": 200,
  "message": "上传成功",
  "data": {
    "uploaded_files": [
      {
        "file_id": "file_123456",
        "file_name": "image1.jpg",
        "file_url": "https://cdn.xlxumu.com/uploads/2024/01/20/image1_123456.jpg"
      },
      {
        "file_id": "file_123457",
        "file_name": "image2.jpg",
        "file_url": "https://cdn.xlxumu.com/uploads/2024/01/20/image2_123457.jpg"
      }
    ],
    "failed_files": [],
    "total_count": 2,
    "success_count": 2,
    "failed_count": 0
  }
}

12. 导出功能

12.1 数据导出

12.1.1 导出用户数据

接口地址: POST /export/users

请求参数:

{
  "format": "excel",
  "filters": {
    "status": 1,
    "role_id": 2,
    "created_start": "2024-01-01",
    "created_end": "2024-01-20"
  },
  "fields": ["username", "real_name", "phone", "email", "created_at"]
}

响应数据:

{
  "success": true,
  "code": 200,
  "message": "导出任务创建成功",
  "data": {
    "task_id": "export_task_123456",
    "status": "processing",
    "estimated_time": 30
  }
}

12.1.2 获取导出任务状态

接口地址: GET /export/tasks/{task_id}

路径参数:

参数 类型 必填 说明
task_id string 任务ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "task_id": "export_task_123456",
    "status": "completed",
    "progress": 100,
    "file_url": "https://cdn.xlxumu.com/exports/users_20240120.xlsx",
    "file_size": 204800,
    "record_count": 1000,
    "created_at": "2024-01-20 17:30:00",
    "completed_at": "2024-01-20 17:31:00"
  }
}

13. 通知管理

13.1 系统通知

13.1.1 获取通知列表

接口地址: GET /notifications

请求参数:

参数 类型 必填 说明
page int 页码默认1
page_size int 每页数量默认20
type string 通知类型
status string 通知状态
is_read int 是否已读

响应数据:

{
  "success": true,
  "code": 200,
  "message": "获取成功",
  "data": {
    "list": [
      {
        "id": 1,
        "type": "system",
        "title": "系统维护通知",
        "content": "系统将于今晚22:00-24:00进行维护",
        "is_read": 0,
        "created_at": "2024-01-20 18:00:00"
      }
    ],
    "pagination": {
      "page": 1,
      "page_size": 20,
      "total": 50,
      "total_pages": 3
    },
    "unread_count": 5
  }
}

13.1.2 标记通知已读

接口地址: POST /notifications/{id}/read

路径参数:

参数 类型 必填 说明
id int 通知ID

响应数据:

{
  "success": true,
  "code": 200,
  "message": "标记成功"
}

14. 错误处理

14.1 错误码定义

错误码 HTTP状态码 错误信息 说明
10001 400 参数错误 请求参数格式错误或缺失
10002 401 未授权 Token无效或已过期
10003 403 禁止访问 权限不足
10004 404 资源不存在 请求的资源不存在
10005 409 资源冲突 资源已存在或状态冲突
10006 422 参数验证失败 参数格式正确但验证失败
10007 429 请求过于频繁 触发限流
10008 500 服务器内部错误 系统异常
20001 400 用户名已存在 用户注册时用户名重复
20002 400 手机号已存在 用户注册时手机号重复
20003 400 邮箱已存在 用户注册时邮箱重复
20004 400 用户名或密码错误 登录验证失败
20005 400 验证码错误 验证码验证失败
30001 400 养殖场名称已存在 养殖场创建时名称重复
30002 400 养殖场编码已存在 养殖场创建时编码重复
40001 400 动物编码已存在 动物创建时编码重复
50001 400 订单状态不允许此操作 订单状态错误
50002 400 库存不足 商品库存不足

14.2 错误响应示例

14.2.1 参数验证错误

{
  "success": false,
  "code": 10006,
  "message": "参数验证失败",
  "errors": [
    {
      "field": "username",
      "message": "用户名长度必须在3-20个字符之间"
    },
    {
      "field": "phone",
      "message": "手机号格式不正确"
    }
  ],
  "timestamp": 1705747200000,
  "request_id": "req_123456789"
}

14.2.2 权限不足错误

{
  "success": false,
  "code": 10003,
  "message": "权限不足,无法访问此资源",
  "timestamp": 1705747200000,
  "request_id": "req_123456789"
}

15. 接口版本管理

15.1 版本策略

  • URL版本控制: 通过URL路径进行版本管理/admin/v1/users
  • 向后兼容: 新版本保持向后兼容,旧版本逐步废弃
  • 版本生命周期: 每个版本至少维护12个月
  • 废弃通知: 版本废弃前3个月发出通知

15.2 版本信息

版本 发布日期 状态 废弃日期 说明
v1.0 2024-01-01 当前版本 - 初始版本

16. 接口测试

16.1 测试环境

  • 测试地址: https://test-api.xlxumu.com/admin/v1
  • 测试账号: admin / test123456
  • 测试数据: 系统提供测试数据,每日凌晨重置

16.2 Postman集合

提供完整的Postman接口测试集合包含

  • 环境变量配置
  • 认证Token自动获取
  • 完整的接口测试用例
  • 测试数据和断言

16.3 接口文档

17. 总结

本文档详细定义了畜牧养殖管理平台管理后台的所有API接口包括

17.1 核心特性

  • 完整的RBAC权限体系: 支持用户、角色、权限的灵活管理
  • 全面的业务功能: 覆盖用户、养殖场、动物、订单、财务等核心业务
  • 统一的接口规范: 标准化的请求响应格式和错误处理
  • 完善的数据统计: 多维度的数据分析和可视化支持
  • 安全的认证机制: 基于JWT的身份认证和权限控制

17.2 技术亮点

  • RESTful设计: 遵循REST架构原则接口语义清晰
  • 分页查询: 统一的分页参数和响应格式
  • 条件筛选: 灵活的查询条件和排序支持
  • 批量操作: 支持批量创建、更新、删除操作
  • 文件上传: 完善的文件上传和管理功能
  • 数据导出: 支持多格式数据导出功能

17.3 扩展性设计

  • 模块化架构: 按业务模块组织接口,便于维护和扩展
  • 版本控制: 完善的API版本管理策略
  • 错误处理: 统一的错误码和错误信息定义
  • 监控日志: 完整的操作日志和接口监控

17.4 后续优化

  • 性能优化: 接口响应时间优化,缓存策略完善
  • 安全加固: 接口安全防护,数据加密传输
  • 功能扩展: 根据业务需求持续迭代新功能
  • 文档维护: 保持文档与代码同步更新