2079 lines
55 KiB
YAML
2079 lines
55 KiB
YAML
basePath: /api/v1
|
||
definitions:
|
||
controllers.SwagAPIResponse:
|
||
properties:
|
||
code:
|
||
description: HTTP状态码
|
||
type: integer
|
||
data:
|
||
description: 响应数据
|
||
msg:
|
||
description: 响应消息
|
||
type: string
|
||
type: object
|
||
controllers.SwagLoginRequest:
|
||
properties:
|
||
password:
|
||
description: 密码
|
||
type: string
|
||
username:
|
||
description: 用户名
|
||
type: string
|
||
type: object
|
||
controllers.SwagRegisterRequest:
|
||
properties:
|
||
flavorType:
|
||
description: 类型
|
||
type: string
|
||
password:
|
||
description: 密码
|
||
type: string
|
||
regionIds:
|
||
description: 区域ID列表
|
||
items:
|
||
type: integer
|
||
type: array
|
||
role:
|
||
description: 角色
|
||
type: string
|
||
username:
|
||
description: 用户名
|
||
type: string
|
||
type: object
|
||
controllers.gatewayPayload:
|
||
properties:
|
||
isSold:
|
||
type: boolean
|
||
location:
|
||
type: string
|
||
mac:
|
||
type: string
|
||
name:
|
||
type: string
|
||
projectType:
|
||
type: string
|
||
regionId:
|
||
type: integer
|
||
soldAt:
|
||
description: SoldAt 是可选字段。如果 IsSold 为 true 且未传此字段,后端自动设为当前时间
|
||
type: string
|
||
type: object
|
||
controllers.kindergartenPayload:
|
||
properties:
|
||
address:
|
||
type: string
|
||
name:
|
||
type: string
|
||
regionId:
|
||
type: integer
|
||
type: object
|
||
controllers.mqttDebugStartRequest:
|
||
properties:
|
||
persistToDatabase:
|
||
type: boolean
|
||
type: object
|
||
controllers.productDefinitionPayload:
|
||
properties:
|
||
category:
|
||
type: string
|
||
code:
|
||
type: string
|
||
description:
|
||
type: string
|
||
isActive:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
parameterSchema:
|
||
type: string
|
||
sort:
|
||
type: integer
|
||
trackSerialNumber:
|
||
type: boolean
|
||
type: object
|
||
controllers.productInventoryPayload:
|
||
properties:
|
||
assetName:
|
||
type: string
|
||
notes:
|
||
type: string
|
||
parameterValues:
|
||
type: string
|
||
productCode:
|
||
type: string
|
||
projectTypeCode:
|
||
type: string
|
||
regionId:
|
||
type: integer
|
||
serialNumber:
|
||
type: string
|
||
soldAt:
|
||
type: string
|
||
soldTargetName:
|
||
type: string
|
||
soldTargetType:
|
||
type: string
|
||
soldTo:
|
||
type: string
|
||
status:
|
||
type: string
|
||
storageLocation:
|
||
type: string
|
||
suiteCode:
|
||
type: string
|
||
suiteId:
|
||
type: integer
|
||
type: object
|
||
controllers.productPrototypePayload:
|
||
properties:
|
||
assetName:
|
||
type: string
|
||
name:
|
||
type: string
|
||
notes:
|
||
type: string
|
||
parameterValues:
|
||
type: string
|
||
productCode:
|
||
type: string
|
||
projectTypeCode:
|
||
type: string
|
||
regionId:
|
||
type: integer
|
||
status:
|
||
type: string
|
||
storageLocation:
|
||
type: string
|
||
type: object
|
||
controllers.productSuitePayload:
|
||
properties:
|
||
code:
|
||
type: string
|
||
inventoryIds:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
name:
|
||
type: string
|
||
notes:
|
||
type: string
|
||
projectTypeCode:
|
||
type: string
|
||
regionId:
|
||
type: integer
|
||
soldTargetName:
|
||
type: string
|
||
soldTargetType:
|
||
type: string
|
||
type: object
|
||
controllers.projectTypePayload:
|
||
properties:
|
||
code:
|
||
type: string
|
||
description:
|
||
type: string
|
||
isActive:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
sort:
|
||
type: integer
|
||
supportsGateway:
|
||
type: boolean
|
||
type: object
|
||
controllers.trainingSessionRequest:
|
||
properties:
|
||
age:
|
||
type: integer
|
||
aiResult:
|
||
type: string
|
||
appName:
|
||
type: string
|
||
duration:
|
||
type: integer
|
||
endTime:
|
||
type: integer
|
||
evaluation:
|
||
type: string
|
||
gender:
|
||
type: string
|
||
isStart:
|
||
type: boolean
|
||
maxHeartRate:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
peopleNum:
|
||
type: integer
|
||
regionId:
|
||
type: integer
|
||
runType:
|
||
type: string
|
||
testTime:
|
||
type: integer
|
||
tid:
|
||
type: integer
|
||
time:
|
||
type: integer
|
||
type: object
|
||
controllers.userAdminPayload:
|
||
properties:
|
||
email:
|
||
type: string
|
||
flavorType:
|
||
$ref: '#/definitions/models.UserFlavorType'
|
||
isActive:
|
||
type: boolean
|
||
password:
|
||
type: string
|
||
phone:
|
||
type: string
|
||
regionIds:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
revokeTokens:
|
||
type: boolean
|
||
role:
|
||
$ref: '#/definitions/models.UserRole'
|
||
username:
|
||
type: string
|
||
type: object
|
||
models.UserFlavorType:
|
||
enum:
|
||
- all
|
||
- flink
|
||
- full
|
||
- light
|
||
- heartrate
|
||
- run50
|
||
type: string
|
||
x-enum-varnames:
|
||
- UserFlavorAll
|
||
- UserFlavorFlink
|
||
- UserFlavorFull
|
||
- UserFlavorLight
|
||
- UserFlavorHeartRate
|
||
- UserFlavorRun50
|
||
models.UserRole:
|
||
enum:
|
||
- super_admin
|
||
- region_admin
|
||
- operator
|
||
- viewer
|
||
type: string
|
||
x-enum-varnames:
|
||
- UserRoleSuperAdmin
|
||
- UserRoleRegionAdmin
|
||
- UserRoleOperator
|
||
- UserRoleViewer
|
||
host: localhost:8081
|
||
info:
|
||
contact: {}
|
||
description: 智能心率采集分析平台后端服务,基于 Gin 框架,提供心率采集、AI 分析、教案管理、设备管理等功能
|
||
title: 智能心率采集分析平台 API
|
||
version: "1.0"
|
||
paths:
|
||
/admin/gateways:
|
||
get:
|
||
description: 查询网关列表,支持关键词/售出状态/项目类型/区域筛选。超级管理员可查全部,操作员只能查所属区域
|
||
parameters:
|
||
- description: 关键词(名称/MAC模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 售出状态
|
||
in: query
|
||
name: isSold
|
||
type: boolean
|
||
- description: 项目类型
|
||
in: query
|
||
name: projectType
|
||
type: string
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取网关列表
|
||
tags:
|
||
- 网关管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的网关记录,自动同步到产品库存
|
||
parameters:
|
||
- description: 网关信息
|
||
in: body
|
||
name: gateway
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.gatewayPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: MAC地址已存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建网关
|
||
tags:
|
||
- 网关管理
|
||
/admin/gateways/{id}:
|
||
delete:
|
||
description: 删除指定网关(已售出的网关禁止删除),自动同步删除产品库存
|
||
parameters:
|
||
- description: 网关ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"403":
|
||
description: 已售出无法删除
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 网关不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除网关
|
||
tags:
|
||
- 网关管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定网关的详细信息,自动同步到产品库存
|
||
parameters:
|
||
- description: 网关ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: gateway
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.gatewayPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 网关不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新网关信息
|
||
tags:
|
||
- 网关管理
|
||
/admin/kindergartens:
|
||
get:
|
||
description: 查询幼儿园列表,支持按名称/地址模糊搜索
|
||
parameters:
|
||
- description: 关键词(名称/地址模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取幼儿园列表
|
||
tags:
|
||
- 幼儿园管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的幼儿园记录
|
||
parameters:
|
||
- description: 幼儿园信息
|
||
in: body
|
||
name: kindergarten
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.kindergartenPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建幼儿园
|
||
tags:
|
||
- 幼儿园管理
|
||
/admin/kindergartens/{id}:
|
||
delete:
|
||
description: 删除指定幼儿园,如果被用户绑定则无法删除
|
||
parameters:
|
||
- description: 幼儿园ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 幼儿园不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: 已绑定用户无法删除
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除幼儿园
|
||
tags:
|
||
- 幼儿园管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定幼儿园的名称、地址和区域
|
||
parameters:
|
||
- description: 幼儿园ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: kindergarten
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.kindergartenPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 幼儿园不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新幼儿园信息
|
||
tags:
|
||
- 幼儿园管理
|
||
/admin/product-definitions:
|
||
get:
|
||
description: 查询产品定义列表,支持按关键词/分类/启用状态筛选
|
||
parameters:
|
||
- description: 关键词(代码/名称/描述模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 分类筛选
|
||
in: query
|
||
name: category
|
||
type: string
|
||
- description: 是否启用
|
||
in: query
|
||
name: isActive
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取产品定义列表
|
||
tags:
|
||
- 产品定义管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的产品定义
|
||
parameters:
|
||
- description: 产品定义信息
|
||
in: body
|
||
name: productDefinition
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productDefinitionPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建产品定义
|
||
tags:
|
||
- 产品定义管理
|
||
/admin/product-definitions/{id}:
|
||
delete:
|
||
description: 删除指定产品定义(被库存或模板引用的无法删除)
|
||
parameters:
|
||
- description: 产品定义ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 产品定义不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: 已被引用无法删除
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除产品定义
|
||
tags:
|
||
- 产品定义管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定产品定义的信息
|
||
parameters:
|
||
- description: 产品定义ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: productDefinition
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productDefinitionPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 产品定义不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新产品定义
|
||
tags:
|
||
- 产品定义管理
|
||
/admin/product-inventories:
|
||
get:
|
||
description: 查询产品库存列表,支持多条件筛选
|
||
parameters:
|
||
- description: 关键词(资产名称/序列号/购买方等模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 产品代码筛选
|
||
in: query
|
||
name: productCode
|
||
type: string
|
||
- description: 项目类型代码筛选
|
||
in: query
|
||
name: projectTypeCode
|
||
type: string
|
||
- description: 套件代码筛选
|
||
in: query
|
||
name: suiteCode
|
||
type: string
|
||
- description: 状态筛选
|
||
in: query
|
||
name: status
|
||
type: string
|
||
- description: 购买方类型筛选
|
||
in: query
|
||
name: soldTargetType
|
||
type: string
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取产品库存列表
|
||
tags:
|
||
- 产品库存管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的产品库存记录
|
||
parameters:
|
||
- description: 库存信息
|
||
in: body
|
||
name: inventory
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productInventoryPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建产品库存记录
|
||
tags:
|
||
- 产品库存管理
|
||
/admin/product-inventories/{id}:
|
||
delete:
|
||
description: 删除指定产品库存记录(已售出的无法删除)
|
||
parameters:
|
||
- description: 库存ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 库存记录不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: 已售出无法删除
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除产品库存
|
||
tags:
|
||
- 产品库存管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定产品库存记录
|
||
parameters:
|
||
- description: 库存ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: inventory
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productInventoryPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 库存记录不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新产品库存
|
||
tags:
|
||
- 产品库存管理
|
||
/admin/product-prototypes:
|
||
get:
|
||
description: 查询产品原型列表,支持按关键词/产品代码/项目类型筛选
|
||
parameters:
|
||
- description: 关键词(名称/备注模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 产品代码筛选
|
||
in: query
|
||
name: productCode
|
||
type: string
|
||
- description: 项目类型代码筛选
|
||
in: query
|
||
name: projectTypeCode
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取产品原型列表
|
||
tags:
|
||
- 产品原型管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的产品原型
|
||
parameters:
|
||
- description: 产品原型信息
|
||
in: body
|
||
name: productPrototype
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productPrototypePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建产品原型
|
||
tags:
|
||
- 产品原型管理
|
||
/admin/product-prototypes/{id}:
|
||
delete:
|
||
description: 删除指定产品原型
|
||
parameters:
|
||
- description: 产品原型ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 产品原型不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除产品原型
|
||
tags:
|
||
- 产品原型管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定产品原型的信息
|
||
parameters:
|
||
- description: 产品原型ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: productPrototype
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productPrototypePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 产品原型不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新产品原型
|
||
tags:
|
||
- 产品原型管理
|
||
/admin/product-suites:
|
||
get:
|
||
description: 查询产品套件列表,含套件下的库存明细
|
||
parameters:
|
||
- description: 关键词(代码/名称/备注模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 项目类型代码筛选
|
||
in: query
|
||
name: projectTypeCode
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取产品套件列表
|
||
tags:
|
||
- 产品套件管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的产品套件,可选关联库存记录
|
||
parameters:
|
||
- description: 套件信息
|
||
in: body
|
||
name: suite
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productSuitePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建产品套件
|
||
tags:
|
||
- 产品套件管理
|
||
/admin/product-suites/{id}:
|
||
delete:
|
||
description: 删除指定产品套件,自动解除关联库存的绑定
|
||
parameters:
|
||
- description: 套件ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 套件不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除产品套件
|
||
tags:
|
||
- 产品套件管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定产品套件的信息和关联库存
|
||
parameters:
|
||
- description: 套件ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: suite
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.productSuitePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 套件不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新产品套件
|
||
tags:
|
||
- 产品套件管理
|
||
/admin/project-product-templates:
|
||
get:
|
||
description: 查询项目产品模板列表,含项目类型和产品名称
|
||
parameters:
|
||
- description: 项目类型代码筛选
|
||
in: query
|
||
name: projectTypeCode
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取项目产品模板列表
|
||
tags:
|
||
- 项目产品模板管理
|
||
/admin/project-types:
|
||
get:
|
||
description: 查询项目类型列表,支持按关键词/是否支持网关/是否启用筛选
|
||
parameters:
|
||
- description: 关键词(代码/名称/描述模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 是否支持网关
|
||
in: query
|
||
name: supportsGateway
|
||
type: boolean
|
||
- description: 是否启用
|
||
in: query
|
||
name: isActive
|
||
type: boolean
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取项目类型列表
|
||
tags:
|
||
- 项目类型管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的项目类型
|
||
parameters:
|
||
- description: 项目类型信息
|
||
in: body
|
||
name: projectType
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.projectTypePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建项目类型
|
||
tags:
|
||
- 项目类型管理
|
||
/admin/project-types/{id}:
|
||
delete:
|
||
description: 删除指定项目类型(被网关引用的无法删除)
|
||
parameters:
|
||
- description: 项目类型ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 项目类型不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: 已被网关引用无法删除
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除项目类型
|
||
tags:
|
||
- 项目类型管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定项目类型的信息
|
||
parameters:
|
||
- description: 项目类型ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: projectType
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.projectTypePayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 项目类型不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新项目类型
|
||
tags:
|
||
- 项目类型管理
|
||
/admin/statistics/ai-analysis:
|
||
get:
|
||
description: 按区域统计AI分析的使用情况,包括调用次数、Token消耗、费用等
|
||
parameters:
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
- description: 开始时间(毫秒时间戳)
|
||
in: query
|
||
name: startTime
|
||
type: integer
|
||
- description: 结束时间(毫秒时间戳)
|
||
in: query
|
||
name: endTime
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: AI分析区域统计
|
||
tags:
|
||
- 统计管理
|
||
/admin/statistics/ai-analysis-records:
|
||
get:
|
||
description: 分页查询AI分析记录,支持按区域和时间范围筛选
|
||
parameters:
|
||
- description: 页码(默认1)
|
||
in: query
|
||
name: pageNum
|
||
type: integer
|
||
- description: 每页数量(默认10,最大100)
|
||
in: query
|
||
name: pageSize
|
||
type: integer
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
- description: 开始时间(毫秒时间戳)
|
||
in: query
|
||
name: startTime
|
||
type: integer
|
||
- description: 结束时间(毫秒时间戳)
|
||
in: query
|
||
name: endTime
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取AI分析记录列表
|
||
tags:
|
||
- 统计管理
|
||
/admin/statistics/ai-analysis-records/{id}:
|
||
delete:
|
||
description: 删除指定的AI分析记录
|
||
parameters:
|
||
- description: 记录ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 记录不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除AI分析记录
|
||
tags:
|
||
- 统计管理
|
||
/admin/statistics/ai-analysis-timeline:
|
||
get:
|
||
description: 按日期统计AI分析的使用情况趋势,含总体和分区域数据
|
||
parameters:
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
- description: 开始时间(毫秒时间戳)
|
||
in: query
|
||
name: startTime
|
||
type: integer
|
||
- description: 结束时间(毫秒时间戳)
|
||
in: query
|
||
name: endTime
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: AI分析时间线统计
|
||
tags:
|
||
- 统计管理
|
||
/admin/statistics/mqtt-training-sessions:
|
||
get:
|
||
description: 按区域统计MQTT训练会话情况,包括开始、结束、完成、进行中的会话数
|
||
parameters:
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
- description: 类型筛选
|
||
in: query
|
||
name: flavorType
|
||
type: string
|
||
- description: 开始时间(毫秒时间戳)
|
||
in: query
|
||
name: startTime
|
||
type: integer
|
||
- description: 结束时间(毫秒时间戳)
|
||
in: query
|
||
name: endTime
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 训练会话区域统计
|
||
tags:
|
||
- 统计管理
|
||
/admin/system-debug/mqtt/start:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 启动MQTT调试服务
|
||
parameters:
|
||
- description: 是否持久化到数据库
|
||
in: body
|
||
name: persist
|
||
schema:
|
||
$ref: '#/definitions/controllers.mqttDebugStartRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 启动成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 启动MQTT调试
|
||
tags:
|
||
- 系统调试
|
||
/admin/system-debug/mqtt/status:
|
||
get:
|
||
description: 获取MQTT调试服务的当前运行状态
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取MQTT调试状态
|
||
tags:
|
||
- 系统调试
|
||
/admin/system-debug/mqtt/stop:
|
||
post:
|
||
description: 停止MQTT调试服务
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 停止成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 停止MQTT调试
|
||
tags:
|
||
- 系统调试
|
||
/admin/system-debug/mqtt/ws:
|
||
get:
|
||
description: 通过WebSocket实时监听MQTT消息(需要SuperAdmin权限)
|
||
parameters:
|
||
- description: JWT Token
|
||
in: query
|
||
name: token
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"101":
|
||
description: 切换为WebSocket协议
|
||
summary: MQTT WebSocket连接
|
||
tags:
|
||
- 系统调试
|
||
/admin/users:
|
||
get:
|
||
description: 查询系统用户列表,支持按关键词/角色/类型筛选
|
||
parameters:
|
||
- description: 关键词(用户名/邮箱/手机号模糊搜索)
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 角色筛选
|
||
in: query
|
||
name: role
|
||
type: string
|
||
- description: 类型筛选
|
||
in: query
|
||
name: flavorType
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取用户列表
|
||
tags:
|
||
- 用户管理
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 创建新的系统用户
|
||
parameters:
|
||
- description: 用户信息
|
||
in: body
|
||
name: user
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.userAdminPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 创建成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建用户
|
||
tags:
|
||
- 用户管理
|
||
/admin/users/{id}:
|
||
delete:
|
||
description: 删除指定用户(不能删除admin账号和当前登录用户)
|
||
parameters:
|
||
- description: 用户ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 无法删除受保护账号
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 用户不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除用户
|
||
tags:
|
||
- 用户管理
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 更新指定用户的详细信息,支持重置密码和吊销Token
|
||
parameters:
|
||
- description: 用户ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: 更新信息
|
||
in: body
|
||
name: user
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.userAdminPayload'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 更新成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 用户不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 更新用户信息
|
||
tags:
|
||
- 用户管理
|
||
/gateways/by-mac:
|
||
get:
|
||
description: 根据MAC地址查询网关信息(支持格式兼容:带冒号/横线/纯数字)
|
||
parameters:
|
||
- description: MAC地址
|
||
in: query
|
||
name: mac
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: MAC参数为空
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 未找到该网关
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 按MAC查询网关
|
||
tags:
|
||
- 网关管理
|
||
/lesson-plans:
|
||
get:
|
||
description: 获取教案文件列表(非分页),按创建时间倒序
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取教案列表
|
||
tags:
|
||
- 教案管理
|
||
/lesson-plans/{id}:
|
||
delete:
|
||
description: 删除教案文件及其关联的分享码
|
||
parameters:
|
||
- description: 教案ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 删除成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"403":
|
||
description: 无权限
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 文件不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 删除教案文件
|
||
tags:
|
||
- 教案管理
|
||
/lesson-plans/{id}/download:
|
||
get:
|
||
description: 通过ID下载教案文件,自动更新下载计数和最后下载时间
|
||
parameters:
|
||
- description: 教案ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/octet-stream
|
||
responses:
|
||
"200":
|
||
description: 教案文件
|
||
schema:
|
||
type: file
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"403":
|
||
description: 无权限
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 文件不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 下载教案文件
|
||
tags:
|
||
- 教案管理
|
||
/lesson-plans/{id}/share-code:
|
||
post:
|
||
description: 为教案文件生成6位数字分享码,有效期5分钟,每次生成会失效之前的分享码
|
||
parameters:
|
||
- description: 教案ID
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 生成成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"403":
|
||
description: 无权限
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 文件不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 生成分享码
|
||
tags:
|
||
- 教案管理
|
||
/lesson-plans/page:
|
||
get:
|
||
description: 分页获取教案文件列表,支持文件名模糊搜索、上传者搜索、区域筛选、排序
|
||
parameters:
|
||
- description: 页码(默认1)
|
||
in: query
|
||
name: pageNum
|
||
type: integer
|
||
- description: 每页数量(默认10,最大100)
|
||
in: query
|
||
name: pageSize
|
||
type: integer
|
||
- description: 文件名模糊搜索
|
||
in: query
|
||
name: keyword
|
||
type: string
|
||
- description: 上传者名模糊搜索
|
||
in: query
|
||
name: uploaderName
|
||
type: string
|
||
- description: 区域ID
|
||
in: query
|
||
name: regionId
|
||
type: integer
|
||
- description: '排序字段: file_size | created_at'
|
||
in: query
|
||
name: sortBy
|
||
type: string
|
||
- description: '排序方向: asc | desc'
|
||
in: query
|
||
name: sortOrder
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 分页查询教案
|
||
tags:
|
||
- 教案管理
|
||
/lesson-plans/share/{code}/download:
|
||
get:
|
||
description: 通过6位分享码下载教案文件(无需认证)
|
||
parameters:
|
||
- description: 6位分享码
|
||
in: path
|
||
name: code
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/octet-stream
|
||
responses:
|
||
"200":
|
||
description: 教案文件
|
||
schema:
|
||
type: file
|
||
"400":
|
||
description: 分享码无效
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 分享码过期或不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 通过分享码下载教案
|
||
tags:
|
||
- 教案管理
|
||
/lesson-plans/upload:
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: 上传 .docx 格式的教案文件,支持MD5去重,最大10MB
|
||
parameters:
|
||
- description: 教案文件(.docx)
|
||
in: formData
|
||
name: file
|
||
required: true
|
||
type: file
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 上传成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: 文件已存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 上传教案文件
|
||
tags:
|
||
- 教案管理
|
||
/login:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 用户名密码登录,返回JWT Token和用户信息
|
||
parameters:
|
||
- description: 登录信息
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagLoginRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 登录成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 用户名或密码错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"403":
|
||
description: 用户已禁用
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 用户登录
|
||
tags:
|
||
- 认证
|
||
/register:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 注册新用户,返回JWT Token
|
||
parameters:
|
||
- description: 注册信息
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagRegisterRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 注册成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"409":
|
||
description: 用户名已存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 用户注册
|
||
tags:
|
||
- 认证
|
||
/step:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 接收并保存踏步训练记录,包含心率和步频数据,异步计算回归结果
|
||
parameters:
|
||
- description: 踏步训练记录
|
||
in: body
|
||
name: record
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 保存成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 创建踏步训练记录
|
||
tags:
|
||
- 踏步训练
|
||
/step/train-data/{trainId}:
|
||
get:
|
||
description: 根据训练ID获取踏步训练的详细信息,包含心率和步频数据
|
||
parameters:
|
||
- description: 训练ID
|
||
in: path
|
||
name: trainId
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"404":
|
||
description: 训练记录不存在
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取踏步训练详情
|
||
tags:
|
||
- 踏步训练
|
||
/step/train-rank/{trainId}:
|
||
get:
|
||
description: 根据训练ID和回归类型获取训练排名
|
||
parameters:
|
||
- description: 训练ID
|
||
in: path
|
||
name: trainId
|
||
required: true
|
||
type: integer
|
||
- description: '回归类型: 1=线性回归 | 3=二次回归'
|
||
in: query
|
||
name: type
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取训练排名
|
||
tags:
|
||
- 踏步训练
|
||
/step/train-records:
|
||
get:
|
||
description: 分页获取当前用户的踏步训练记录,按开始时间倒序
|
||
parameters:
|
||
- description: 页码(默认1)
|
||
in: query
|
||
name: pageNum
|
||
type: integer
|
||
- description: 每页数量(默认10,最大100)
|
||
in: query
|
||
name: pageSize
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"401":
|
||
description: 未认证
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
security:
|
||
- BearerAuth: []
|
||
summary: 获取踏步训练记录列表
|
||
tags:
|
||
- 踏步训练
|
||
/train-records:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 接收并保存训练记录及心率数据,支持重复上传(按train_id去重更新)
|
||
parameters:
|
||
- description: 训练记录数据
|
||
in: body
|
||
name: record
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: 保存成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 创建训练记录
|
||
tags:
|
||
- 训练管理
|
||
/train-records/analysis:
|
||
get:
|
||
description: 对历史心率数据进行统计分析和正态分布曲线拟合
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 分析成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 数据量不足
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 心率曲线分析
|
||
tags:
|
||
- 训练管理
|
||
/train-records/analysis-by-ai:
|
||
post:
|
||
consumes:
|
||
- multipart/form-data
|
||
description: 上传心率CSV和教案文件,通过AI生成课堂分析报告,支持流式和非流式输出
|
||
parameters:
|
||
- description: 心率数据CSV文件
|
||
in: formData
|
||
name: heart_rate_data
|
||
required: true
|
||
type: file
|
||
- description: 步数数据CSV文件(analysis_type为heart_rate_with_steps时必填)
|
||
in: formData
|
||
name: step_data
|
||
type: file
|
||
- description: 教案DOCX文件(teaching_plan_source为upload/wechat时必填)
|
||
in: formData
|
||
name: teaching_plan
|
||
type: file
|
||
- description: '分析类型: heart_rate_only(默认) | heart_rate_with_steps'
|
||
in: formData
|
||
name: analysis_type
|
||
type: string
|
||
- description: '教案来源: upload(默认) | cloud | wechat'
|
||
in: formData
|
||
name: teaching_plan_source
|
||
type: string
|
||
- description: 区域ID
|
||
in: formData
|
||
name: regionid
|
||
type: string
|
||
- description: 训练ID
|
||
in: formData
|
||
name: trainid
|
||
type: string
|
||
- description: 云端教案ID(teaching_plan_source=cloud时必填)
|
||
in: formData
|
||
name: lesson_plan_id
|
||
type: string
|
||
- description: '是否流式输出: true | false'
|
||
in: formData
|
||
name: stream
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 分析成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: AI分析
|
||
tags:
|
||
- AI分析
|
||
/train-records/cloud-files:
|
||
get:
|
||
description: 获取所有云端教案文件列表
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 查询成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 获取云端教案列表
|
||
tags:
|
||
- 训练管理
|
||
/train-records/session:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 上传训练开始/结束会话,用于MQTT训练会话追踪
|
||
parameters:
|
||
- description: 训练会话数据
|
||
in: body
|
||
name: session
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/controllers.trainingSessionRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 操作成功
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
"400":
|
||
description: 请求参数错误
|
||
schema:
|
||
$ref: '#/definitions/controllers.SwagAPIResponse'
|
||
summary: 上传训练会话
|
||
tags:
|
||
- 训练管理
|
||
securityDefinitions:
|
||
BearerAuth:
|
||
in: header
|
||
name: Authorization
|
||
type: apiKey
|
||
swagger: "2.0"
|