first commit

This commit is contained in:
Claude Workbench
2026-02-13 18:18:20 +08:00
parent 0f7bc05697
commit e3e6f1f29d
136 changed files with 68018 additions and 17982 deletions

View File

@@ -0,0 +1,501 @@
# 工具配置管理管理端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 | 启用 |

View File

@@ -0,0 +1,195 @@
# 广场作品投诉功能实施总结
## 概述
成功实现广场作品投诉功能,用户可以对违规作品进行投诉,管理员审核投诉并处理。
## 功能特性
### 1. 投诉类型
支持6种投诉类型
- `political` - 政治敏感
- `pornographic` - 色情低俗
- `violent` - 暴力血腥
- `dangerous` - 危险行为
- `uncomfortable` - 引人不适
- `other` - 其他
### 2. 投诉限制机制
- **每日投诉限制**每个用户每天最多投诉10次
- **防重复投诉**:同一用户不能重复投诉同一作品
- **防自投诉**:不能投诉自己发布的作品
- **自动重置**每日0点自动重置投诉计数
### 3. 投诉状态
- `pending` - 待审核
- `approved` - 投诉成立
- `rejected` - 投诉不成立
### 4. 管理员审核
- **投诉成立**:下架作品(修改审核状态为 `rejected`,状态改为 `hidden`
- **投诉不成立**:驳回投诉
- **处理备注**:必须填写审核备注说明处理原因
## 数据库设计
### 1. plaza_work_report投诉表
```sql
CREATE TABLE `plaza_work_report` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`report_no` VARCHAR(50) NOT NULL COMMENT '投诉编号',
`work_id` BIGINT NOT NULL COMMENT '被投诉的作品ID',
`work_no` VARCHAR(50) NOT NULL COMMENT '被投诉的作品编号',
`reporter_id` BIGINT NOT NULL COMMENT '投诉人用户ID',
`report_type` VARCHAR(20) NOT NULL COMMENT '投诉类型',
`report_reason` TEXT COMMENT '投诉原因描述',
`report_status` VARCHAR(20) DEFAULT 'pending' COMMENT '投诉状态',
`audit_admin_id` BIGINT COMMENT '审核管理员ID',
`audit_admin_name` VARCHAR(100) COMMENT '审核管理员名称',
`audit_remark` TEXT COMMENT '审核备注',
`audit_time` DATETIME COMMENT '审核时间',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`is_deleted` TINYINT(1) DEFAULT 0,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_report_no` (`report_no`),
KEY `idx_work_id` (`work_id`),
KEY `idx_reporter_id` (`reporter_id`),
KEY `idx_report_status` (`report_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
### 2. plaza_work_report_limit投诉限制表
```sql
CREATE TABLE `plaza_work_report_limit` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`user_id` BIGINT NOT NULL,
`report_count` INT DEFAULT 0 COMMENT '今日投诉次数',
`last_report_time` DATETIME COMMENT '最后投诉时间',
`reset_date` DATE NOT NULL COMMENT '重置日期',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP,
`update_time` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
UNIQUE KEY `uk_user_id` (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
## API 接口
### 用户端接口
#### 1. 提交投诉
```
POST /user/plaza/reports/submit
```
**请求体:**
```json
{
"workNo": "WORK-20251026-001",
"reportType": "pornographic",
"reportReason": "该作品包含不当内容"
}
```
#### 2. 查询我的投诉列表
```
GET /user/plaza/reports/my?page=1&size=10
```
### 管理员端接口
#### 1. 查询投诉列表
```
GET /admin/plaza/reports/list?page=1&size=20&reportStatus=pending&reportType=pornographic&workNo=WORK-xxx&reporterId=123
```
#### 2. 审核投诉
```
POST /admin/plaza/reports/audit
```
**请求体:**
```json
{
"reportNo": "REPORT-20251114-001",
"auditResult": "approved",
"auditRemark": "经审核,该作品确实存在违规内容,已下架处理"
}
```
#### 3. 获取待审核投诉数量
```
GET /admin/plaza/reports/pending/count
```
## 代码文件清单
### 数据库
-`V12__add_plaza_work_report.sql` - 创建投诉表和限制表
### 实体类
-`PlazaWorkReport.java` - 投诉实体类
-`PlazaWorkReportLimit.java` - 投诉限制实体类
### DTO
-`PlazaWorkReportDto.java` - 投诉相关DTO
### Mapper
-`PlazaWorkReportMapper.java` - 投诉Mapper接口
-`PlazaWorkReportLimitMapper.java` - 投诉限制Mapper接口
### Service
-`PlazaWorkReportService.java` - 投诉服务接口
-`PlazaWorkReportServiceImpl.java` - 投诉服务实现
### Controller
-`PlazaWorkReportController.java` - 用户端投诉控制器
-`AdminPlazaWorkReportController.java` - 管理员端投诉控制器
### 修改文件
-`PlazaWorkMapper.java` - 更新update方法支持审核状态修改
## 业务流程
### 用户投诉流程
1. 用户选择作品并填写投诉信息
2. 系统检查投诉限制每日10次
3. 系统检查是否重复投诉
4. 系统检查是否投诉自己的作品
5. 创建投诉记录,状态为 `pending`
6. 更新用户投诉计数
### 管理员审核流程
1. 管理员查看待审核投诉列表
2. 管理员查看投诉详情(包含作品信息)
3. 管理员审核投诉:
- **投诉成立**:更新投诉状态为 `approved`,下架作品(修改作品审核状态为 `rejected`,状态改为 `hidden`
- **投诉不成立**:更新投诉状态为 `rejected`
4. 记录审核管理员信息和备注
## 部署步骤
1. **执行数据库脚本**
```sql
source V12__add_plaza_work_report.sql;
```
2. **部署代码**
- 部署所有新增和修改的文件
- 重启应用服务
3. **验证功能**
- 测试用户提交投诉
- 测试投诉限制机制
- 测试管理员审核投诉
- 测试投诉成立后作品下架
## 注意事项
1. **投诉限制**每日最多10次跨天自动重置
2. **防重复投诉**:同一用户对同一作品只能投诉一次
3. **防自投诉**:不能投诉自己发布的作品
4. **作品下架**:投诉成立时,作品审核状态改为 `rejected`,状态改为 `hidden`
5. **审核备注**:管理员审核时必须填写处理备注
## 完成时间
2025-11-14

View File

@@ -70,7 +70,7 @@
boolean isSora2Pro = isSora2ProModel(request.getModelName());
// 使用不同的接口
String requestUrl = isSora2Pro ? apiUrl + "/api/sora2pro/submit" : apiUrl + "/api/sora2/submit";
String requestUrl = isSora2Pro ? apiUrl + "/api/sora2pro/submit" : apiUrl + "/api/sora2-new/submit";
// sora2pro 不需要 size 参数
if (!isSora2Pro) {
@@ -128,7 +128,7 @@ if (!isSora2Pro) {
## 注意事项
1. **接口差异**: sora2pro 使用 `/api/sora2pro/submit`,而 sora2 使用 `/api/sora2/submit`
1. **接口差异**: sora2pro 使用 `/api/sora2pro/submit`,而 sora2 使用 `/api/sora2-new/submit`
2. **参数差异**: sora2pro 不需要 `size` 参数
3. **时长限制**: 25秒只能生成标清15秒支持高清和标清
4. **查询接口**: sora2pro 和 sora2 共用 `/api/sora2/detail` 查询接口

234
docs/tool-service-api.md Normal file
View File

@@ -0,0 +1,234 @@
# 工具服务模块 API 文档
## 概述
工具服务模块提供第三方数据采集工具的调用功能,支持抖音、小红书、微信公众号等平台的数据获取。
## 认证方式
工具接口支持两种认证方式:
### 1. JWT TokenWeb端
登录后自动使用适合Web前端调用。
### 2. API Key开发者
在请求头添加 `Authorization: Bearer {your_api_key}`,适合后端服务或脚本调用。
**获取API Key**
1. 登录系统
2. 进入个人中心 -> API密钥管理
3. 生成API密钥
**调用示例**
```bash
curl -X POST "https://api.1818ai.com/user/tools/call/douyin_user_videos" \
-H "Authorization: Bearer ak_1234567890abcdef1234567890abcdef" \
-H "Content-Type: application/json" \
-d '{"sec_user_id": "MS4wLjABAAAA...", "max_cursor": 0, "count": 20}'
```
## 功能特性
1. **工具配置管理**:管理员可配置每个工具的积分消耗
2. **积分扣除**:用户调用工具时自动扣除积分
3. **调用记录**:完整记录每次工具调用
4. **使用统计**:按天统计每个工具的使用次数
## 数据库表
### tool_config工具配置表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| tool_code | varchar(64) | 工具编码(唯一) |
| tool_name | varchar(128) | 工具名称 |
| category | varchar(32) | 分类douyin/xiaohongshu/wechat_mp |
| api_endpoint | varchar(256) | API端点路径 |
| points_cost | int | 调用消耗积分 |
| is_enabled | tinyint | 是否启用 |
### tool_usage_log调用记录表
| 字段 | 类型 | 说明 |
|------|------|------|
| id | bigint | 主键 |
| usage_no | varchar(64) | 调用流水号 |
| user_id | bigint | 用户ID |
| tool_code | varchar(64) | 工具编码 |
| points_cost | int | 消耗积分 |
| status | varchar(20) | 状态success/failed |
| create_time | datetime | 调用时间 |
### tool_usage_daily_stats每日统计表
| 字段 | 类型 | 说明 |
|------|------|------|
| stats_date | date | 统计日期 |
| tool_code | varchar(64) | 工具编码 |
| total_calls | int | 调用总次数 |
| success_calls | int | 成功次数 |
| total_points_cost | int | 消耗总积分 |
---
## 用户端 API
### 1. 获取工具列表
```
GET /user/tools/list
```
**响应示例:**
```json
{
"code": 200,
"message": "success",
"data": [
{
"toolCode": "douyin_user_videos",
"toolName": "获取用户主页视频",
"category": "douyin",
"description": "根据sec_user_id获取用户发布的视频列表",
"pointsCost": 5
}
]
}
```
### 2. 按分类获取工具
```
GET /user/tools/list/{category}
```
- category: douyin / xiaohongshu / wechat_mp
### 3. 调用工具
```
POST /user/tools/call/{toolCode}
```
**请求示例(抖音获取用户视频):**
```json
{
"sec_user_id": "MS4wLjABAAAAnxkX6qJBxkyBnNhE__dpuYxdNFzihx1UoxfoKKkAlO8",
"max_cursor": 0,
"count": 20
}
```
**响应示例:**
```json
{
"code": 200,
"message": "success",
"data": {
"usageNo": "TU1735789012345ABCD1234",
"pointsCost": 5,
"remainingPoints": 95,
"data": {
"aweme_list": [...],
"max_cursor": 1528366024000,
"has_more": 1
}
}
}
```
### 4. 获取调用记录
```
GET /user/tools/usage/logs?page=1&size=10&toolCode=douyin_user_videos
```
---
## 管理端 API
### 1. 获取所有工具配置
```
GET /admin/tools/configs
```
### 2. 创建工具配置
```
POST /admin/tools/configs
```
**请求示例:**
```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
}
```
### 3. 更新积分消耗
```
PATCH /admin/tools/configs/{id}/points-cost?pointsCost=10
```
### 4. 启用/禁用工具
```
PATCH /admin/tools/configs/{id}/status?isEnabled=0
```
### 5. 获取统计概览
```
GET /admin/tools/stats/info
```
**响应示例:**
```json
{
"code": 200,
"data": {
"totalTools": 8,
"enabledTools": 8,
"todayCalls": 156,
"todayPointsCost": 780
}
}
```
### 6. 获取统计汇总
```
GET /admin/tools/stats/summary?startDate=2026-01-01&endDate=2026-01-02
```
### 7. 获取每日统计
```
GET /admin/tools/stats/daily?startDate=2026-01-01&endDate=2026-01-07&toolCode=douyin_user_videos
```
---
## 配置说明
### application.yml 配置
```yaml
tikhub:
api:
base-url: https://api.tikhub.io
key: YOUR_TIKHUB_API_KEY
```
### 初始化数据库
执行 `src/main/resources/sql/tool_tables.sql` 创建表和初始数据。
---
## 预置工具列表
| 工具编码 | 名称 | 分类 | 积分 |
|---------|------|------|------|
| douyin_user_videos | 获取用户主页视频 | douyin | 5 |
| douyin_video_by_share | 根据分享链接获取视频 | douyin | 3 |
| xiaohongshu_user_notes | 获取用户笔记列表 | xiaohongshu | 5 |
| xiaohongshu_search_notes | 搜索笔记 | xiaohongshu | 5 |
| xiaohongshu_note_detail | 获取笔记详情 | xiaohongshu | 3 |
| wechat_mp_article_list | 获取文章列表 | wechat_mp | 5 |
| wechat_mp_article_json | 获取文章详情(JSON) | wechat_mp | 10 |
| wechat_mp_article_html | 获取文章详情(HTML) | wechat_mp | 100 |