API 接口文档

侠客网校 Web 系统 — 基础地址: http://127.0.0.1:3000

← 返回首页

1. 文件上传

POST /api/upload

上传文件到七牛云,并写入 oa_new.mdl_sum_attachment 附件表。

请求方式: multipart/form-data

参数名类型必填说明
fileFile要上传的文件

cURL 示例:

curl -X POST http://127.0.0.1:3000/api/upload \
  -F "file=@/path/to/image.jpg"

响应成功:

{
  "success": true,
  "url": "https://qiniu.htknow.com/115788_xxx.jpg",
  "id": 12345,
  "error": null
}

响应失败:

{
  "success": false,
  "url": null,
  "id": null,
  "error": "上传失败,无法获取远程URL"
}
支持格式: jpg, png, gif, bmp, webp, pdf, doc, docx, xls, xlsx, txt, mp4, avi, mov 等。最大 2GB。

2. 上传并更新业务表

POST /api/upload_to_table

上传文件到七牛云 + 写附件表 + 根据文件名自动更新业务表的 picture 字段。

文件名规则: {表名}-{id}.{后缀}

文件名示例解析结果执行操作
edu_video_course-16.png表: edu_video_course, id: 16UPDATE edu_video_course SET picture='新URL' WHERE id=16
edu_video_course-88.jpg表: edu_video_course, id: 88UPDATE edu_video_course SET picture='新URL' WHERE id=88
random_photo.jpg不匹配规则仅上传,不更新业务表

安全校验:

cURL 示例:

curl -X POST http://127.0.0.1:3000/api/upload_to_table \
  -F "file=@/path/to/edu_video_course-16.png"

响应成功 (匹配规则):

{
  "success": true,
  "url": "https://qiniu.htknow.com/115788_xxx.png",
  "id": 12345,
  "table_updated": true,
  "msg": "已更新 edu_video_course 表 id=16 的 picture 字段"
}

响应成功 (不匹配规则):

{
  "success": true,
  "url": "https://qiniu.htknow.com/115788_xxx.jpg",
  "id": 12346,
  "table_updated": false,
  "msg": "文件名不符合tablename-id.ext格式,未更新业务表"
}
只修改 picture 字段,不影响其他字段。数据库: zhixue_bt

3. URL上传

POST /api/upload_url

输入网络图片/文件地址,下载后上传到七牛云。

请求体 (JSON):

字段类型必填说明
urlstring网络文件地址

cURL 示例:

curl -X POST http://127.0.0.1:3000/api/upload_url \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/image.png"}'

响应: 同文件上传接口。

4. 上传历史

GET /api/upload/history

获取上传历史记录(分页)。

参数类型默认值说明
pageint1页码
page_sizeint20每页条数
keywordstring按文件名搜索

cURL 示例:

curl "http://127.0.0.1:3000/api/upload/history?page=1&page_size=10&keyword=edu"

响应:

{
  "total": 100,
  "list": [
    {
      "id": 1,
      "name": "edu_video_course-16.png",
      "url": "https://qiniu.htknow.com/...",
      "size": 123456,
      "create_time_str": "2026-07-23 16:02:30"
    }
  ]
}

5. 课程列表管理

GET /api/course_list/json

获取所有课程列表。

POST /api/course_list/update

更新单个课程的课时数。

字段类型说明
idstring课程ID
countint新的课时数

POST /api/course_list/batch_update

批量更新课程课时数。

{
  "updates": [
    {"id": "1", "count": 10},
    {"id": "2", "count": 20}
  ]
}

POST /api/course_list/create

创建新课程。

{
  "name": "课程名称",
  "srcid": "源课程ID",
  "id": "目标ID",
  "count": 0
}

POST /api/course_list/delete

删除课程。

{"id": "课程ID"}

6. 课时管理

GET /api/course/<course_id>/sections

获取指定课程的课时列表。

POST /api/section/status

更新课时状态。

{"id": 课时ID, "status": 新状态}

7. 网盘任务

GET /api/pan_26_xiake/tasks

获取网盘任务列表。

POST /api/pan_26_xiake/run

执行网盘同步任务(异步)。

{
  "task_ids": ["task1", "task2"]   // 可选,不传则执行全部
}

返回 {"task_id": "xxx"},用 task_id 查询状态。

GET /api/pan_26_xiake/status/<task_id>

查询任务执行状态。

GET /api/pan_26_xiake/logs/<task_id>

获取任务实时日志 (text/plain)。

8. 复制免费课程

POST /api/copy_free_course/run

将源课程复制到目标课程(异步)。

{
  "course_ids": ["课程ID1", "课程ID2"]   // 可选
}

GET /api/copy_free_course/status/<task_id>

查询复制任务状态。

9. 企微标签同步

POST /api/wxwork_tag/sync

同步企业微信标签到数据库(异步)。

GET /api/wxwork_tag/status/<task_id>

查询同步任务状态。

10. 页面路由

URL说明
/首页 — 功能导航
/upload.html图床上传页面
/course_list.html课程列表管理
/pan_26_xiake.html侠客网盘任务
/copy_free_course.html复制免费课程
/api_docs.html本页面 — 接口文档