极客场馆 极客场馆
← 回到开发者文档

课程·排课·场地接口

课程清单(course:read)、排课清单 / 教练排课 / 场地与场地使用情况(schedule:read)。

极客场馆开放平台 · 课程 / 排课 / 场地接口

版本 v1 · 配套文档:加密与签名接入 · 通用约定与错误码 所有路径前缀 https://www.gymker.com/api/open/v1。响应/错误码/幂等/限流见通用约定


1. 能力总览

能力scope典型用途
课程清单course:read同步门店课程产品目录
排课清单(团课 + 小班)schedule:read拉某时段课表
教练排课情况(私教 1:1)schedule:read看教练排期与负荷
场地(教室)清单schedule:read同步场地基础信息
场地使用情况schedule:read看某时段各场地课次占用

每个 AppId 只对应一家门店,所有接口自动按该门店过滤。排课与场地使用按课次时间 startTime 过滤。


2. 课程清单 · GET /courses

门店课程产品目录(产品定义)。scope course:read

Query类型必填说明
businessTypestringPRIVATE / SMALL_CLASS / GROUP / MEMBERSHIP
statusint0 停用 / 1 启用
page / sizeint默认 1 / 20,size ≤ 100
{
  "id": 301, "businessType": "GROUP", "productCode": "GRP-001",
  "productName": "燃脂团课", "color": "#FF6A00",
  "maxCapacity": 20, "defaultClassroomId": 11,
  "status": 1, "sortOrder": 1,
  "createTime": "2026-01-10T10:00:00", "updateTime": "2026-03-01T09:00:00"
}

3. 排课清单 · GET /schedules

团课 + 小班课次,统一列表 + scheduleType 字段,按课次时间排序。私教 1:1 排课见 §4。scope schedule:read

Query类型必填说明
startDate / endDateyyyy-MM-ddstartTime 过滤,跨度 ≤ 90 天
scheduleTypestring不传查全部;group(团课)/ small(小班)
coachStaffIdlong按教练过滤
page / sizeint默认 1 / 20,size ≤ 100
{
  "scheduleType": "group", "id": 88001, "courseName": "燃脂团课",
  "coachStaffId": 5001, "coachName": "李教练", "classroomId": 11,
  "startTime": "2026-05-22T10:00:00", "endTime": "2026-05-22T11:00:00",
  "durationMinutes": 60, "capacity": 20, "bookedCount": 15,
  "status": 1, "settleStatus": 1, "createTime": "2026-05-01T09:00:00"
}

status / settleStatus 各类型字典不同,原样透出(settleStatus:0 待确认 / 1 有效 / 2 作废)。capacity 团课取最终容量,小班取计划容量。


4. 教练排课情况 · GET /coach-schedules

私教 1:1 排课(coach_course_schedule),按课次时间排序。scope schedule:read

Query类型必填说明
startDate / endDateyyyy-MM-ddstartTime 过滤,跨度 ≤ 90 天
coachStaffIdlong不传查全店教练
page / sizeint默认 1 / 20,size ≤ 100
{
  "id": 90001, "coachStaffId": 5001, "coachName": "李教练",
  "memberId": 12345, "courseTypeId": 301, "classroomId": 11,
  "startTime": "2026-05-22T14:00:00", "endTime": "2026-05-22T15:00:00",
  "durationMins": 60, "status": 2,
  "confirmTime": "2026-05-20T10:00:00", "cancelTime": null,
  "createTime": "2026-05-20T09:58:00"
}

status:0 待分配 / 1 待确认 / 2 已确认 / 3 已完成 / 4 已取消 / 5 已拒绝。


5. 场地(教室)清单 · GET /venues

门店教室基础信息(classroom_config)。scope schedule:readdata 为数组:

[
  { "id": 11, "classroomName": "团操房", "maxCapacity": 30,
    "status": 1, "sortOrder": 1, "remark": null,
    "createTime": "2026-01-10T10:00:00" }
]

6. 场地使用情况 · GET /venues/usage

按教室聚合某时段内的课次占用,跨团课 + 小班 + 私教(排除已取消课次)。scope schedule:read

Query类型必填说明
startDate / endDateyyyy-MM-ddstartTime 过滤,跨度 ≤ 90 天

data 为数组(按课次数倒序);classroomId=null 行代表开放场地 / 未指定教室的课次:

[
  { "classroomId": 11, "classroomName": "团操房",
    "sessionCount": 42, "totalMinutes": 2520,
    "groupCount": 30, "smallCount": 8, "privateCount": 4 },
  { "classroomId": null, "classroomName": null,
    "sessionCount": 12, "totalMinutes": 720,
    "groupCount": 0, "smallCount": 0, "privateCount": 12 }
]