# 工具配置管理(管理端)API 文档 ## 概述 管理端工具配置API,用于管理工具配置和查看使用统计。 - **Base URL**: `/admin/tools` - **认证方式**: 需要管理员权限(`ROLE_ADMIN`) - **请求头**: `Authorization: Bearer {admin_jwt_token}` --- ## 一、工具配置管理 ### 1.1 获取所有工具配置 获取所有工具配置列表。 **请求** ``` GET /admin/tools/configs ``` **响应** ```json { "code": 200, "message": "success", "data": [ { "id": 1, "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": "douyin", "description": "根据sec_user_id获取用户发布的视频列表", "apiEndpoint": "/api/v1/douyin/app/v3/fetch_user_post_videos", "requestMethod": "GET", "pointsCost": 5, "isEnabled": 1, "sortOrder": 1, "createTime": "2026-01-02T10:00:00", "updateTime": "2026-01-02T10:00:00" } ] } ``` --- ### 1.2 获取工具配置详情 根据ID获取工具配置详情。 **请求** ``` GET /admin/tools/configs/{id} ``` **路径参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 工具ID | **响应** ```json { "code": 200, "message": "success", "data": { "id": 1, "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": "douyin", "description": "根据sec_user_id获取用户发布的视频列表", "apiEndpoint": "/api/v1/douyin/app/v3/fetch_user_post_videos", "requestMethod": "GET", "pointsCost": 5, "isEnabled": 1, "sortOrder": 1, "createTime": "2026-01-02T10:00:00", "updateTime": "2026-01-02T10:00:00" } } ``` --- ### 1.3 创建工具配置 创建新的工具配置。 **请求** ``` POST /admin/tools/configs Content-Type: application/json ``` **请求体** ```json { "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": "douyin", "description": "根据sec_user_id获取用户发布的视频列表", "apiEndpoint": "/api/v1/douyin/app/v3/fetch_user_post_videos", "requestMethod": "GET", "pointsCost": 5, "isEnabled": 1, "sortOrder": 1 } ``` **请求体参数说明** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | toolCode | String | 是 | 工具编码(唯一标识) | | toolName | String | 是 | 工具名称 | | category | String | 是 | 工具分类(douyin/xiaohongshu/wechat_mp) | | description | String | 否 | 工具描述 | | apiEndpoint | String | 是 | API端点路径 | | requestMethod | String | 否 | 请求方法(GET/POST),默认GET | | pointsCost | Integer | 否 | 积分消耗,默认1 | | isEnabled | Integer | 否 | 是否启用(0禁用/1启用),默认1 | | sortOrder | Integer | 否 | 排序顺序,默认0 | **响应** ```json { "code": 200, "message": "创建成功", "data": { "id": 1, "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": "douyin", "description": "根据sec_user_id获取用户发布的视频列表", "apiEndpoint": "/api/v1/douyin/app/v3/fetch_user_post_videos", "requestMethod": "GET", "pointsCost": 5, "isEnabled": 1, "sortOrder": 1, "createTime": "2026-01-02T10:00:00", "updateTime": "2026-01-02T10:00:00" } } ``` --- ### 1.4 更新工具配置 更新指定工具配置。 **请求** ``` PUT /admin/tools/configs/{id} Content-Type: application/json ``` **路径参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 工具ID | **请求体** ```json { "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": "douyin", "description": "根据sec_user_id获取用户发布的视频列表", "apiEndpoint": "/api/v1/douyin/app/v3/fetch_user_post_videos", "requestMethod": "GET", "pointsCost": 10, "isEnabled": 1, "sortOrder": 1 } ``` **响应** ```json { "code": 200, "message": "更新成功", "data": { "id": 1, "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": "douyin", "description": "根据sec_user_id获取用户发布的视频列表", "apiEndpoint": "/api/v1/douyin/app/v3/fetch_user_post_videos", "requestMethod": "GET", "pointsCost": 10, "isEnabled": 1, "sortOrder": 1, "createTime": "2026-01-02T10:00:00", "updateTime": "2026-01-02T11:00:00" } } ``` --- ### 1.5 更新积分消耗 单独更新工具的积分消耗配置。 **请求** ``` PATCH /admin/tools/configs/{id}/points-cost?pointsCost={pointsCost} ``` **参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 工具ID(路径参数) | | pointsCost | Integer | 是 | 积分消耗(查询参数) | **响应** ```json { "code": 200, "message": "更新成功", "data": null } ``` --- ### 1.6 更新工具状态 启用或禁用工具。 **请求** ``` PATCH /admin/tools/configs/{id}/status?isEnabled={isEnabled} ``` **参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 工具ID(路径参数) | | isEnabled | Integer | 是 | 是否启用(0禁用/1启用)(查询参数) | **响应** ```json { "code": 200, "message": "更新成功", "data": null } ``` --- ### 1.7 删除工具配置 删除指定工具配置(逻辑删除)。 **请求** ``` DELETE /admin/tools/configs/{id} ``` **路径参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | id | Long | 是 | 工具ID | **响应** ```json { "code": 200, "message": "删除成功", "data": null } ``` --- ## 二、使用统计 ### 2.1 获取统计概览 获取工具数量和今日调用统计。 **请求** ``` GET /admin/tools/stats/info ``` **响应** ```json { "code": 200, "message": "success", "data": { "totalTools": 8, "enabledTools": 8, "todayCalls": 156, "todayPointsCost": 780 } } ``` **响应字段说明** | 字段 | 类型 | 说明 | |------|------|------| | totalTools | Long | 工具总数 | | enabledTools | Long | 已启用工具数 | | todayCalls | Long | 今日调用次数 | | todayPointsCost | Long | 今日消耗积分 | --- ### 2.2 获取统计汇总 获取指定日期范围内的统计汇总。 **请求** ``` GET /admin/tools/stats/summary?startDate={startDate}&endDate={endDate} ``` **查询参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | startDate | String | 否 | 开始日期(yyyy-MM-dd),默认30天前 | | endDate | String | 否 | 结束日期(yyyy-MM-dd),默认今天 | **响应** ```json { "code": 200, "message": "success", "data": { "totalCalls": 1560, "successCalls": 1500, "failedCalls": 60, "totalPointsCost": 7800, "uniqueUsers": null, "toolStats": [ { "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "category": null, "totalCalls": 500, "successCalls": 480, "totalPointsCost": 2500 }, { "toolCode": "xiaohongshu_search_notes", "toolName": "搜索笔记", "category": null, "totalCalls": 300, "successCalls": 290, "totalPointsCost": 1500 } ] } } ``` **响应字段说明** | 字段 | 类型 | 说明 | |------|------|------| | totalCalls | Long | 总调用次数 | | successCalls | Long | 成功次数 | | failedCalls | Long | 失败次数 | | totalPointsCost | Long | 总消耗积分 | | uniqueUsers | Long | 独立用户数 | | toolStats | Array | 按工具分类统计 | --- ### 2.3 获取每日统计 获取每日统计数据列表。 **请求** ``` GET /admin/tools/stats/daily?startDate={startDate}&endDate={endDate}&toolCode={toolCode} ``` **查询参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | startDate | String | 否 | 开始日期(yyyy-MM-dd),默认7天前 | | endDate | String | 否 | 结束日期(yyyy-MM-dd),默认今天 | | toolCode | String | 否 | 工具编码,用于筛选特定工具 | **响应** ```json { "code": 200, "message": "success", "data": [ { "statsDate": "2026-01-02", "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "totalCalls": 100, "successCalls": 95, "failedCalls": 5, "totalPointsCost": 500, "uniqueUsers": 20 }, { "statsDate": "2026-01-01", "toolCode": "douyin_user_videos", "toolName": "获取用户主页视频", "totalCalls": 80, "successCalls": 78, "failedCalls": 2, "totalPointsCost": 400, "uniqueUsers": 15 } ] } ``` **响应字段说明** | 字段 | 类型 | 说明 | |------|------|------| | statsDate | String | 统计日期 | | toolCode | String | 工具编码 | | toolName | String | 工具名称 | | totalCalls | Integer | 调用总次数 | | successCalls | Integer | 成功次数 | | failedCalls | Integer | 失败次数 | | totalPointsCost | Integer | 消耗总积分 | | uniqueUsers | Integer | 独立用户数 | --- ### 2.4 刷新每日统计 手动刷新指定日期的统计数据。 **请求** ``` POST /admin/tools/stats/refresh?date={date} ``` **查询参数** | 参数 | 类型 | 必填 | 说明 | |------|------|------|------| | date | String | 否 | 日期(yyyy-MM-dd),默认今天 | **响应** ```json { "code": 200, "message": "刷新成功", "data": null } ``` --- ## 三、错误响应 所有接口在发生错误时返回统一格式: ```json { "code": 500, "message": "错误描述信息", "data": null } ``` **常见错误码** | 错误码 | 说明 | |--------|------| | 401 | 未认证或Token过期 | | 403 | 无权限(非管理员) | | 500 | 服务器内部错误 | --- ## 四、数据字典 ### 工具分类(category) | 值 | 说明 | |------|------| | douyin | 抖音 | | xiaohongshu | 小红书 | | wechat_mp | 微信公众号 | ### 请求方法(requestMethod) | 值 | 说明 | |------|------| | GET | GET请求 | | POST | POST请求 | ### 启用状态(isEnabled) | 值 | 说明 | |------|------| | 0 | 禁用 | | 1 | 启用 |