{
  "openapi": "3.0.1",
  "info": {
    "title": "默认模块",
    "description": "由《英吉多康健大屏设备用户系统对接文档》整理生成的 OpenAPI 3.1 规范（JSON）。\n\n注意：原文档部分接口的请求/返回字段在 PDF 中展示不完整（如 /userLoginResult 返回字段、分页参数等）。本规范在不确定处做了“最小可用”建模，并用 description 标注了“可能需要对齐原厂”。",
    "version": "1.0.0"
  },
  "tags": [
    {
      "name": "商户后台"
    },
    {
      "name": "商户后台/登录"
    },
    {
      "name": "商户后台/角色管理"
    },
    {
      "name": "商户后台/账号管理"
    },
    {
      "name": "商户后台/用户管理"
    },
    {
      "name": "商户后台/食物成分"
    },
    {
      "name": "商户后台/菜品管理"
    },
    {
      "name": "商户后台/运动习惯"
    },
    {
      "name": "商户后台/体重管理"
    },
    {
      "name": "商户后台/健康状态"
    },
    {
      "name": "商户后台/营养目标"
    },
    {
      "name": "商户后台/膳食营养调查"
    },
    {
      "name": "商户后台/膳食营养调查/营养素缺乏调查"
    },
    {
      "name": "商户后台/膳食营养调查/膳食习惯调查"
    },
    {
      "name": "商户后台/膳食营养调查/食物敏感不耐受调查"
    },
    {
      "name": "商户后台/膳食营养调查/膳食摄入调查"
    },
    {
      "name": "商户后台/配置参数设置"
    },
    {
      "name": "商户后台/运动营养品方案"
    },
    {
      "name": "商户后台/用户反馈"
    },
    {
      "name": "商户后台/国防科技大学"
    },
    {
      "name": "商户终端"
    },
    {
      "name": "商户终端/登录"
    },
    {
      "name": "商户终端/身份识别"
    },
    {
      "name": "商户终端/菜品识别"
    },
    {
      "name": "商户终端/营养统计"
    },
    {
      "name": "商户终端/菜品学习"
    },
    {
      "name": "商户终端/人脸管理"
    },
    {
      "name": "商户终端/评估建议"
    },
    {
      "name": "商户终端/营养分析"
    },
    {
      "name": "商户终端/设备管理"
    },
    {
      "name": "超管后台"
    },
    {
      "name": "超管后台/登录"
    },
    {
      "name": "超管后台/菜单管理"
    },
    {
      "name": "超管后台/商户管理"
    },
    {
      "name": "超管后台/设备管理"
    },
    {
      "name": "AI运动营养师"
    },
    {
      "name": "AI运动营养师/用户认证模块"
    },
    {
      "name": "AI运动营养师/用户认证模块/验证流程"
    },
    {
      "name": "AI运动营养师/用户认证模块/登录"
    },
    {
      "name": "AI运动营养师/用户认证模块/微信小程序登录态恢复"
    },
    {
      "name": "AI运动营养师/用户认证模块/H5免登"
    },
    {
      "name": "AI运动营养师/首页"
    },
    {
      "name": "AI运动营养师/首页/首页总览及日历"
    },
    {
      "name": "AI运动营养师/首页/早餐及早加餐、菜品营养"
    },
    {
      "name": "AI运动营养师/首页/营养单日及阶段报告"
    },
    {
      "name": "AI运动营养师/我的"
    },
    {
      "name": "AI运动营养师/我的/基本信息"
    },
    {
      "name": "AI运动营养师/我的/运动数据"
    },
    {
      "name": "AI运动营养师/我的/体重管理"
    },
    {
      "name": "AI运动营养师/我的/体脂秤"
    },
    {
      "name": "AI运动营养师/我的/健康建议"
    },
    {
      "name": "AI运动营养师/百炼AI"
    },
    {
      "name": "AI运动营养师/菜品管理"
    },
    {
      "name": "AI运动营养师/数据同步"
    },
    {
      "name": "AI运动营养师/小程序设置"
    },
    {
      "name": "AI运动营养师/CozeAI"
    },
    {
      "name": "AI运动营养师/AI"
    },
    {
      "name": "AI运动营养师/华为健康"
    },
    {
      "name": "AI运动营养师/健康建议"
    },
    {
      "name": "AI运动营养师/订单管理"
    },
    {
      "name": "AI运动营养师/用户管理"
    },
    {
      "name": "AI运动营养师/提现"
    },
    {
      "name": "AI运动营养师/订餐"
    },
    {
      "name": "AI运动营养师/订餐/购物车"
    },
    {
      "name": "AI运动营养师/订餐/订单支付"
    },
    {
      "name": "AI运动营养师/活动"
    },
    {
      "name": "AI运动营养师/活动/活动排行榜"
    },
    {
      "name": "AI运动营养师/积分排行榜"
    },
    {
      "name": "AI运动营养师/设备数据同步"
    },
    {
      "name": "AI运动营养师/设备数据同步/沃莱体脂秤"
    },
    {
      "name": "AI运动营养师/设备数据同步/跳绳"
    },
    {
      "name": "AI运动营养师/设备数据同步/云康宝体脂秤"
    },
    {
      "name": "AI运动营养师/运动课程"
    },
    {
      "name": "AI运动营养师/运动建议"
    },
    {
      "name": "AI运动营养师/运动"
    },
    {
      "name": "AI运动营养师/英吉多设备"
    },
    {
      "name": "AI运动营养师/英吉多设备/小程序接口"
    },
    {
      "name": "AI运动营养师/中国银行"
    },
    {
      "name": "邮储H5"
    },
    {
      "name": "运动课程"
    },
    {
      "name": "zhaiker"
    },
    {
      "name": "zhaiker/集团账号"
    },
    {
      "name": "zhaiker/体测记录"
    },
    {
      "name": "zhaiker/文件与报告"
    },
    {
      "name": "zhaiker/设备控制"
    },
    {
      "name": "zhaiker/单门店"
    },
    {
      "name": "zhaiker/附加项"
    },
    {
      "name": "验证流程"
    },
    {
      "name": "用户认证模块/微信小程序登录态恢复"
    },
    {
      "name": "用户认证模块/H5免登"
    },
    {
      "name": "集团账号"
    },
    {
      "name": "体测记录"
    },
    {
      "name": "文件与报告"
    },
    {
      "name": "设备控制"
    },
    {
      "name": "单门店"
    },
    {
      "name": "附加项"
    }
  ],
  "paths": {
    "/index.php": {
      "post": {
        "summary": "关联用户并登录",
        "deprecated": false,
        "description": "",
        "tags": [
          "邮储H5"
        ],
        "parameters": [
          {
            "name": "s",
            "in": "query",
            "description": "",
            "required": false,
            "example": "/api/bank/bindUserLogin",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "authCode": {
                    "type": "string"
                  },
                  "url": {
                    "type": "string"
                  }
                },
                "required": [
                  "authCode",
                  "url"
                ],
                "x-apifox-orders": [
                  "authCode",
                  "url"
                ],
                "x-apifox-ignore-properties": []
              },
              "example": {
                "bank_user_id": "4341384139323344383535303835333039374133314631344130343935324538",
                "department_uuid": "A572DE95-9513-2840-48F8-F8003E88C1E8",
                "staff_name": "11",
                "personnel_umber": "11"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "properties": {
                        "userId": {
                          "type": "string"
                        },
                        "respCode": {
                          "type": "string"
                        },
                        "respMsg": {
                          "type": "string"
                        },
                        "partnerTxSriNo": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "userId",
                        "respCode",
                        "respMsg",
                        "partnerTxSriNo"
                      ],
                      "x-apifox-orders": [
                        "userId",
                        "respCode",
                        "respMsg",
                        "partnerTxSriNo"
                      ],
                      "x-apifox-ignore-properties": []
                    }
                  },
                  "required": [
                    "code",
                    "message",
                    "data"
                  ],
                  "x-apifox-orders": [
                    "code",
                    "message",
                    "data"
                  ],
                  "x-apifox-ignore-properties": []
                },
                "example": {
                  "code": 0,
                  "message": "ok",
                  "data": {
                    "userId": "4341384139323344383535303835333039374133314631344130343935324538",
                    "respCode": "000000",
                    "respMsg": "交易成功",
                    "partnerTxSriNo": "202603031139207087467495"
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "邮储H5",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-423232074-run"
      },
      "get": {
        "summary": "邮储支付结果查询",
        "deprecated": false,
        "description": "",
        "tags": [
          "邮储H5"
        ],
        "parameters": [
          {
            "name": "s",
            "in": "query",
            "description": "",
            "required": false,
            "example": "/api/recharge/tradeQuery",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "outTradeNo",
            "in": "query",
            "description": "",
            "required": false,
            "example": "260310136250612",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "method",
            "in": "query",
            "description": "",
            "required": false,
            "example": "psbc",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "client",
            "in": "query",
            "description": "",
            "required": false,
            "example": "H5",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "邮储H5",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-425367920-run"
      }
    },
    "/wx-api-3d/wx/food/detail": {
      "get": {
        "summary": "商品列表 Copy",
        "deprecated": false,
        "description": "",
        "tags": [
          "商户后台"
        ],
        "parameters": [
          {
            "name": "foodId",
            "in": "query",
            "description": "",
            "required": false,
            "example": "59717",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "header",
            "description": "",
            "required": false,
            "example": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJBIG51dHJpdGlvdXMgbGlmZSIsImF1ZCI6Ik1JTklBUFAiLCJ1c2VyX2lkIjo2NSwiaXNzIjoiSEVBTFRIIiwiZXhwIjoxNzU1ODQwNzg2LCJpYXQiOjE3NTUyMzU5ODZ9.Ln0ZkAg4YUmr04VgKAGuZJApqYinsfQIAGooDLc7Ma4",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "商户后台",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-336565518-run"
      }
    },
    "/api/user/info": {
      "get": {
        "summary": "验证步骤2/4 用户信息(受保护)",
        "deprecated": false,
        "description": "带 Access-Token 请求受保护接口。\n\n若 password_status=0/1，接口会返回403并提示修改密码；\n改密后旧 token 会返回401。",
        "tags": [
          "AI运动营养师/用户认证模块/验证流程",
          "验证流程"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "登录 token",
            "required": true,
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "客户端来源",
            "required": false,
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功返回用户信息",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "x-apifox-orders": [],
                      "properties": {},
                      "x-apifox-ignore-properties": []
                    },
                    "trace_id": {
                      "type": "string"
                    }
                  },
                  "x-apifox-orders": [
                    "status",
                    "message",
                    "data",
                    "trace_id"
                  ],
                  "x-apifox-ignore-properties": []
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          },
          "401": {
            "description": "登录状态已失效",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "x-apifox-orders": [],
                      "properties": {},
                      "x-apifox-ignore-properties": []
                    },
                    "trace_id": {
                      "type": "string"
                    }
                  },
                  "x-apifox-orders": [
                    "status",
                    "message",
                    "data",
                    "trace_id"
                  ],
                  "x-apifox-ignore-properties": []
                },
                "examples": {
                  "1": {
                    "summary": "成功示例",
                    "value": {
                      "status": 401,
                      "message": "登录状态已失效，请重新登录",
                      "data": [],
                      "trace_id": "..."
                    }
                  },
                  "3": {
                    "summary": "成功示例",
                    "value": {
                      "status": 401,
                      "message": "登录状态已失效，请重新登录",
                      "data": [],
                      "trace_id": "..."
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 1
          },
          "403": {
            "description": "需要修改密码",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer"
                    },
                    "message": {
                      "type": "string"
                    },
                    "data": {
                      "type": "object",
                      "x-apifox-orders": [],
                      "properties": {},
                      "x-apifox-ignore-properties": []
                    },
                    "trace_id": {
                      "type": "string"
                    }
                  },
                  "x-apifox-orders": [
                    "status",
                    "message",
                    "data",
                    "trace_id"
                  ],
                  "x-apifox-ignore-properties": []
                },
                "examples": {
                  "2": {
                    "summary": "成功示例",
                    "value": {
                      "status": 403,
                      "message": "请先修改密码",
                      "data": {
                        "needChangePassword": 1,
                        "passwordStatus": 0
                      },
                      "trace_id": "..."
                    }
                  },
                  "4": {
                    "summary": "成功示例",
                    "value": {
                      "status": 403,
                      "message": "请先修改密码",
                      "data": {
                        "needChangePassword": 1,
                        "passwordStatus": 0
                      },
                      "trace_id": "..."
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 2
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/验证流程",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-412208303-run"
      }
    },
    "/api/passport/changePassword": {
      "post": {
        "summary": "验证步骤3/6 修改密码(不退出登录)",
        "deprecated": false,
        "description": "修改为合规密码。成功后当前会话继续有效，但旧 token 会失效。",
        "tags": [
          "AI运动营养师/用户认证模块/验证流程",
          "验证流程"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "登录 token",
            "required": true,
            "example": "30dfe8b7f25ce820fba9f197c4ed3a16",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "客户端来源",
            "required": false,
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          },
          {
            "name": "Content-Type",
            "in": "header",
            "description": "",
            "required": false,
            "example": "application/json",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "form"
                ],
                "properties": {
                  "form": {
                    "type": "object",
                    "required": [
                      "oldPassword",
                      "newPassword",
                      "confirmPassword"
                    ],
                    "properties": {
                      "oldPassword": {
                        "type": "string"
                      },
                      "newPassword": {
                        "type": "string"
                      },
                      "confirmPassword": {
                        "type": "string"
                      }
                    },
                    "x-apifox-orders": [
                      "oldPassword",
                      "newPassword",
                      "confirmPassword"
                    ],
                    "x-apifox-ignore-properties": []
                  }
                },
                "x-apifox-orders": [
                  "form"
                ],
                "x-apifox-ignore-properties": []
              },
              "example": {
                "form": {
                  "oldPassword": "cptyy@123",
                  "newPassword": "Abc!2345",
                  "confirmPassword": "Abc!2345"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "修改成功",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "status": {
                      "type": "integer",
                      "example": 200
                    },
                    "message": {
                      "type": "string",
                      "example": "密码修改成功"
                    },
                    "data": {
                      "type": "object",
                      "x-apifox-orders": [],
                      "properties": {},
                      "x-apifox-ignore-properties": []
                    },
                    "trace_id": {
                      "type": "string"
                    }
                  },
                  "x-apifox-orders": [
                    "status",
                    "message",
                    "data",
                    "trace_id"
                  ],
                  "x-apifox-ignore-properties": []
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/验证流程",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-412208304-run"
      }
    },
    "/api/passport/restoreMpWxLogin": {
      "post": {
        "summary": "微信小程序静默恢复登录态",
        "deprecated": false,
        "description": "新版本可传 openid + enterprise_no + user_id；后台会校验 openid 与 user_id 在当前企业库确实绑定后才发 token。旧版本不传 user_id 时继续按 openid 恢复。",
        "tags": [
          "AI运动营养师/用户认证模块/微信小程序登录态恢复",
          "用户认证模块/微信小程序登录态恢复"
        ],
        "parameters": [
          {
            "name": "enterprise-no",
            "in": "header",
            "description": "企业编号。静默登录和退出登录企业项目接口需要携带；默认项目路由接口不要携带。",
            "required": false,
            "example": "",
            "schema": {
              "type": "string",
              "example": "10001"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RestoreMpWxLoginRequest"
              },
              "examples": {
                "newClient": {
                  "value": {
                    "form": {
                      "openid": "oz3la7GpnxnSzCMohXV27YlbkrUw",
                      "appid": "wxb4e2e1480798187c",
                      "enterprise_no": "10001"
                    }
                  },
                  "summary": "新版本传 openid"
                },
                "legacyClient": {
                  "value": {
                    "form": {
                      "code": "0f3a1b...",
                      "enterprise_no": "10001"
                    }
                  },
                  "summary": "旧版本传 code"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "登录成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/LoginTokenResponse"
                },
                "example": {
                  "status": 200,
                  "message": "登录成功",
                  "data": {
                    "userId": 123,
                    "token": "login-token"
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/微信小程序登录态恢复",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-458519074-run"
      }
    },
    "/api/passport/resolveMpWxEnterprise": {
      "post": {
        "summary": "微信小程序识别最近登录企业",
        "deprecated": false,
        "description": "清缓存或无本地登录态时调用。请求头不带 enterprise-no，走默认项目。后台通过 wx.login code 换取 openid，并查询默认库最近企业路由。若用户主动退出过，返回 enterpriseNo 为空并带 logoutDisabled=1。",
        "tags": [
          "AI运动营养师/用户认证模块/微信小程序登录态恢复",
          "用户认证模块/微信小程序登录态恢复"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ResolveMpWxEnterpriseRequest"
              },
              "example": {
                "form": {
                  "code": "0f3a1b...",
                  "appid": "wxb4e2e1480798187c"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "识别成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ResolveMpWxEnterpriseResponse"
                },
                "examples": {
                  "hasEnterprise": {
                    "summary": "存在最近企业",
                    "value": {
                      "status": 200,
                      "message": "识别成功",
                      "data": {
                        "appid": "wxb4e2e1480798187c",
                        "openid": "oz3la7GpnxnSzCMohXV27YlbkrUw",
                        "enterpriseNo": "10001"
                      }
                    }
                  },
                  "logoutDisabled": {
                    "summary": "用户主动退出后不返回企业",
                    "value": {
                      "status": 200,
                      "message": "识别成功",
                      "data": {
                        "appid": "wxb4e2e1480798187c",
                        "openid": "oz3la7GpnxnSzCMohXV27YlbkrUw",
                        "enterpriseNo": "",
                        "logoutDisabled": 1
                      }
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/微信小程序登录态恢复",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-459220105-run"
      }
    },
    "/api/passport/bindMpWxEnterpriseRoute": {
      "post": {
        "summary": "微信小程序记录最近登录企业",
        "deprecated": false,
        "description": "正常登录成功后调用，默认库记录 appid + openid 最近登录的 enterprise_no + user_id；同一微信多账号时最新登录成功的用户覆盖旧记录。",
        "tags": [
          "AI运动营养师/用户认证模块/微信小程序登录态恢复",
          "用户认证模块/微信小程序登录态恢复"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BindMpWxEnterpriseRouteRequest"
              },
              "example": {
                "form": {
                  "openid": "oz3la7GpnxnSzCMohXV27YlbkrUw",
                  "appid": "wxb4e2e1480798187c",
                  "enterprise_no": "10001"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "记录成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptySuccessResponse"
                },
                "example": {
                  "status": 200,
                  "message": "记录成功",
                  "data": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/微信小程序登录态恢复",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-459220106-run"
      }
    },
    "/api/passport/disableMpWxEnterpriseRoute": {
      "post": {
        "summary": "微信小程序禁用最近登录企业恢复",
        "deprecated": false,
        "description": "退出登录可按 openid/code 禁用当前微信；修改密码后可只传 enterprise_no + user_id，禁用该企业该用户所有 openid 自动恢复。",
        "tags": [
          "AI运动营养师/用户认证模块/微信小程序登录态恢复",
          "用户认证模块/微信小程序登录态恢复"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DisableMpWxEnterpriseRouteRequest"
              },
              "example": {
                "form": {
                  "openid": "oz3la7GpnxnSzCMohXV27YlbkrUw",
                  "appid": "wxb4e2e1480798187c",
                  "enterprise_no": "10001"
                }
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "记录成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptySuccessResponse"
                },
                "example": {
                  "status": 200,
                  "message": "记录成功",
                  "data": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/微信小程序登录态恢复",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-459220107-run"
      }
    },
    "/api/passport/logout": {
      "post": {
        "summary": "退出登录",
        "deprecated": false,
        "description": "用户主动退出登录。请求头带 enterprise-no 时由 Nginx 转发到企业项目，企业库记录 user_oauth.silent_login_disabled=1；新版本会同时调用 disableMpWxEnterpriseRoute 禁用默认路由恢复。旧版本不传 openid 时仍按当前用户绑定关系处理。",
        "tags": [
          "AI运动营养师/用户认证模块/微信小程序登录态恢复",
          "用户认证模块/微信小程序登录态恢复"
        ],
        "parameters": [
          {
            "name": "enterprise-no",
            "in": "header",
            "description": "企业编号。静默登录和退出登录企业项目接口需要携带；默认项目路由接口不要携带。",
            "required": false,
            "example": "",
            "schema": {
              "type": "string",
              "example": "10001"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "登录 token。退出登录时通常需要携带。",
            "required": false,
            "example": "",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LogoutRequest"
              },
              "example": {
                "form": {
                  "openid": "oz3la7GpnxnSzCMohXV27YlbkrUw",
                  "appid": "wxb4e2e1480798187c",
                  "enterprise_no": "10001"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "操作成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/EmptySuccessResponse"
                },
                "example": {
                  "status": 200,
                  "message": "操作成功",
                  "data": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/微信小程序登录态恢复",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-458472676-run"
      }
    },
    "/api/sso/ticket/create": {
      "post": {
        "summary": "江苏国信小程序申请 H5 免登 ticket",
        "deprecated": false,
        "description": "小程序方后端在用户已登录后，使用可信手机号向智慧食堂后端申请一次性 ticket。该接口必须由小程序后端调用，不允许在小程序前端调用，也不能把签名密钥下发到前端。\n\n业务规则：\n- provider 固定为 jsgx_wechat_applet_001。\n- mobile 必须是小程序后端登录态中的可信手机号。\n- 后端校验 provider、timestamp、nonce、sign 后查询智慧食堂账号。\n- 手机号不存在时返回手机号不存在。\n- ticket 默认 300 秒有效，只能消费一次。\n- redirect_url 由数据库 yoshop_sso_provider.redirect_domain 生成，形如 https://{redirect_domain}/web/#/home?ticket={ticket}。\n\n签名规则：\n- 参与签名字段：provider、mobile、timestamp、nonce。\n- 按字段名 ASCII 升序排序。\n- 使用 RFC3986 URL 编码拼接查询串。\n- 使用双方线下约定 secret 计算 HMAC-SHA256，输出小写 hex。\n- 示例待签名字符串：mobile=13800000000&nonce=random_abc123&provider=jsgx_wechat_applet_001&timestamp=1710000000。",
        "operationId": "createJsgxWechatAppletSsoTicket",
        "tags": [
          "AI运动营养师/用户认证模块/H5免登",
          "用户认证模块/H5免登"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "description": "固定值：jsgx_wechat_applet_001",
                    "example": "jsgx_wechat_applet_001"
                  },
                  "mobile": {
                    "type": "string",
                    "description": "小程序后端从登录态取得的可信手机号",
                    "example": "13800000000"
                  },
                  "timestamp": {
                    "type": "integer",
                    "description": "Unix 秒级时间戳，默认允许误差 300 秒",
                    "example": 1710000000
                  },
                  "nonce": {
                    "type": "string",
                    "description": "随机字符串，同一 provider 下不可重复",
                    "example": "random_abc123"
                  },
                  "sign": {
                    "type": "string",
                    "description": "HMAC-SHA256 签名，小写 hex",
                    "example": "0f6e000000000000000000000000000000000000000000000000000000000000"
                  }
                },
                "required": [
                  "provider",
                  "mobile",
                  "timestamp",
                  "nonce",
                  "sign"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "申请成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateSsoTicketSuccessResponse"
                },
                "examples": {
                  "success": {
                    "summary": "成功响应",
                    "value": {
                      "status": 200,
                      "message": "ok",
                      "data": {
                        "ticket": "sso_随机字符串",
                        "expires_in": 300,
                        "redirect_url": "https://jsgx.yyangpt.cn/web/#/home?ticket=sso_%E9%9A%8F%E6%9C%BA%E5%AD%97%E7%AC%A6%E4%B8%B2"
                      }
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          },
          "400": {
            "description": "请求参数错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "badMobile": {
                    "summary": "手机号格式错误",
                    "value": {
                      "status": 400,
                      "message": "手机号格式错误",
                      "data": []
                    }
                  },
                  "missingNonce": {
                    "summary": "缺少 nonce",
                    "value": {
                      "status": 400,
                      "message": "缺少nonce",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "请求有误",
            "x-apifox-ordering": 1
          },
          "401": {
            "description": "签名或时间戳错误",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "expired": {
                    "summary": "请求已过期",
                    "value": {
                      "status": 401,
                      "message": "请求已过期",
                      "data": []
                    }
                  },
                  "badSign": {
                    "summary": "签名错误",
                    "value": {
                      "status": 401,
                      "message": "签名错误",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "没有权限",
            "x-apifox-ordering": 2
          },
          "403": {
            "description": "provider 不支持或未启用",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "providerUnsupported": {
                    "summary": "provider 不支持",
                    "value": {
                      "status": 403,
                      "message": "provider不支持",
                      "data": []
                    }
                  },
                  "providerDisabled": {
                    "summary": "provider 未启用",
                    "value": {
                      "status": 403,
                      "message": "provider未启用",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "禁止访问",
            "x-apifox-ordering": 3
          },
          "404": {
            "description": "手机号没有对应智慧食堂账号",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "mobileNotFound": {
                    "summary": "手机号不存在",
                    "value": {
                      "status": 404,
                      "message": "手机号不存在",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "记录不存在",
            "x-apifox-ordering": 4
          },
          "409": {
            "description": "重复 nonce 或手机号不唯一",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "nonceUsed": {
                    "summary": "nonce 已使用",
                    "value": {
                      "status": 409,
                      "message": "nonce已使用",
                      "data": []
                    }
                  },
                  "duplicateMobile": {
                    "summary": "手机号对应多个账号",
                    "value": {
                      "status": 409,
                      "message": "手机号对应多个账号，无法自动登录",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 5
          },
          "500": {
            "description": "服务端 SSO provider 配置缺失",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "missingSecret": {
                    "summary": "未配置密钥",
                    "value": {
                      "status": 500,
                      "message": "SSO provider未配置密钥",
                      "data": []
                    }
                  },
                  "missingRedirectDomain": {
                    "summary": "未配置跳转域名",
                    "value": {
                      "status": 500,
                      "message": "SSO provider未配置跳转域名",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "服务器错误",
            "x-apifox-ordering": 6
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/H5免登",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-464271578-run"
      }
    },
    "/api/sso/ticket/consume": {
      "post": {
        "summary": "H5 消费免登 ticket 换取 Access-Token",
        "deprecated": false,
        "description": "H5 打开 https://{redirect_domain}/web/#/home?ticket={ticket} 后自动调用该接口，消费一次性 ticket 并换取智慧食堂现有 Access-Token。小程序方一般不需要直接调用。\n\n业务规则：\n- provider 固定为 jsgx_wechat_applet_001。\n- ticket 只能使用一次，消费后立即失效。\n- ticket 过期、已消费或不存在时返回 ticket 已失效，请重新从小程序进入。\n- 成功后 H5 清理 URL 中的 ticket，并写入现有登录态。",
        "operationId": "consumeJsgxWechatAppletSsoTicket",
        "tags": [
          "AI运动营养师/用户认证模块/H5免登",
          "用户认证模块/H5免登"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "provider": {
                    "type": "string",
                    "description": "固定值：jsgx_wechat_applet_001",
                    "example": "jsgx_wechat_applet_001"
                  },
                  "ticket": {
                    "type": "string",
                    "description": "申请 ticket 接口返回的一次性 ticket",
                    "example": "sso_随机字符串"
                  }
                },
                "required": [
                  "provider",
                  "ticket"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "消费成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ConsumeSsoTicketSuccessResponse"
                },
                "examples": {
                  "success": {
                    "summary": "成功响应",
                    "value": {
                      "status": 200,
                      "message": "ok",
                      "data": {
                        "token": "智慧食堂Access-Token",
                        "system_user_id": 123,
                        "user_name": "张三",
                        "department_name": "某学校",
                        "mobile": "138****0000"
                      }
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          },
          "400": {
            "description": "缺少 ticket",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "missingTicket": {
                    "summary": "缺少 ticket",
                    "value": {
                      "status": 400,
                      "message": "缺少ticket",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "请求有误",
            "x-apifox-ordering": 1
          },
          "401": {
            "description": "ticket 无效或已失效",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "ticketExpired": {
                    "summary": "ticket 已失效",
                    "value": {
                      "status": 401,
                      "message": "ticket已失效，请重新从小程序进入",
                      "data": []
                    }
                  },
                  "ticketInvalid": {
                    "summary": "ticket 无效",
                    "value": {
                      "status": 401,
                      "message": "ticket无效",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "没有权限",
            "x-apifox-ordering": 2
          },
          "403": {
            "description": "provider 不支持",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "providerUnsupported": {
                    "summary": "provider 不支持",
                    "value": {
                      "status": 403,
                      "message": "provider不支持",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "禁止访问",
            "x-apifox-ordering": 3
          },
          "404": {
            "description": "用户不存在",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CommonErrorResponse"
                },
                "examples": {
                  "userNotFound": {
                    "summary": "用户不存在",
                    "value": {
                      "status": 404,
                      "message": "用户不存在",
                      "data": []
                    }
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "记录不存在",
            "x-apifox-ordering": 4
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/用户认证模块/H5免登",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-464271579-run"
      }
    },
    "/api/healthadvice/info": {
      "post": {
        "summary": "健康建议",
        "deprecated": false,
        "description": "\n```\n{\n    \"status\": 200,\n    \"message\": \"success\",\n    \"data\": {\n        \"info\": {\n            \"time\":\"2025-07-15\",\n            \"tips\":\"非常合适吃一些酸奶,多多益善,但也不要贪吃\",\n            \"supply\":{//当餐功能营养素摄入\n              \"ratio\":{\n                   carbohydrate: \"39.99\",\n                    fat: \"52.71\",\n                    protein: \"9.45\"\n              },\n              \"table\":{\n                 \"carbohydrate\":{\n                   ratio: 209\n                   reality: \"52.71\"\n                   recommend: \"25.23\"\n                   recommend_lower: 23\n                   recommend_upper: 28\n                   status: \"3\"\n                 },\n                 \"fat\":{\n                    ratio: 32\n                    reality: \"39.99\"\n                    recommend: \"124.89\"\n                    recommend_lower: 112\n                    recommend_upper: 137\n                    status: \"1\"\n                 },\n                 \"protein\":{\n                    ratio: 32\n                    reality: \"39.99\"\n                    recommend: \"124.89\"\n                    recommend_lower: 112\n                    recommend_upper: 137\n                    status: \"1\"\n                 }\n              }\n             },\n            \"meals\": [//早午晚\n                {\n                  type: 1,//早餐及早加餐\n                  icon: \"https://img.kxunpt.cn/ai/static/home/breakfast.svg\",\n                  calories: \"375kcal\",\n                  items: [\n                    { name: \"南瓜小米粥\", gram: \"284克\", kcal: \"138kcal\", img: \"https://img.kxunpt.cn/zhct/static/upload/cater/20250529/5FA03EEB-424C-BE78-B2D6-B4CA7379582C南瓜小米粥.png\" },\n                    { name: \"水煮鹌鹑蛋\", gram: \"45克\", kcal: \"72kcal\", img: \"https://img.kxunpt.cn/zhct/static/upload/cater/20230130/5B308A4B-223E-D8A3-0492-8976A38FDD6E.JPG\" },\n                    { name: \"纯牛奶（低脂）\", gram: \"350克\", kcal: \"165kcal\", img: \"https://img.kxunpt.cn/zhct/static/upload/cater/20230130/CAAC3DEE-D547-8208-DDDC-FE8F43E26B5C.jpeg\" }\n                  ]\n                },\n                {\n                  type: 2,//午餐及午加餐\n                  icon: \"https://img.kxunpt.cn/ai/static/home/lunch.svg\",\n                  calories: \"465kcal\",\n                  items: [\n                    { name: \"紫薯花卷\", gram: \"87克\" , kcal: \"185kcal\", img: \"https://img.kxunpt.cn/zhct/static/upload/cater/20221201/E0EBB083-CA39-89CF-4B62-8EC31F1CFF8B.png\" },\n                    { name: \"蒜蓉鸡蛋蒜\", gram: \"91克\" , kcal: \"104kcal\", img: \"https://img.kxunpt.cn/zyjy/prod/10001/20241226/f0101cdde04a6e3f7254195fa0cab93e.jpg\"},\n                    { name: \"茼蒿拌豆干\", gram: \"191克\", kcal: \"176kcal\", img: \"https://img.kxunpt.cn/zyjy/prod/10001/20241017/eb32fc74e2ddc479a363e93477b1e7bd.JPG\" }\n                  ]\n                },\n                {\n                  type: 3,//晚餐及晚加餐\n                  icon: \"https://img.kxunpt.cn/ai/static/home/dinner.svg\",\n                  calories: \"444kcal\",\n                  items: [\n                    { name: \"燕麦饭\", gram: \"136克\" , kcal: \"136kcal\", img: \"https://img.kxunpt.cn/zhct/static/upload/cater/20230203/5994B145-3D93-2A0F-E188-4EE2472B4853.jpg\"},\n                    { name: \"蒜香鸭块\", gram: \"89克\" , kcal: \"81kcal\", img: \"https://img.kxunpt.cn/zhct/static/upload/cater/20230207/B720D226-A16A-4DEE-D03C-F13762E9EF9A.jpg\"},\n                    { name: \"青椒豆腐\", gram: \"275克\", kcal: \"227kcal\", img: \"https://img.kxunpt.cn/aizhct/prod/10001/20250422/98c93b047a9dc5e77b74cf3dcbc2d206.png\" }\n                  ]\n                }\n          ],\n          exercisePlan:[//今日运动方案\n          { name: \"跳绳\", kcal: \"310kcal\", time: \"20min\", icon: \"https://img.kxunpt.cn/ai/jkjy-ts.png\", bg: \"#FFE1A8\" },\n          { name: \"瑜伽\", kcal: \"173kcal\", time: \"20min\", icon: \"https://img.kxunpt.cn/ai/jkjy-yj.png\", bg: \"#E6F0FF\" },\n          { name: \"游泳\", kcal: \"323kcal\", time: \"20min\", icon: \"https://img.kxunpt.cn/ai/jkjy-yy.png\", bg: \"#C8F4FF\" }\n        ],\n        lifePlan:[//今日生活方案\n          { name: \"细嚼慢咽进食\", desc: \"助力消化,减少过量\", icon: \"https://img.kxunpt.cn/ai/jkjy-xjmy.png\", bg: \"#E6F0FF\" },\n          { name: \"看电视做平板支撑\", desc: \"追剧不停,强化核心\", icon: \"https://img.kxunpt.cn/ai/jkjy-kds.png\", bg: \"#E6EFFF\" },\n          { name: \"记录便便\", desc: \"监控肠道,保持健康\", icon: \"https://img.kxunpt.cn/ai/jkjy-jlbb.png\", bg: \"#D6F5E9\" }\n        ]\n        }\n    },\n    \"trace_id\": \"682ecaa770d1d\"\n}\n```\n",
        "tags": [
          "AI运动营养师/我的/健康建议"
        ],
        "parameters": [
          {
            "name": "time",
            "in": "query",
            "description": "",
            "required": false,
            "example": "2025-07-15",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "time": {
                    "description": "日期",
                    "example": "2025-07-15",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/我的/健康建议",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-322135818-run"
      }
    },
    "/v3/chat": {
      "post": {
        "summary": "cozeAPI发起对话",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer pat_eSlh0JnGfFxGbOY9MjOrHc060pWV8CoZM18uO0MpAsJ3NZpO52Yw2t7H4lG2xOUy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "x-apifox-ignore-properties": [],
                "x-apifox-orders": []
              },
              "example": {
                "bot_id": "7506371601823612937",
                "user_id": "user_w2oaahhio3lc4h",
                "stream": false,
                "auto_save_history": true,
                "additional_messages": [
                  {
                    "role": "user",
                    "content": "[{\"type\":\"text\",\"text\":\"我的个人信息：身高175cm、体重65千克、年龄30岁、性别男、基础病糖尿病高血压高血脂、运动习惯是静坐生活、坐位工作；2025-05-22早餐就餐数据：100g小米粥包含46千卡能量，60g煮鸡蛋包含72.56千卡能量，总能量118.56千卡，总蛋白质8.25g，总脂肪5.19g，总碳水化合物9.66g；2025-05-22早餐推荐数据：能量622千卡，蛋白质28-34g，脂肪16-19g，碳水化合物77-94g；请根据我的个人信息，就餐数据以及推荐数据，输出饮食建议。\"}]",
                    "content_type": "object_string"
                  }
                ]
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-298077393-run"
      }
    },
    "/v3/chat/retrieve": {
      "get": {
        "summary": "cozeAPI查看对话详情",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "conversation_id",
            "in": "query",
            "description": "",
            "required": false,
            "example": "7506761639446839334",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chat_id",
            "in": "query",
            "description": "",
            "required": false,
            "example": "7506761639446855718",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer pat_eSlh0JnGfFxGbOY9MjOrHc060pWV8CoZM18uO0MpAsJ3NZpO52Yw2t7H4lG2xOUy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-298717900-run"
      }
    },
    "/v3/chat/message/list": {
      "get": {
        "summary": "cozeAPI查看对话消息详情",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "conversation_id",
            "in": "query",
            "description": "",
            "required": false,
            "example": "7506761639446839334",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "chat_id",
            "in": "query",
            "description": "",
            "required": false,
            "example": "7506761639446855718",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer pat_eSlh0JnGfFxGbOY9MjOrHc060pWV8CoZM18uO0MpAsJ3NZpO52Yw2t7H4lG2xOUy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-298695229-run"
      }
    },
    "/v1/workflow/run": {
      "post": {
        "summary": "coze执行工作流-健康建议",
        "deprecated": false,
        "description": "\n```\n{\n    \"workflow_id\": \"7521615760214212623\",\n    \"is_async\": false,\n    \"parameters\": {\n        \"start_date\": \"2025-07-01\",\n        \"end_date\": \"2025-07-30\",\n        \"rules\": [\n            {\n                \"source\": \"1,2\",\n                \"rate\": 1,\n                \"sales\": 1,\n                \"number\": 10,\n                \"category\": [\n                    {\n                        \"label\": \"主食\",\n                        \"number\": 1\n                    },\n                    {\n                        \"label\": \"素菜\",\n                        \"number\": 3\n                    },\n                    {\n                        \"label\": \"荤菜\",\n                        \"number\": 2\n                    },\n                    {\n                        \"label\": \"蛋奶坚果\",\n                        \"number\": 2\n                    },\n                    {\n                        \"label\": \"水果\",\n                        \"number\": 1\n                    },\n                    {\n                        \"label\": \"汤饮\",\n                        \"number\": 1\n                    }\n                ],\n                \"food_composition\": {\n                    \"include\": [\n                        \"糯米[江米]\",\n                        \"小米\"\n                    ],\n                    \"exclude\": [\n                        \"黑米\",\n                        \"红薯\"\n                    ]\n                },\n                \"cook_method\": {\n                    \"include\": [\n                        \"炒\",\n                        \"煮\",\n                        \"蒸\"\n                    ],\n                    \"exclude\": [\n                        \"卤\",\n                        \"炸\"\n                    ]\n                },\n                \"health_tags\": [\n                    \"高血压友好 (低钠)\"\n                ],\n                \"nutrition_tags\": [\n                    \"富含钙\"\n                ],\n                \"rule_order\": [\n                    \"food_composition\",\n                    \"cook_method\",\n                    \"health_tags\",\n                    \"nutrition_tags\"\n                ]\n            },\n            {\n                \"source\": \"1,2\",\n                \"rate\": 1,\n                \"sales\": 1,\n                \"number\": 10,\n                \"category\": [\n                    {\n                        \"label\": \"主食\",\n                        \"number\": 1\n                    },\n                    {\n                        \"label\": \"素菜\",\n                        \"number\": 3\n                    },\n                    {\n                        \"label\": \"荤菜\",\n                        \"number\": 2\n                    },\n                    {\n                        \"label\": \"蛋奶坚果\",\n                        \"number\": 2\n                    },\n                    {\n                        \"label\": \"水果\",\n                        \"number\": 1\n                    },\n                    {\n                        \"label\": \"汤饮\",\n                        \"number\": 1\n                    }\n                ],\n                \"food_composition\": {\n                    \"include\": [\n                        \"糯米[江米]\",\n                        \"小米\"\n                    ],\n                    \"exclude\": [\n                        \"黑米\",\n                        \"红薯\"\n                    ]\n                },\n                \"cook_method\": {\n                    \"include\": [\n                        \"炒\",\n                        \"煮\",\n                        \"蒸\"\n                    ],\n                    \"exclude\": [\n                        \"卤\",\n                        \"炸\"\n                    ]\n                },\n                \"health_tags\": [\n                    \"高血压友好 (低钠)\"\n                ],\n                \"nutrition_tags\": [\n                    \"富含钙\"\n                ],\n                \"rule_order\": [\n                    \"food_composition\",\n                    \"cook_method\",\n                    \"health_tags\",\n                    \"nutrition_tags\"\n                ]\n            },\n            {\n                \"source\": \"1,2\",\n                \"rate\": 1,\n                \"sales\": 1,\n                \"number\": 10,\n                \"category\": [\n                    {\n                        \"label\": \"主食\",\n                        \"number\": 1\n                    },\n                    {\n                        \"label\": \"素菜\",\n                        \"number\": 3\n                    },\n                    {\n                        \"label\": \"荤菜\",\n                        \"number\": 2\n                    },\n                    {\n                        \"label\": \"蛋奶坚果\",\n                        \"number\": 2\n                    },\n                    {\n                        \"label\": \"水果\",\n                        \"number\": 1\n                    },\n                    {\n                        \"label\": \"汤饮\",\n                        \"number\": 1\n                    }\n                ],\n                \"food_composition\": {\n                    \"include\": [\n                        \"糯米[江米]\",\n                        \"小米\"\n                    ],\n                    \"exclude\": [\n                        \"黑米\",\n                        \"红薯\"\n                    ]\n                },\n                \"cook_method\": {\n                    \"include\": [\n                        \"炒\",\n                        \"煮\",\n                        \"蒸\"\n                    ],\n                    \"exclude\": [\n                        \"卤\",\n                        \"炸\"\n                    ]\n                },\n                \"health_tags\": [\n                    \"高血压友好 (低钠)\"\n                ],\n                \"nutrition_tags\": [\n                    \"富含钙\"\n                ],\n                \"rule_order\": [\n                    \"food_composition\",\n                    \"cook_method\",\n                    \"health_tags\",\n                    \"nutrition_tags\"\n                ]\n            }\n        ]\n    }\n}\n```\n\n\n```\n{\n    \"code\": 0,\n    \"cost\": \"0\",\n    \"data\": \"{\\\"dishesData\\\":[{\\\"combinedData\\\":[{\\\"dishes\\\":[1,85,5915,5916,916,64,5343,204,302,111],\\\"time\\\":\\\"2025-07-01\\\"},{\\\"dishes\\\":[6688,5919,5920,5921,140,272,460,5341,931,22],\\\"time\\\":\\\"2025-07-02\\\"},{\\\"dishes\\\":[2,1290,1295,1296,273,274,5344,5345,1292,5736],\\\"time\\\":\\\"2025-07-03\\\"},{\\\"dishes\\\":[109,1302,5922,5923,110,112,5347,5348,1293,5742],\\\"time\\\":\\\"2025-07-04\\\"},{\\\"dishes\\\":[14,5924,5925,5926,1288,1291,5699,929,5722,478],\\\"time\\\":\\\"2025-07-05\\\"},{\\\"dishes\\\":[1300,5927,5928,5929,1305,1312,941,227,468,482],\\\"time\\\":\\\"2025-07-06\\\"},{\\\"dishes\\\":[5312,5930,5931,5932,1313,5719,61,309,297,483],\\\"time\\\":\\\"2025-07-07\\\"},{\\\"dishes\\\":[5313,5933,5934,5936,5721,5723,317,5329,5763,485],\\\"time\\\":\\\"2025-07-08\\\"},{\\\"dishes\\\":[5314,5938,5939,5940,5724,5725,5330,5333,6686,487],\\\"time\\\":\\\"2025-07-09\\\"},{\\\"dishes\\\":[5315,5941,5942,5943,5728,5729,5334,5335,5336,489],\\\"time\\\":\\\"2025-07-10\\\"},{\\\"dishes\\\":[5316,196,197,198,701,706,5337,5338,5698,599],\\\"time\\\":\\\"2025-07-11\\\"},{\\\"dishes\\\":[5317,205,462,275,709,712,895,898,382,610],\\\"time\\\":\\\"2025-07-12\\\"},{\\\"dishes\\\":[5318,277,279,286,715,719,993,994,1019,620],\\\"time\\\":\\\"2025-07-13\\\"},{\\\"dishes\\\":[5320,288,303,304,720,721,923,940,767,1108],\\\"time\\\":\\\"2025-07-14\\\"},{\\\"dishes\\\":[6376,114,117,122,722,723,6687,102,179,1111],\\\"time\\\":\\\"2025-07-15\\\"},{\\\"dishes\\\":[6378,126,132,138,724,725,5339,5340,5342,6449],\\\"time\\\":\\\"2025-07-16\\\"},{\\\"dishes\\\":[6379,139,27,5735,6389,202,5346,5349,5350,5663],\\\"time\\\":\\\"2025-07-17\\\"},{\\\"dishes\\\":[6380,5750,477,480,463,464,5351,5352,5353,5678],\\\"time\\\":\\\"2025-07-18\\\"},{\\\"dishes\\\":[6381,481,500,511,278,280,5354,5355,5356,5690],\\\"time\\\":\\\"2025-07-19\\\"},{\\\"dishes\\\":[6382,6669,6670,6684,282,289,5357,5358,5359,5693],\\\"time\\\":\\\"2025-07-20\\\"},{\\\"dishes\\\":[6384,6685,594,596,290,292,5360,5361,5362,6394],\\\"time\\\":\\\"2025-07-21\\\"},{\\\"dishes\\\":[6385,601,613,1109,294,295,5363,5364,5365,6404],\\\"time\\\":\\\"2025-07-22\\\"},{\\\"dishes\\\":[6386,1131,6433,6434,298,299,5366,5367,5368,803],\\\"time\\\":\\\"2025-07-23\\\"},{\\\"dishes\\\":[6387,6438,6439,6443,300,116,5369,5370,5371,1162],\\\"time\\\":\\\"2025-07-24\\\"},{\\\"dishes\\\":[194,6447,6448,6450,118,119,5372,5373,5374,1166],\\\"time\\\":\\\"2025-07-25\\\"},{\\\"dishes\\\":[200,6451,6202,6216,120,123,5375,5376,5377,1325],\\\"time\\\":\\\"2025-07-26\\\"},{\\\"dishes\\\":[203,6217,6218,6219,124,127,5378,5379,5380,1333],\\\"time\\\":\\\"2025-07-27\\\"},{\\\"dishes\\\":[12,6220,5648,5652,130,133,5381,5382,5383,1334],\\\"time\\\":\\\"2025-07-28\\\"},{\\\"dishes\\\":[34,5667,806,808,134,136,5384,5385,5386,1343],\\\"time\\\":\\\"2025-07-29\\\"},{\\\"dishes\\\":[5758,1133,5758,1133,137,5,5387,5388,5389,1343],\\\"time\\\":\\\"2025-07-30\\\"}]},{\\\"combinedData\\\":[{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-01\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-02\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-03\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-04\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-05\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-06\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-07\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-08\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-09\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-10\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-11\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-12\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-13\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-14\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-15\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-16\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-17\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-18\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-19\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-20\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-21\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-22\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-23\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-24\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-25\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-26\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-27\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-28\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-29\\\"},{\\\"dishes\\\":[],\\\"time\\\":\\\"2025-07-30\\\"}]},{\\\"combinedData\\\":[{\\\"dishes\\\":[1,85,5915,5916,916,64,5343,204,302,111],\\\"time\\\":\\\"2025-07-01\\\"},{\\\"dishes\\\":[6688,5919,5920,5921,140,272,460,5341,931,467],\\\"time\\\":\\\"2025-07-02\\\"},{\\\"dishes\\\":[2,1290,1295,1296,273,274,5344,5345,1292,22],\\\"time\\\":\\\"2025-07-03\\\"},{\\\"dishes\\\":[109,1302,5922,5923,110,112,5347,5348,1293,5736],\\\"time\\\":\\\"2025-07-04\\\"},{\\\"dishes\\\":[14,5924,5925,5926,1288,1291,5699,929,5722,5742],\\\"time\\\":\\\"2025-07-05\\\"},{\\\"dishes\\\":[1300,5927,5928,5929,1305,1312,941,227,468,478],\\\"time\\\":\\\"2025-07-06\\\"},{\\\"dishes\\\":[5312,5930,5931,5932,1313,5719,61,309,297,482],\\\"time\\\":\\\"2025-07-07\\\"},{\\\"dishes\\\":[5313,5933,5934,5936,5721,5723,317,5329,5763,483],\\\"time\\\":\\\"2025-07-08\\\"},{\\\"dishes\\\":[5314,5938,5939,5940,5724,5725,5330,5333,6686,485],\\\"time\\\":\\\"2025-07-09\\\"},{\\\"dishes\\\":[5315,5941,5942,5943,5728,5729,5334,5335,5336,487],\\\"time\\\":\\\"2025-07-10\\\"},{\\\"dishes\\\":[5316,196,197,198,701,706,5337,5338,5698,489],\\\"time\\\":\\\"2025-07-11\\\"},{\\\"dishes\\\":[5317,205,462,275,709,712,895,898,382,599],\\\"time\\\":\\\"2025-07-12\\\"},{\\\"dishes\\\":[5318,277,279,286,715,719,993,994,1019,610],\\\"time\\\":\\\"2025-07-13\\\"},{\\\"dishes\\\":[5320,288,303,304,720,721,923,940,767,620],\\\"time\\\":\\\"2025-07-14\\\"},{\\\"dishes\\\":[6376,114,117,122,722,723,6687,102,179,1108],\\\"time\\\":\\\"2025-07-15\\\"},{\\\"dishes\\\":[6378,126,132,138,724,725,5648,5652,5667,1111],\\\"time\\\":\\\"2025-07-16\\\"},{\\\"dishes\\\":[6379,139,27,5735,6389,202,806,808,1133,6449],\\\"time\\\":\\\"2025-07-17\\\"},{\\\"dishes\\\":[6380,5750,477,480,463,464,6202,6216,6217,5663],\\\"time\\\":\\\"2025-07-18\\\"},{\\\"dishes\\\":[6381,481,500,511,278,280,6218,6219,6220,5678],\\\"time\\\":\\\"2025-07-19\\\"},{\\\"dishes\\\":[6382,6669,6670,6684,282,289,594,596,601,5690],\\\"time\\\":\\\"2025-07-20\\\"},{\\\"dishes\\\":[6384,6685,613,1109,290,292,1131,6433,6434,5693],\\\"time\\\":\\\"2025-07-21\\\"},{\\\"dishes\\\":[6385,6438,6439,6443,294,295,6447,6448,6450,6394],\\\"time\\\":\\\"2025-07-22\\\"},{\\\"dishes\\\":[6386,6451,6202,6216,298,299,6217,6218,6219,6404],\\\"time\\\":\\\"2025-07-23\\\"},{\\\"dishes\\\":[6387,6220,5648,5652,300,116,5667,806,808,803],\\\"time\\\":\\\"2025-07-24\\\"},{\\\"dishes\\\":[194,1133,85,5915,118,119,5916,5918,5919,1162],\\\"time\\\":\\\"2025-07-25\\\"},{\\\"dishes\\\":[200,5920,5921,1290,120,123,1295,1296,1297,1166],\\\"time\\\":\\\"2025-07-26\\\"},{\\\"dishes\\\":[203,1302,5922,5923,124,127,5924,5925,5926,1325],\\\"time\\\":\\\"2025-07-27\\\"},{\\\"dishes\\\":[12,5927,5928,5929,130,133,5930,5931,5932,1333],\\\"time\\\":\\\"2025-07-28\\\"},{\\\"dishes\\\":[34,5933,5934,5936,134,136,5938,5939,5940,1334],\\\"time\\\":\\\"2025-07-29\\\"},{\\\"dishes\\\":[5758,5941,5942,5943,137,5,196,197,198,1343],\\\"time\\\":\\\"2025-07-30\\\"}]}]}\",\n    \"debug_url\": \"https://www.coze.cn/work_flow?execute_id=7523092987800404022\\u0026space_id=7366210605697007616\\u0026workflow_id=7521615760214212623\\u0026execute_mode=2\",\n    \"msg\": \"Success\",\n    \"token\": 159310\n}\n```\n\n```\n{\n    \"dishesData\": [\n        {\n            \"combinedData\": [\n                {\n                    \"dishes\": [\n                        1,\n                        85,\n                        5915,\n                        5916,\n                        916,\n                        64,\n                        5343,\n                        204,\n                        302,\n                        111\n                    ],\n                    \"time\": \"2025-07-01\"\n                },\n                {\n                    \"dishes\": [\n                        6688,\n                        5919,\n                        5920,\n                        5921,\n                        140,\n                        272,\n                        460,\n                        5341,\n                        931,\n                        22\n                    ],\n                    \"time\": \"2025-07-02\"\n                },\n                {\n                    \"dishes\": [\n                        2,\n                        1290,\n                        1295,\n                        1296,\n                        273,\n                        274,\n                        5344,\n                        5345,\n                        1292,\n                        5736\n                    ],\n                    \"time\": \"2025-07-03\"\n                },\n                {\n                    \"dishes\": [\n                        109,\n                        1302,\n                        5922,\n                        5923,\n                        110,\n                        112,\n                        5347,\n                        5348,\n                        1293,\n                        5742\n                    ],\n                    \"time\": \"2025-07-04\"\n                },\n                {\n                    \"dishes\": [\n                        14,\n                        5924,\n                        5925,\n                        5926,\n                        1288,\n                        1291,\n                        5699,\n                        929,\n                        5722,\n                        478\n                    ],\n                    \"time\": \"2025-07-05\"\n                },\n                {\n                    \"dishes\": [\n                        1300,\n                        5927,\n                        5928,\n                        5929,\n                        1305,\n                        1312,\n                        941,\n                        227,\n                        468,\n                        482\n                    ],\n                    \"time\": \"2025-07-06\"\n                },\n                {\n                    \"dishes\": [\n                        5312,\n                        5930,\n                        5931,\n                        5932,\n                        1313,\n                        5719,\n                        61,\n                        309,\n                        297,\n                        483\n                    ],\n                    \"time\": \"2025-07-07\"\n                },\n                {\n                    \"dishes\": [\n                        5313,\n                        5933,\n                        5934,\n                        5936,\n                        5721,\n                        5723,\n                        317,\n                        5329,\n                        5763,\n                        485\n                    ],\n                    \"time\": \"2025-07-08\"\n                },\n                {\n                    \"dishes\": [\n                        5314,\n                        5938,\n                        5939,\n                        5940,\n                        5724,\n                        5725,\n                        5330,\n                        5333,\n                        6686,\n                        487\n                    ],\n                    \"time\": \"2025-07-09\"\n                },\n                {\n                    \"dishes\": [\n                        5315,\n                        5941,\n                        5942,\n                        5943,\n                        5728,\n                        5729,\n                        5334,\n                        5335,\n                        5336,\n                        489\n                    ],\n                    \"time\": \"2025-07-10\"\n                },\n                {\n                    \"dishes\": [\n                        5316,\n                        196,\n                        197,\n                        198,\n                        701,\n                        706,\n                        5337,\n                        5338,\n                        5698,\n                        599\n                    ],\n                    \"time\": \"2025-07-11\"\n                },\n                {\n                    \"dishes\": [\n                        5317,\n                        205,\n                        462,\n                        275,\n                        709,\n                        712,\n                        895,\n                        898,\n                        382,\n                        610\n                    ],\n                    \"time\": \"2025-07-12\"\n                },\n                {\n                    \"dishes\": [\n                        5318,\n                        277,\n                        279,\n                        286,\n                        715,\n                        719,\n                        993,\n                        994,\n                        1019,\n                        620\n                    ],\n                    \"time\": \"2025-07-13\"\n                },\n                {\n                    \"dishes\": [\n                        5320,\n                        288,\n                        303,\n                        304,\n                        720,\n                        721,\n                        923,\n                        940,\n                        767,\n                        1108\n                    ],\n                    \"time\": \"2025-07-14\"\n                },\n                {\n                    \"dishes\": [\n                        6376,\n                        114,\n                        117,\n                        122,\n                        722,\n                        723,\n                        6687,\n                        102,\n                        179,\n                        1111\n                    ],\n                    \"time\": \"2025-07-15\"\n                },\n                {\n                    \"dishes\": [\n                        6378,\n                        126,\n                        132,\n                        138,\n                        724,\n                        725,\n                        5339,\n                        5340,\n                        5342,\n                        6449\n                    ],\n                    \"time\": \"2025-07-16\"\n                },\n                {\n                    \"dishes\": [\n                        6379,\n                        139,\n                        27,\n                        5735,\n                        6389,\n                        202,\n                        5346,\n                        5349,\n                        5350,\n                        5663\n                    ],\n                    \"time\": \"2025-07-17\"\n                },\n                {\n                    \"dishes\": [\n                        6380,\n                        5750,\n                        477,\n                        480,\n                        463,\n                        464,\n                        5351,\n                        5352,\n                        5353,\n                        5678\n                    ],\n                    \"time\": \"2025-07-18\"\n                },\n                {\n                    \"dishes\": [\n                        6381,\n                        481,\n                        500,\n                        511,\n                        278,\n                        280,\n                        5354,\n                        5355,\n                        5356,\n                        5690\n                    ],\n                    \"time\": \"2025-07-19\"\n                },\n                {\n                    \"dishes\": [\n                        6382,\n                        6669,\n                        6670,\n                        6684,\n                        282,\n                        289,\n                        5357,\n                        5358,\n                        5359,\n                        5693\n                    ],\n                    \"time\": \"2025-07-20\"\n                },\n                {\n                    \"dishes\": [\n                        6384,\n                        6685,\n                        594,\n                        596,\n                        290,\n                        292,\n                        5360,\n                        5361,\n                        5362,\n                        6394\n                    ],\n                    \"time\": \"2025-07-21\"\n                },\n                {\n                    \"dishes\": [\n                        6385,\n                        601,\n                        613,\n                        1109,\n                        294,\n                        295,\n                        5363,\n                        5364,\n                        5365,\n                        6404\n                    ],\n                    \"time\": \"2025-07-22\"\n                },\n                {\n                    \"dishes\": [\n                        6386,\n                        1131,\n                        6433,\n                        6434,\n                        298,\n                        299,\n                        5366,\n                        5367,\n                        5368,\n                        803\n                    ],\n                    \"time\": \"2025-07-23\"\n                },\n                {\n                    \"dishes\": [\n                        6387,\n                        6438,\n                        6439,\n                        6443,\n                        300,\n                        116,\n                        5369,\n                        5370,\n                        5371,\n                        1162\n                    ],\n                    \"time\": \"2025-07-24\"\n                },\n                {\n                    \"dishes\": [\n                        194,\n                        6447,\n                        6448,\n                        6450,\n                        118,\n                        119,\n                        5372,\n                        5373,\n                        5374,\n                        1166\n                    ],\n                    \"time\": \"2025-07-25\"\n                },\n                {\n                    \"dishes\": [\n                        200,\n                        6451,\n                        6202,\n                        6216,\n                        120,\n                        123,\n                        5375,\n                        5376,\n                        5377,\n                        1325\n                    ],\n                    \"time\": \"2025-07-26\"\n                },\n                {\n                    \"dishes\": [\n                        203,\n                        6217,\n                        6218,\n                        6219,\n                        124,\n                        127,\n                        5378,\n                        5379,\n                        5380,\n                        1333\n                    ],\n                    \"time\": \"2025-07-27\"\n                },\n                {\n                    \"dishes\": [\n                        12,\n                        6220,\n                        5648,\n                        5652,\n                        130,\n                        133,\n                        5381,\n                        5382,\n                        5383,\n                        1334\n                    ],\n                    \"time\": \"2025-07-28\"\n                },\n                {\n                    \"dishes\": [\n                        34,\n                        5667,\n                        806,\n                        808,\n                        134,\n                        136,\n                        5384,\n                        5385,\n                        5386,\n                        1343\n                    ],\n                    \"time\": \"2025-07-29\"\n                },\n                {\n                    \"dishes\": [\n                        5758,\n                        1133,\n                        5758,\n                        1133,\n                        137,\n                        5,\n                        5387,\n                        5388,\n                        5389,\n                        1343\n                    ],\n                    \"time\": \"2025-07-30\"\n                }\n            ]\n        },\n        {\n            \"combinedData\": [\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-01\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-02\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-03\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-04\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-05\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-06\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-07\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-08\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-09\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-10\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-11\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-12\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-13\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-14\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-15\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-16\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-17\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-18\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-19\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-20\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-21\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-22\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-23\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-24\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-25\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-26\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-27\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-28\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-29\"\n                },\n                {\n                    \"dishes\": [],\n                    \"time\": \"2025-07-30\"\n                }\n            ]\n        },\n        {\n            \"combinedData\": [\n                {\n                    \"dishes\": [\n                        1,\n                        85,\n                        5915,\n                        5916,\n                        916,\n                        64,\n                        5343,\n                        204,\n                        302,\n                        111\n                    ],\n                    \"time\": \"2025-07-01\"\n                },\n                {\n                    \"dishes\": [\n                        6688,\n                        5919,\n                        5920,\n                        5921,\n                        140,\n                        272,\n                        460,\n                        5341,\n                        931,\n                        467\n                    ],\n                    \"time\": \"2025-07-02\"\n                },\n                {\n                    \"dishes\": [\n                        2,\n                        1290,\n                        1295,\n                        1296,\n                        273,\n                        274,\n                        5344,\n                        5345,\n                        1292,\n                        22\n                    ],\n                    \"time\": \"2025-07-03\"\n                },\n                {\n                    \"dishes\": [\n                        109,\n                        1302,\n                        5922,\n                        5923,\n                        110,\n                        112,\n                        5347,\n                        5348,\n                        1293,\n                        5736\n                    ],\n                    \"time\": \"2025-07-04\"\n                },\n                {\n                    \"dishes\": [\n                        14,\n                        5924,\n                        5925,\n                        5926,\n                        1288,\n                        1291,\n                        5699,\n                        929,\n                        5722,\n                        5742\n                    ],\n                    \"time\": \"2025-07-05\"\n                },\n                {\n                    \"dishes\": [\n                        1300,\n                        5927,\n                        5928,\n                        5929,\n                        1305,\n                        1312,\n                        941,\n                        227,\n                        468,\n                        478\n                    ],\n                    \"time\": \"2025-07-06\"\n                },\n                {\n                    \"dishes\": [\n                        5312,\n                        5930,\n                        5931,\n                        5932,\n                        1313,\n                        5719,\n                        61,\n                        309,\n                        297,\n                        482\n                    ],\n                    \"time\": \"2025-07-07\"\n                },\n                {\n                    \"dishes\": [\n                        5313,\n                        5933,\n                        5934,\n                        5936,\n                        5721,\n                        5723,\n                        317,\n                        5329,\n                        5763,\n                        483\n                    ],\n                    \"time\": \"2025-07-08\"\n                },\n                {\n                    \"dishes\": [\n                        5314,\n                        5938,\n                        5939,\n                        5940,\n                        5724,\n                        5725,\n                        5330,\n                        5333,\n                        6686,\n                        485\n                    ],\n                    \"time\": \"2025-07-09\"\n                },\n                {\n                    \"dishes\": [\n                        5315,\n                        5941,\n                        5942,\n                        5943,\n                        5728,\n                        5729,\n                        5334,\n                        5335,\n                        5336,\n                        487\n                    ],\n                    \"time\": \"2025-07-10\"\n                },\n                {\n                    \"dishes\": [\n                        5316,\n                        196,\n                        197,\n                        198,\n                        701,\n                        706,\n                        5337,\n                        5338,\n                        5698,\n                        489\n                    ],\n                    \"time\": \"2025-07-11\"\n                },\n                {\n                    \"dishes\": [\n                        5317,\n                        205,\n                        462,\n                        275,\n                        709,\n                        712,\n                        895,\n                        898,\n                        382,\n                        599\n                    ],\n                    \"time\": \"2025-07-12\"\n                },\n                {\n                    \"dishes\": [\n                        5318,\n                        277,\n                        279,\n                        286,\n                        715,\n                        719,\n                        993,\n                        994,\n                        1019,\n                        610\n                    ],\n                    \"time\": \"2025-07-13\"\n                },\n                {\n                    \"dishes\": [\n                        5320,\n                        288,\n                        303,\n                        304,\n                        720,\n                        721,\n                        923,\n                        940,\n                        767,\n                        620\n                    ],\n                    \"time\": \"2025-07-14\"\n                },\n                {\n                    \"dishes\": [\n                        6376,\n                        114,\n                        117,\n                        122,\n                        722,\n                        723,\n                        6687,\n                        102,\n                        179,\n                        1108\n                    ],\n                    \"time\": \"2025-07-15\"\n                },\n                {\n                    \"dishes\": [\n                        6378,\n                        126,\n                        132,\n                        138,\n                        724,\n                        725,\n                        5648,\n                        5652,\n                        5667,\n                        1111\n                    ],\n                    \"time\": \"2025-07-16\"\n                },\n                {\n                    \"dishes\": [\n                        6379,\n                        139,\n                        27,\n                        5735,\n                        6389,\n                        202,\n                        806,\n                        808,\n                        1133,\n                        6449\n                    ],\n                    \"time\": \"2025-07-17\"\n                },\n                {\n                    \"dishes\": [\n                        6380,\n                        5750,\n                        477,\n                        480,\n                        463,\n                        464,\n                        6202,\n                        6216,\n                        6217,\n                        5663\n                    ],\n                    \"time\": \"2025-07-18\"\n                },\n                {\n                    \"dishes\": [\n                        6381,\n                        481,\n                        500,\n                        511,\n                        278,\n                        280,\n                        6218,\n                        6219,\n                        6220,\n                        5678\n                    ],\n                    \"time\": \"2025-07-19\"\n                },\n                {\n                    \"dishes\": [\n                        6382,\n                        6669,\n                        6670,\n                        6684,\n                        282,\n                        289,\n                        594,\n                        596,\n                        601,\n                        5690\n                    ],\n                    \"time\": \"2025-07-20\"\n                },\n                {\n                    \"dishes\": [\n                        6384,\n                        6685,\n                        613,\n                        1109,\n                        290,\n                        292,\n                        1131,\n                        6433,\n                        6434,\n                        5693\n                    ],\n                    \"time\": \"2025-07-21\"\n                },\n                {\n                    \"dishes\": [\n                        6385,\n                        6438,\n                        6439,\n                        6443,\n                        294,\n                        295,\n                        6447,\n                        6448,\n                        6450,\n                        6394\n                    ],\n                    \"time\": \"2025-07-22\"\n                },\n                {\n                    \"dishes\": [\n                        6386,\n                        6451,\n                        6202,\n                        6216,\n                        298,\n                        299,\n                        6217,\n                        6218,\n                        6219,\n                        6404\n                    ],\n                    \"time\": \"2025-07-23\"\n                },\n                {\n                    \"dishes\": [\n                        6387,\n                        6220,\n                        5648,\n                        5652,\n                        300,\n                        116,\n                        5667,\n                        806,\n                        808,\n                        803\n                    ],\n                    \"time\": \"2025-07-24\"\n                },\n                {\n                    \"dishes\": [\n                        194,\n                        1133,\n                        85,\n                        5915,\n                        118,\n                        119,\n                        5916,\n                        5918,\n                        5919,\n                        1162\n                    ],\n                    \"time\": \"2025-07-25\"\n                },\n                {\n                    \"dishes\": [\n                        200,\n                        5920,\n                        5921,\n                        1290,\n                        120,\n                        123,\n                        1295,\n                        1296,\n                        1297,\n                        1166\n                    ],\n                    \"time\": \"2025-07-26\"\n                },\n                {\n                    \"dishes\": [\n                        203,\n                        1302,\n                        5922,\n                        5923,\n                        124,\n                        127,\n                        5924,\n                        5925,\n                        5926,\n                        1325\n                    ],\n                    \"time\": \"2025-07-27\"\n                },\n                {\n                    \"dishes\": [\n                        12,\n                        5927,\n                        5928,\n                        5929,\n                        130,\n                        133,\n                        5930,\n                        5931,\n                        5932,\n                        1333\n                    ],\n                    \"time\": \"2025-07-28\"\n                },\n                {\n                    \"dishes\": [\n                        34,\n                        5933,\n                        5934,\n                        5936,\n                        134,\n                        136,\n                        5938,\n                        5939,\n                        5940,\n                        1334\n                    ],\n                    \"time\": \"2025-07-29\"\n                },\n                {\n                    \"dishes\": [\n                        5758,\n                        5941,\n                        5942,\n                        5943,\n                        137,\n                        5,\n                        196,\n                        197,\n                        198,\n                        1343\n                    ],\n                    \"time\": \"2025-07-30\"\n                }\n            ]\n        }\n    ]\n}\n```\n\n",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer pat_eSlh0JnGfFxGbOY9MjOrHc060pWV8CoZM18uO0MpAsJ3NZpO52Yw2t7H4lG2xOUy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "x-apifox-ignore-properties": [],
                "x-apifox-orders": []
              },
              "example": {
                "workflow_id": "7527594589533601801",
                "parameters": {
                  "date": "2025-08-20",
                  "diet": [
                    {
                      "meal": "早餐及早加餐",
                      "carbohydrate": "92.86克",
                      "protein": "33.77克",
                      "fat": "18.76克",
                      "remmonedEnery": "675.36千卡",
                      "sql": "SELECT ai_dishes_id,dishes_id,name,weight,energy FROM ai_dishes_zhct_dev WHERE dishes_id in (14,193,200,211,333,37,79,80,85,187,196,205,64,74,76,5343,5344,5345,5348,102,179,237,297,302,338,382,446,468,895,898,923,931,940,990,991,993,994,1019,5338,6645,216,306,415,483,762)"
                    }
                  ],
                  "info": {
                    "height": "180.00",
                    "weight": "70.00",
                    "birthday": "2010-01-01",
                    "age": 15,
                    "sex": "男",
                    "health": "糖尿病,高血压,高血脂,高尿酸",
                    "sport": "坐位或卧位生活不能自理人群",
                    "foodAllergy": "含有麸质的谷物及其制品,甲壳纲类动物及其制品,鱼类及其制品,蛋类及其制品,花生及其制品,大豆及其制品,乳及乳制品,坚果及其坚果制品",
                    "foodTaboos": "猪肉,内脏,香菜,辣",
                    "focus": "健骨,补血,抗炎"
                  },
                  "isChange": false
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                },
                "example": {
                  "code": 0,
                  "data": "{\"output\":[{\"carbohydrate\":\"4.42\",\"energy\":\"201.8\",\"fat\":\"18.42\",\"id\":\"2155\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20221219/6C4476F1-FF00-71EC-9223-4AB5C46A9F6F.png\",\"name\":\"腊味荷兰豆\",\"protein\":\"4.98\",\"weight\":\"100\"},{\"carbohydrate\":\"1.97\",\"energy\":\"20.53\",\"fat\":\"1.11\",\"id\":\"1207\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20230130/D398EC4D-E269-6F7F-23D6-DEC916928F6C.jpg\",\"name\":\"清炒荷兰豆\",\"protein\":\"0.87\",\"weight\":\"33\"},{\"carbohydrate\":\"6.17\",\"energy\":\"41.97\",\"fat\":\"1.13\",\"id\":\"2204\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20230207/ED8F7FC1-0A5C-D122-B596-2FB421AA8120.jpg\",\"name\":\"西葫芦煎饼\",\"protein\":\"1.98\",\"weight\":\"40\"},{\"carbohydrate\":\"1.53\",\"energy\":\"45.09\",\"fat\":\"2.54\",\"id\":\"1190\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20230130/617083ED-6C69-F62A-164F-C40BF18ED137.jpeg\",\"name\":\"西葫芦炒肉\",\"protein\":\"4.19\",\"weight\":\"49\"},{\"carbohydrate\":\"10.49\",\"energy\":\"51.52\",\"fat\":\"0.55\",\"id\":\"8\",\"img_url\":\"https://img.kxunpt.cn/zyjy/prod/10001/20241226/a4050232fa4e4006c9fa819d7eba909d.png\",\"name\":\"煮玉米\",\"protein\":\"1.84\",\"weight\":\"100\"},{\"carbohydrate\":\"39.67\",\"energy\":\"191.82\",\"fat\":\"1.1\",\"id\":\"4\",\"img_url\":\"https://img.kxunpt.cn/zyjy/prod/10001/20241226/3ce27f4bcf5f33ff84190bf08265e5f3.png\",\"name\":\"玉米馒头（大）\",\"protein\":\"6.95\",\"weight\":\"94\"},{\"carbohydrate\":\"18.8\",\"energy\":\"89.2\",\"fat\":\"0.44\",\"id\":\"1\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20230130/49C83047-1A1F-3978-F7EB-64CC4811ACD6.JPG\",\"name\":\"白馒头（小）\",\"protein\":\"2.8\",\"weight\":\"40\"},{\"carbohydrate\":\"44.45\",\"energy\":\"215.6\",\"fat\":\"1.28\",\"id\":\"5\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20221201/0F89A19E-C4D7-5C05-9397-91364D6E3427.png\",\"name\":\"杂粮馒头\",\"protein\":\"7.84\",\"weight\":\"98\"},{\"carbohydrate\":\"14.11\",\"energy\":\"66.36\",\"fat\":\"6.77\",\"id\":\"2293\",\"img_url\":\"https://img.kxunpt.cn/zhct/static/upload/cater/20221219/A62B76D4-1206-BC5B-2FF9-CD19591846C5.png\",\"name\":\"雪媚娘（芒果）\",\"protein\":\"1.29\",\"weight\":\"50\"}]}",
                  "debug_url": "https://www.coze.cn/work_flow?execute_id=7535372307041615922&space_id=7366210605697007616&workflow_id=7496376338116280370&execute_mode=2",
                  "msg": "Success",
                  "usage": {
                    "input_count": 1035,
                    "output_count": 12,
                    "token_count": 1047
                  }
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-338613574-run"
      }
    },
    "/v1/workflows/7507104694398320678/run_histories/7508644404997406783": {
      "get": {
        "summary": "coze查询异步工作流执行结果",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer pat_eSlh0JnGfFxGbOY9MjOrHc060pWV8CoZM18uO0MpAsJ3NZpO52Yw2t7H4lG2xOUy",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-300701492-run"
      }
    },
    "/api/v3/chat/completions": {
      "post": {
        "summary": "火山引擎大模型调用AI一下",
        "deprecated": false,
        "description": "\n入参\n```\n{\n    \"model\": \"doubao-1-5-thinking-vision-pro-250428\",\n    \"messages\": [\n        {\n            \"role\": \"system\",\n            \"content\": \"你是专业的菜品识别专家。请先精准识别图片中的核心内容（若包含多种，需分别识别并列出），然后按以下规则分类：若识别出的菜品属于菜品范围内，将其放入数组targetDishes中；若识别出的菜品不在菜品范围内，将其放入数组otherDishes中。\"\n        },\n        {\n            \"content\": [\n                {\n                    \"image_url\": {\n                        \"url\": \"https://img.kxunpt.cn/zhct_dev/static/upload/cater/20250812/sourceimg/9D794C9A-D247-5048-B78B-609344BA8ABD1.png\"\n                    },\n                    \"type\": \"image_url\"\n                },\n                {\n                    \"text\": \"菜品范围：蒸蛋、米饭、油面筋塞肉、紫菜汤、黄豆芽豆泡肉丝、毛豆子烧鸡块、清炒青菜\",\n                    \"type\": \"text\"\n                }\n            ],\n            \"role\": \"user\"\n        }\n    ],\n    \"thinking\": {\n        \"type\": \"disabled\"\n    },\n    \"response_format\": {\n        \"type\": \"json_schema\",\n        \"json_schema\": {\n            \"name\": \"identify\",\n            \"description\": \"识别结果\",\n            \"strict\": true,\n            \"schema\": {\n                \"type\": \"object\",\n                \"properties\": {\n                    \"targetDishes\": {\n                        \"type\": \"array\",\n                        \"description\": \"识别出的菜品属于菜品范围内\"\n                    },\n                    \"otherDishes\": {\n                        \"type\": \"array\",\n                        \"description\": \"识别出的菜品不在菜品范围内\"\n                    }\n                },\n                \"required\": [\n                    \"targetDishes\",\n                    \"otherDishes\"\n                ],\n                \"additionalProperties\": false\n            }\n        }\n    }\n}\n```\n结果\n```\n{\n    \"choices\": [\n        {\n            \"finish_reason\": \"stop\",\n            \"index\": 0,\n            \"logprobs\": null,\n            \"message\": {\n                \"content\": \"{\\n    \\\"targetDishes\\\": [\\\"米饭\\\", \\\"蒸蛋\\\", \\\"清炒青菜\\\"],\\n    \\\"otherDishes\\\": []\\n}\",\n                \"role\": \"assistant\"\n            }\n        }\n    ],\n    \"created\": 1754975638,\n    \"id\": \"02175497563789751a4de465b0283da2206832d2fbfef91e3031d\",\n    \"model\": \"doubao-1-5-thinking-vision-pro-250428\",\n    \"service_tier\": \"default\",\n    \"object\": \"chat.completion\",\n    \"usage\": {\n        \"completion_tokens\": 30,\n        \"prompt_tokens\": 1671,\n        \"total_tokens\": 1701,\n        \"prompt_tokens_details\": {\n            \"cached_tokens\": 0\n        },\n        \"completion_tokens_details\": {\n            \"reasoning_tokens\": 0\n        }\n    }\n}\n```",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer b99481be-a78d-4ee7-ba3d-182737bdb176",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "content-type",
            "in": "header",
            "description": "",
            "required": true,
            "example": "application/json",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "",
            "required": true,
            "example": "text/event-stream",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Connection",
            "in": "header",
            "description": "",
            "required": true,
            "example": "keep-alive",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "x-apifox-ignore-properties": [],
                "x-apifox-orders": []
              },
              "example": {
                "model": "doubao-seed-1-6-thinking-250715",
                "messages": [
                  {
                    "role": "system",
                    "content": "你是一位专业的菜品识别专家。你的任务是仔细分析提供的菜品图片，尽可能准确地识别其中的菜品。 识别规则：1. 在识别过程中，要充分考虑食材常见别名进行匹配，且必须优先匹配给定菜品范围内的菜品，若范围内无匹配菜品，再考虑范围外菜品。如西兰花常被称作花菜，西红柿也叫番茄，橘子和桔子为同一水果等。同时仔细观察菜品的色泽、形状、纹理等特征来准确识别，如红烧排骨通常色泽红亮、块状；馒头一般为白色、方形或圆形等。2. 对于外观可能相似的菜品（如桔子切片和烤面包片），除考虑外观颜色、形状外，还可结合食物的质地（桔子柔软多"
                  },
                  {
                    "content": [
                      {
                        "image_url": {
                          "url": "https://jgswct.i-wnd.cn:8453/zhct_xwq/static/upload/initial_menu/artwork_master/20250919/2D27D119-D6DC-F11D-FC8D-8260FFD8D209.jpg"
                        },
                        "type": "image_url"
                      },
                      {
                        "text": "菜品范围：西兰花炒虾仁、蒸南瓜、白灼虾、煮玉米、红烧牛肉、椰奶",
                        "type": "text"
                      }
                    ],
                    "role": "user"
                  }
                ],
                "response_format": {
                  "type": "json_schema",
                  "json_schema": {
                    "name": "identify",
                    "description": "识别结果",
                    "strict": true,
                    "schema": {
                      "type": "object",
                      "properties": {
                        "targetDishes": {
                          "type": "array",
                          "description": "识别出的菜品属于菜品范围内"
                        },
                        "otherDishes": {
                          "type": "array",
                          "description": "识别出的菜品不在菜品范围内"
                        }
                      },
                      "required": [
                        "targetDishes",
                        "otherDishes"
                      ],
                      "additionalProperties": false
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-395755422-run"
      }
    },
    "/api/v3/knowledge_base/search": {
      "post": {
        "summary": "火山引擎知识库检索",
        "deprecated": false,
        "description": "\n入参\n```\n{\n    \"model\": \"doubao-1-5-thinking-vision-pro-250428\",\n    \"messages\": [\n        {\n            \"role\": \"system\",\n            \"content\": \"你是专业的菜品识别专家。请先精准识别图片中的核心内容（若包含多种，需分别识别并列出），然后按以下规则分类：若识别出的菜品属于菜品范围内，将其放入数组targetDishes中；若识别出的菜品不在菜品范围内，将其放入数组otherDishes中。\"\n        },\n        {\n            \"content\": [\n                {\n                    \"image_url\": {\n                        \"url\": \"https://img.kxunpt.cn/zhct_dev/static/upload/cater/20250812/sourceimg/9D794C9A-D247-5048-B78B-609344BA8ABD1.png\"\n                    },\n                    \"type\": \"image_url\"\n                },\n                {\n                    \"text\": \"菜品范围：蒸蛋、米饭、油面筋塞肉、紫菜汤、黄豆芽豆泡肉丝、毛豆子烧鸡块、清炒青菜\",\n                    \"type\": \"text\"\n                }\n            ],\n            \"role\": \"user\"\n        }\n    ],\n    \"thinking\": {\n        \"type\": \"disabled\"\n    },\n    \"response_format\": {\n        \"type\": \"json_schema\",\n        \"json_schema\": {\n            \"name\": \"identify\",\n            \"description\": \"识别结果\",\n            \"strict\": true,\n            \"schema\": {\n                \"type\": \"object\",\n                \"properties\": {\n                    \"targetDishes\": {\n                        \"type\": \"array\",\n                        \"description\": \"识别出的菜品属于菜品范围内\"\n                    },\n                    \"otherDishes\": {\n                        \"type\": \"array\",\n                        \"description\": \"识别出的菜品不在菜品范围内\"\n                    }\n                },\n                \"required\": [\n                    \"targetDishes\",\n                    \"otherDishes\"\n                ],\n                \"additionalProperties\": false\n            }\n        }\n    }\n}\n```\n结果\n```\n{\n    \"choices\": [\n        {\n            \"finish_reason\": \"stop\",\n            \"index\": 0,\n            \"logprobs\": null,\n            \"message\": {\n                \"content\": \"{\\n    \\\"targetDishes\\\": [\\\"米饭\\\", \\\"蒸蛋\\\", \\\"清炒青菜\\\"],\\n    \\\"otherDishes\\\": []\\n}\",\n                \"role\": \"assistant\"\n            }\n        }\n    ],\n    \"created\": 1754975638,\n    \"id\": \"02175497563789751a4de465b0283da2206832d2fbfef91e3031d\",\n    \"model\": \"doubao-1-5-thinking-vision-pro-250428\",\n    \"service_tier\": \"default\",\n    \"object\": \"chat.completion\",\n    \"usage\": {\n        \"completion_tokens\": 30,\n        \"prompt_tokens\": 1671,\n        \"total_tokens\": 1701,\n        \"prompt_tokens_details\": {\n            \"cached_tokens\": 0\n        },\n        \"completion_tokens_details\": {\n            \"reasoning_tokens\": 0\n        }\n    }\n}\n```",
        "tags": [
          "AI运动营养师/CozeAI"
        ],
        "parameters": [
          {
            "name": "Authorization",
            "in": "header",
            "description": "",
            "required": false,
            "example": "Bearer b99481be-a78d-4ee7-ba3d-182737bdb176",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "content-type",
            "in": "header",
            "description": "",
            "required": true,
            "example": "application/json",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Accept",
            "in": "header",
            "description": "",
            "required": true,
            "example": "text/event-stream",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Connection",
            "in": "header",
            "description": "",
            "required": true,
            "example": "keep-alive",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "x-apifox-ignore-properties": [],
                "x-apifox-orders": []
              },
              "example": {
                "model": "doubao-seed-1-6-thinking-250715",
                "messages": [
                  {
                    "role": "system",
                    "content": "你是一位专业的菜品识别专家。你的任务是仔细分析提供的菜品图片，尽可能准确地识别其中的菜品。 识别规则：1. 在识别过程中，要充分考虑食材常见别名进行匹配，且必须优先匹配给定菜品范围内的菜品，若范围内无匹配菜品，再考虑范围外菜品。如西兰花常被称作花菜，西红柿也叫番茄，橘子和桔子为同一水果等。同时仔细观察菜品的色泽、形状、纹理等特征来准确识别，如红烧排骨通常色泽红亮、块状；馒头一般为白色、方形或圆形等。2. 对于外观可能相似的菜品（如桔子切片和烤面包片），除考虑外观颜色、形状外，还可结合食物的质地（桔子柔软多"
                  },
                  {
                    "content": [
                      {
                        "image_url": {
                          "url": "https://jgswct.i-wnd.cn:8453/zhct_xwq/static/upload/initial_menu/artwork_master/20250919/2D27D119-D6DC-F11D-FC8D-8260FFD8D209.jpg"
                        },
                        "type": "image_url"
                      },
                      {
                        "text": "菜品范围：西兰花炒虾仁、蒸南瓜、白灼虾、煮玉米、红烧牛肉、椰奶",
                        "type": "text"
                      }
                    ],
                    "role": "user"
                  }
                ],
                "response_format": {
                  "type": "json_schema",
                  "json_schema": {
                    "name": "identify",
                    "description": "识别结果",
                    "strict": true,
                    "schema": {
                      "type": "object",
                      "properties": {
                        "targetDishes": {
                          "type": "array",
                          "description": "识别出的菜品属于菜品范围内"
                        },
                        "otherDishes": {
                          "type": "array",
                          "description": "识别出的菜品不在菜品范围内"
                        }
                      },
                      "required": [
                        "targetDishes",
                        "otherDishes"
                      ],
                      "additionalProperties": false
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/CozeAI",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-396500114-run"
      }
    },
    "/api/healthkit/notifications": {
      "post": {
        "summary": "华为健康订阅通知接口",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/华为健康"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "openId": {
                    "description": "华为健康openId",
                    "example": "AAAoUgQucCprPewRAdhpf3VxfCzu",
                    "type": "string"
                  },
                  "eventTime": {
                    "description": "事件发生时间",
                    "example": "1607514090688",
                    "type": "string"
                  },
                  "eventType": {
                    "description": "事件类型ID",
                    "example": "SAMPLESET_EVENT$UPDATE$com.huawei.continuous.steps.total",
                    "type": "string"
                  },
                  "type": {
                    "description": "事件类别",
                    "example": "SAMPLESET_EVENT",
                    "type": "string"
                  },
                  "subType": {
                    "description": "子事件类别",
                    "example": "UPDATE",
                    "type": "string"
                  },
                  "subscriptionId": {
                    "description": "订阅记录ID",
                    "example": "fbc790f0-b25f-4844-8c16-68e786f84cfa",
                    "type": "string"
                  },
                  "metaData": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    },
                    "description": "事件扩展元数据。请参见MetaData数据模型",
                    "example": [
                      ""
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/华为健康",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-332589222-run"
      }
    },
    "/api/healthkit/hwdata": {
      "get": {
        "summary": "华为健康应用Scheme地址",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/华为健康"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/华为健康",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-301366790-run"
      }
    },
    "/oauth2/v3/tokeninfo": {
      "post": {
        "summary": "验证ID Token有效性--调试用",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/华为健康"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "id_token": {
                    "example": "eyJraWQiOiIzZDE4NjU1MGRlMmRhYjYzMzUyOGY1MmQwZGYxYTJlNjc3MTJmMTgwYjUxMmRiNzc3YzhiMmUyN2Q1MTk0NTA3IiwidHlwIjoiSldUIiwiYWxnIjoiUlMyNTYifQ.eyJhdF9oYXNoIjoiS05LWWs0Z3RaczlMSFVhVlJCbXVNUSIsImF1ZCI6IjExNDMwMzc0NyIsInN1YiI6IkFBQUNyWXE5LWNJQXNGcVk5OU5ONElhbTZDdDRVIiwiYXpwIjoiMTE0MzAzNzQ3Iiwib3BlbmlkIjoiQUFBb1VnUXVjQ3ByTUpBckg5aHBmM1Z4ZkN6dSIsImlzcyI6Imh0dHBzOi8vYWNjb3VudHMuaHVhd2VpLmNvbSIsImV4cCI6MTc1MTM1MDEyNiwiaWF0IjoxNzUxMzQ2NTI2LCJub25jZSI6ImRlZmF1bHQifQ.JaSfwn5P9iHfDBXPrZuQHvV-ahGpR_CBnH23XfJBbi7PlCPyxkZVyPZex2UuyjAFSmGJCh0Qt6p-38XBnS-Dsr7g3OHjkaMOsk3SaA4sFwVZpIgOoVHWfsBYdCm20ggKzmz5nOvOBakwgzpIBZKEHnzcHcN6xwpdriSPSuuhYp3Up_yG7spKWwSWlOihr5PJlefq5Ml7q4g-iteYQPQthuSCC-lePyVyY1SHbMLm4HjyHw7jkJG6a54MgameHBBgxe658Zq5vifjTOKvpEuADjMCuQnzf__tSk2Cao8db2r6N52NdN62M0bUccPaj36HjYP1mP3QPVSwySkTIW0vzQ",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/华为健康",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-315950281-run"
      }
    },
    "/rest.php": {
      "post": {
        "summary": "获取用户信息",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/华为健康"
        ],
        "parameters": [
          {
            "name": "nsp_svc",
            "in": "query",
            "description": "",
            "required": false,
            "example": "GOpen.User.getInfo",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "access_token": {
                    "example": "DQEAAB5WSehWC1iCQMdQKFPoO+KMwSBNvmrPiYIbXfa1BQnTDrlfOGN4AR+1L6RtrZy778bZVEq2HUQjZQEJiUNqX22INMjTOdmGkk9Q33M/oDdtnVTN",
                    "type": "string"
                  },
                  "getNickName": {
                    "example": "1",
                    "type": "string"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/华为健康",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-315954621-run"
      }
    },
    "/api/restaurant/detail": {
      "get": {
        "summary": "根据档口id获取档口信息",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/订餐"
        ],
        "parameters": [
          {
            "name": "restaurant_id",
            "in": "query",
            "description": "",
            "required": false,
            "example": "1",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/订餐",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-450857350-run"
      }
    },
    "/api/mealCheckout/directPay": {
      "post": {
        "summary": "小程序直接扣款并生成已支付订单",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/订餐"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "restaurant_id": {
                    "type": "integer"
                  },
                  "money": {
                    "type": "string"
                  },
                  "remark": {
                    "type": "string"
                  }
                },
                "required": [
                  "restaurant_id",
                  "money",
                  "remark"
                ],
                "x-apifox-orders": [
                  "restaurant_id",
                  "money",
                  "remark"
                ],
                "x-apifox-ignore-properties": []
              },
              "example": {
                "restaurant_id": 1,
                "money": "12.50",
                "remark": ""
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师/订餐",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-450865253-run"
      }
    },
    "/face/login": {
      "post": {
        "summary": "没用-人脸登录",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/英吉多设备"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "mac": {
                    "type": "string",
                    "description": "设备 mac 地址",
                    "example": ""
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "人脸图片文件（文档说明也可用 base64 提交，未给字段名）",
                    "example": ""
                  }
                },
                "required": [
                  "mac",
                  "file"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "用户信息",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/FaceLoginResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [
          {
            "basicAuth": [],
            "x-apifox": {
              "schemeGroups": [
                {
                  "id": "lDjvhpgcBqIptCp4y27jk",
                  "schemeIds": [
                    "basicAuth"
                  ]
                }
              ],
              "required": true,
              "use": {
                "id": "lDjvhpgcBqIptCp4y27jk",
                "configs": {
                  "basicAuth": {
                    "authConfigs": {
                      "x-apifox": {
                        "username": "{{basicAuthUsername}}",
                        "password": "{{basicAuthPassword}}"
                      }
                    }
                  }
                }
              },
              "scopes": {
                "lDjvhpgcBqIptCp4y27jk": {
                  "basicAuth": []
                }
              }
            }
          }
        ],
        "x-apifox-folder": "AI运动营养师/英吉多设备",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-421876188-run"
      }
    },
    "/rank/list": {
      "get": {
        "summary": "没用-获取运动总排行榜（周期/排序字段）",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/英吉多设备"
        ],
        "parameters": [
          {
            "name": "pageNum",
            "in": "query",
            "description": "当前页码",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页数量",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "period",
            "in": "query",
            "description": "排序周期：1-天，2-周，3-月，4-年",
            "required": true,
            "schema": {
              "type": "integer",
              "enum": [
                1,
                2,
                3,
                4
              ]
            }
          },
          {
            "name": "sort",
            "in": "query",
            "description": "排序字段：0-时间，1-做功，2-卡路里，3-距离",
            "required": true,
            "schema": {
              "type": "integer",
              "enum": [
                0,
                1,
                2,
                3
              ]
            }
          },
          {
            "name": "type",
            "in": "query",
            "description": "设备类型",
            "required": true,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "排行榜",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/RankListResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [
          {
            "basicAuth": [],
            "x-apifox": {
              "schemeGroups": [
                {
                  "id": "lDjvhpgcBqIptCp4y27jk",
                  "schemeIds": [
                    "basicAuth"
                  ]
                }
              ],
              "required": true,
              "use": {
                "id": "lDjvhpgcBqIptCp4y27jk",
                "configs": {
                  "basicAuth": {
                    "authConfigs": {
                      "x-apifox": {
                        "username": "{{basicAuthUsername}}",
                        "password": "{{basicAuthPassword}}"
                      }
                    }
                  }
                }
              },
              "scopes": {
                "lDjvhpgcBqIptCp4y27jk": {
                  "basicAuth": []
                }
              }
            }
          }
        ],
        "x-apifox-folder": "AI运动营养师/英吉多设备",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-421876195-run"
      }
    },
    "/users": {
      "put": {
        "summary": "没用-修改用户信息",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师/英吉多设备"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateUserRequest"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "修改结果",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiEnvelope"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [
          {
            "basicAuth": [],
            "x-apifox": {
              "schemeGroups": [
                {
                  "id": "lDjvhpgcBqIptCp4y27jk",
                  "schemeIds": [
                    "basicAuth"
                  ]
                }
              ],
              "required": true,
              "use": {
                "id": "lDjvhpgcBqIptCp4y27jk",
                "configs": {
                  "basicAuth": {
                    "authConfigs": {
                      "x-apifox": {
                        "username": "{{basicAuthUsername}}",
                        "password": "{{basicAuthPassword}}"
                      }
                    }
                  }
                }
              },
              "scopes": {
                "lDjvhpgcBqIptCp4y27jk": {
                  "basicAuth": []
                }
              }
            }
          }
        ],
        "x-apifox-folder": "AI运动营养师/英吉多设备",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-421876198-run"
      }
    },
    "/api/zhaiker.Device/qrcode": {
      "get": {
        "summary": "获取宅客设备所需二维码",
        "deprecated": false,
        "description": "",
        "tags": [
          "AI运动营养师"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "AI运动营养师",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446397482-run"
      }
    },
    "/psbcPayNotify.php": {
      "post": {
        "summary": "邮储支付回调",
        "deprecated": false,
        "description": "",
        "tags": [
          "邮储H5"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {},
                "x-apifox-ignore-properties": [],
                "x-apifox-orders": []
              },
              "example": {
                "request": "nPp4dpe38xmFam1LSSgjKgBRxcpNQGmn9y373SSLs9cacv6r1BYZbhKH1W/z/tRCDop/74rXCLjF\n27aALrDaE68ufFgvq+mRUjQZx/RhRRZi6ZCxVfR0nBjkkSslTTg25R+S7h+aOZWvoOyEW8MLsMFa\nOfGLhBFIK7QclY5jvHQYb1jSOvKSqh5MAXG+5QkaXwv1pSYFyFPTDQ88fstHexIZBYusXFQPDXyp\nG+1RBC1Vp3bAnx7paNkCIM2jd61nds2gg4/PbMqBxwvuSLT4eNbTlDpDRl/QmH251QYGr6UPdUHf\nrtbzZZMI2RYXrTa/earmxN/QFegUswBUrzP+m24/FiswIGPgk5ICYSrTzUX5WF6dEAQ5T0U9Ouuw\ny7VRa2zh6H0twa/KKc4ISwsxsmf2ksibQsWZjWozJuaWxgPF1sjlbDnB60l8GdweFzYQhI+WYkEo\n6J5o6nZSbNIEBKBizfe2NCvkZST0iWDGrrwjvHtT7NIgQ4FnxoYGrD59npD3ErUjAJMZXNVaHjJU\nhQVIMAlxkQ9gHh9Hhq0Wl+GGDo3P31+xiQaESJ/x+Lz5b7WVrsILXzonDCFSXdKGw7pYivU+l/Jk\nScPn3Ymod/V6ZABo5ha3G8VZvRnR7uaP39x3r9sXFrRTk1JR+xhhSAXB1UhqZi1Dw33cP/uQ5aD+\nBKddH/fww74jnKy+z6wRnViokg8rRYvot3RSBgsIxYz4cJ1ck12vg+e5qzYFV7x5KrZrORWoBZ9x\nk7XXLysozL8McmLRG/WR4h4N091EGU8cpJYivHyiROHibAgG+HSn6FxYdTP2al8VHIdMYnOZDLWn\nfmFoBM9q6V8A+CmYOmOuXQw7Twe4HIISEfT9bFIxkmDsvGDNXqH4f/u+zUjlUKbOLcQcTA1ulr6R\ntzguKZuKKwcKaNWcdPrwAS3ixbYMn3vEOVkj2R7rj1cAjB4eIfQGSSEN9vUHw2uR/lEfNs9XYtvp",
                "signature": "433611017744a999ae77df64f715d7f4f7f28434d3aa605d63f926a61fc693b#12307cc8d17634b913b6a305315f18c8f3650f8a20f9293a8c0f30542138a8b1",
                "accessToken": "",
                "encryptKey": "042D0F40F9ACB32944ED2CD5DAB0AFD74889C6694B68FAC77B9AF2EE4C13B656AE85066A6B6685A6D68880C0D244AA18EB2C30320407BB0742E55F7169A1966362A58934109B81841838D399E862650EAA42CB024BEA808252CCF94430C2EF524558F3A408CB5B4861EC4C44FCFD194412"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "邮储H5",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-426297706-run"
      }
    },
    "/api/drill.course/all": {
      "get": {
        "summary": "运动课程首页概览",
        "deprecated": false,
        "description": "返回当前登录用户体重管理目标对应的一类课程首页卡片数据。用于课程首页卡片展示。",
        "tags": [
          "运动课程"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "商城ID，默认10001",
            "required": false,
            "example": 10001,
            "schema": {
              "type": "integer",
              "default": 10001
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "登录Token",
            "required": true,
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "客户端平台，如 H5 / MP-WEIXIN",
            "required": false,
            "example": "H5",
            "schema": {
              "type": "string",
              "default": "H5"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DrillCourseOverviewResponse"
                },
                "example": {
                  "status": 200,
                  "message": "success",
                  "data": {
                    "goal": {
                      "status": 3,
                      "label": "减重",
                      "type_id": 1
                    },
                    "list": [
                      {
                        "type_id": 1,
                        "type_name": "减重",
                        "title": "零基础减脂课程",
                        "img": "https://img.xxx.com/course/type/jianzhi.png",
                        "total_course_count": 28,
                        "completed_course_count": 3,
                        "remaining_course_count": 25,
                        "progress_percent": 11,
                        "progress_ratio_text": "3/28课",
                        "progress_text": "3/28课 · 进度11%",
                        "progress_desc_text": "已完成3/28节课程",
                        "current_course": {
                          "id": 101,
                          "serial_no": 4,
                          "name": "下肢力量入门",
                          "duration": 720,
                          "duration_min": 12,
                          "duration_text": "12分钟",
                          "calories": 150,
                          "calories_text": "150千卡",
                          "img": "https://img.xxx.com/course/101.png",
                          "is_completed": 0
                        }
                      }
                    ]
                  },
                  "trace_id": "69b95f3780f2a"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          },
          "401": {
            "description": "未登录或Token失效",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                },
                "example": {
                  "message": "缺少必要的参数token, 请先登录",
                  "status": 401,
                  "data": [],
                  "trace_id": "69b95f3780f2a"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "没有权限",
            "x-apifox-ordering": 1
          }
        },
        "security": [],
        "x-apifox-folder": "运动课程",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-429336278-run"
      }
    },
    "/api/drill.course/type_detail": {
      "get": {
        "summary": "运动课程详情",
        "deprecated": false,
        "description": "返回当前目标课程的 tabs 与当前 tab 下的课程列表。用于课程详情页顶部进度区、tab 和课表列表展示。",
        "tags": [
          "运动课程"
        ],
        "parameters": [
          {
            "name": "storeId",
            "in": "query",
            "description": "商城ID，默认10001",
            "required": false,
            "example": 10001,
            "schema": {
              "type": "integer",
              "default": 10001
            }
          },
          {
            "name": "type_id",
            "in": "query",
            "description": "课程类型ID，不传默认取当前目标类型",
            "required": false,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "tab_index",
            "in": "query",
            "description": "tab分段索引，不传默认第1段",
            "required": false,
            "example": 1,
            "schema": {
              "type": "integer"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "登录Token",
            "required": true,
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "客户端平台，如 H5 / MP-WEIXIN",
            "required": false,
            "example": "H5",
            "schema": {
              "type": "string",
              "default": "H5"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "成功",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DrillCourseTypeDetailResponse"
                },
                "example": {
                  "status": 200,
                  "message": "success",
                  "data": {
                    "goal": {
                      "status": 3,
                      "label": "减重",
                      "type_id": 1
                    },
                    "type_id": 1,
                    "type_name": "减重",
                    "title": "零基础减脂课程",
                    "img": "https://img.xxx.com/course/type/jianzhi.png",
                    "desc": "适合零基础用户循序渐进减脂训练",
                    "total_course_count": 28,
                    "completed_course_count": 3,
                    "remaining_course_count": 25,
                    "progress_percent": 11,
                    "progress_ratio_text": "3/28课",
                    "progress_text": "3/28课 · 进度11%",
                    "progress_desc_text": "已完成3/28节课程",
                    "current_tab_index": 1,
                    "tabs": [
                      {
                        "tab_index": 1,
                        "tab_label": "1-7课",
                        "course_count": 7,
                        "selected": 1
                      },
                      {
                        "tab_index": 2,
                        "tab_label": "8-14课",
                        "course_count": 7,
                        "selected": 0
                      },
                      {
                        "tab_index": 3,
                        "tab_label": "15-21课",
                        "course_count": 7,
                        "selected": 0
                      },
                      {
                        "tab_index": 4,
                        "tab_label": "22-28课",
                        "course_count": 7,
                        "selected": 0
                      }
                    ],
                    "courses": [
                      {
                        "id": 101,
                        "serial_no": 1,
                        "name": "零基础减脂训练",
                        "segment": 3,
                        "segment_text": "综合",
                        "segment_serial_no": 1,
                        "intensity": 4.5,
                        "img": "https://img.xxx.com/course/101.png",
                        "desc": "课程介绍",
                        "oss_url": "https://oss.xxx.com/video/101.mp4",
                        "duration": 420,
                        "duration_min": 7,
                        "duration_text": "7分钟",
                        "calories": 116,
                        "calories_text": "116千卡",
                        "is_completed": 1
                      }
                    ]
                  },
                  "trace_id": "69b95f4928810"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          },
          "401": {
            "description": "未登录或Token失效",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ApiErrorResponse"
                },
                "example": {
                  "message": "缺少必要的参数token, 请先登录",
                  "status": 401,
                  "data": [],
                  "trace_id": "69b95f4928810"
                }
              }
            },
            "headers": {},
            "x-apifox-name": "没有权限",
            "x-apifox-ordering": 1
          }
        },
        "security": [],
        "x-apifox-folder": "运动课程",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-429336279-run"
      }
    },
    "/open/OpenAPI!apiKey.m": {
      "post": {
        "summary": "获取集团账号 apiKey",
        "deprecated": false,
        "description": "使用集团管理后台账户获取 apiKey 与 managerId。密码需先做 MD5（32 位小写）加密。",
        "operationId": "getGroupApiKey",
        "tags": [
          "zhaiker/集团账号",
          "集团账号"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "account": {
                    "type": "string",
                    "description": "管理后台账户名。",
                    "example": "demo_group_account"
                  },
                  "password": {
                    "type": "string",
                    "description": "密码的 MD5（32 位小写）值。",
                    "example": "e10adc3949ba59abbe56e057f20f883e"
                  }
                },
                "required": [
                  "account",
                  "password"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回集团账号 apiKey。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GroupApiKeyResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/集团账号",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295016-run"
      }
    },
    "/open/OpenAPI!getGyms.m": {
      "post": {
        "summary": "获取账户已授权门店信息",
        "deprecated": false,
        "description": "查询当前集团账号已授权的门店列表。文档提示：小程序调用需带上 cookie；若改用 GET，请对 apiKey 做 URL 编码。",
        "operationId": "getAuthorizedGyms",
        "tags": [
          "zhaiker/集团账号",
          "集团账号"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "集团账号 apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "managerId": {
                    "type": "string",
                    "description": "管理员编号。",
                    "example": "xxxxxxxxxxxx"
                  },
                  "gymName": {
                    "type": "string",
                    "description": "门店名模糊搜索。",
                    "example": "测试门店"
                  },
                  "pageIndex": {
                    "type": "integer",
                    "description": "分页页码，默认 0。",
                    "minimum": 0,
                    "default": 0,
                    "example": 0
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "分页大小，默认 30，最大 1000。",
                    "minimum": 1,
                    "maximum": 1000,
                    "default": 30,
                    "example": 30
                  }
                },
                "required": [
                  "apiKey",
                  "managerId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回授权门店列表。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AuthorizedGymsResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/集团账号",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295017-run"
      }
    },
    "/api/zhaiker.callback/exam": {
      "post": {
        "summary": "设备体测记录回调",
        "deprecated": false,
        "description": "",
        "tags": [
          "zhaiker/体测记录"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "properties": {
                  "examData": {
                    "type": "string"
                  },
                  "bodyImage": {
                    "type": "string"
                  },
                  "bodyImgOriginal": {
                    "type": "string"
                  },
                  "bodyShape": {
                    "type": "integer"
                  },
                  "bodyShapeRisk": {
                    "type": "integer"
                  },
                  "bone": {
                    "type": "number"
                  },
                  "caloriesInput": {
                    "type": "number"
                  },
                  "customerId": {
                    "type": "string"
                  },
                  "dataVersion": {
                    "type": "string"
                  },
                  "deviceFrom": {
                    "type": "string"
                  },
                  "enduGoal": {
                    "type": "number"
                  },
                  "faceUserId": {
                    "type": "string"
                  },
                  "fat": {
                    "type": "number"
                  },
                  "fatControl": {
                    "type": "number"
                  },
                  "fatLeftArm": {
                    "type": "number"
                  },
                  "fatLeftLeg": {
                    "type": "number"
                  },
                  "fatRightArm": {
                    "type": "number"
                  },
                  "fatRightLeg": {
                    "type": "number"
                  },
                  "fatTrunk": {
                    "type": "number"
                  },
                  "footLength": {
                    "type": "number"
                  },
                  "frontHeadRisk": {
                    "type": "integer"
                  },
                  "gmtCreate": {
                    "type": "integer"
                  },
                  "gmtModify": {
                    "type": "integer"
                  },
                  "gymId": {
                    "type": "string"
                  },
                  "gymName": {
                    "type": "string"
                  },
                  "head": {
                    "type": "number"
                  },
                  "headRisk": {
                    "type": "integer"
                  },
                  "heartFun": {
                    "type": "integer"
                  },
                  "height": {
                    "type": "number"
                  },
                  "hips": {
                    "type": "number"
                  },
                  "humpbackRisk": {
                    "type": "integer"
                  },
                  "id": {
                    "type": "string"
                  },
                  "inFat": {
                    "type": "integer"
                  },
                  "ip": {
                    "type": "string"
                  },
                  "kneeRisk": {
                    "type": "integer"
                  },
                  "language": {
                    "type": "string"
                  },
                  "legRisk": {
                    "type": "string"
                  },
                  "lowerBody": {
                    "type": "number"
                  },
                  "muscle": {
                    "type": "number"
                  },
                  "muscleControl": {
                    "type": "number"
                  },
                  "muscleLeftArm": {
                    "type": "number"
                  },
                  "muscleLeftLeg": {
                    "type": "number"
                  },
                  "muscleRightArm": {
                    "type": "number"
                  },
                  "muscleRightLeg": {
                    "type": "number"
                  },
                  "muscleTrunk": {
                    "type": "number"
                  },
                  "name": {
                    "type": "string"
                  },
                  "occipitalSpace": {
                    "type": "number"
                  },
                  "pelvisRisk": {
                    "type": "integer"
                  },
                  "perfectWeight": {
                    "type": "number"
                  },
                  "phone": {
                    "type": "string"
                  },
                  "postureRisk": {
                    "type": "integer"
                  },
                  "protein": {
                    "type": "number"
                  },
                  "r100LeftArm": {
                    "type": "number"
                  },
                  "r100LeftLeg": {
                    "type": "number"
                  },
                  "r100RightArm": {
                    "type": "number"
                  },
                  "r100RightLeg": {
                    "type": "number"
                  },
                  "r100Trunk": {
                    "type": "number"
                  },
                  "r20LeftArm": {
                    "type": "number"
                  },
                  "r20LeftLeg": {
                    "type": "integer"
                  },
                  "r20RightArm": {
                    "type": "number"
                  },
                  "r20RightLeg": {
                    "type": "number"
                  },
                  "r20Trunk": {
                    "type": "number"
                  },
                  "restingHeartRate": {
                    "type": "integer"
                  },
                  "score": {
                    "type": "integer"
                  },
                  "sex": {
                    "type": "string"
                  },
                  "shank": {
                    "type": "number"
                  },
                  "shoulderRisk": {
                    "type": "integer"
                  },
                  "shoulderWidth": {
                    "type": "number"
                  },
                  "sideBodyDetect": {
                    "type": "string"
                  },
                  "sideImage": {
                    "type": "string"
                  },
                  "sideImgOriginal": {
                    "type": "string"
                  },
                  "spineRisk": {
                    "type": "integer"
                  },
                  "sportGoal": {
                    "type": "number"
                  },
                  "sportLevel": {
                    "type": "integer"
                  },
                  "sportSafeRisk": {
                    "type": "integer"
                  },
                  "subFat": {
                    "type": "number"
                  },
                  "thigh": {
                    "type": "number"
                  },
                  "thighDim": {
                    "type": "number"
                  },
                  "unitType": {
                    "type": "string"
                  },
                  "upperBody": {
                    "type": "number"
                  },
                  "waist": {
                    "type": "number"
                  },
                  "water": {
                    "type": "number"
                  },
                  "wc": {
                    "type": "number"
                  },
                  "weight": {
                    "type": "number"
                  },
                  "weightControl": {
                    "type": "number"
                  }
                },
                "required": [
                  "examData",
                  "bodyImage",
                  "bodyImgOriginal",
                  "bodyShape",
                  "bodyShapeRisk",
                  "bone",
                  "caloriesInput",
                  "customerId",
                  "dataVersion",
                  "deviceFrom",
                  "enduGoal",
                  "faceUserId",
                  "fat",
                  "fatControl",
                  "fatLeftArm",
                  "fatLeftLeg",
                  "fatRightArm",
                  "fatRightLeg",
                  "fatTrunk",
                  "footLength",
                  "frontHeadRisk",
                  "gmtCreate",
                  "gmtModify",
                  "gymId",
                  "gymName",
                  "head",
                  "headRisk",
                  "heartFun",
                  "height",
                  "hips",
                  "humpbackRisk",
                  "id",
                  "inFat",
                  "ip",
                  "kneeRisk",
                  "language",
                  "legRisk",
                  "lowerBody",
                  "muscle",
                  "muscleControl",
                  "muscleLeftArm",
                  "muscleLeftLeg",
                  "muscleRightArm",
                  "muscleRightLeg",
                  "muscleTrunk",
                  "name",
                  "occipitalSpace",
                  "pelvisRisk",
                  "perfectWeight",
                  "phone",
                  "postureRisk",
                  "protein",
                  "r100LeftArm",
                  "r100LeftLeg",
                  "r100RightArm",
                  "r100RightLeg",
                  "r100Trunk",
                  "r20LeftArm",
                  "r20LeftLeg",
                  "r20RightArm",
                  "r20RightLeg",
                  "r20Trunk",
                  "restingHeartRate",
                  "score",
                  "sex",
                  "shank",
                  "shoulderRisk",
                  "shoulderWidth",
                  "sideBodyDetect",
                  "sideImage",
                  "sideImgOriginal",
                  "spineRisk",
                  "sportGoal",
                  "sportLevel",
                  "sportSafeRisk",
                  "subFat",
                  "thigh",
                  "thighDim",
                  "unitType",
                  "upperBody",
                  "waist",
                  "water",
                  "wc",
                  "weight",
                  "weightControl"
                ],
                "x-apifox-orders": [
                  "examData",
                  "bodyImage",
                  "bodyImgOriginal",
                  "bodyShape",
                  "bodyShapeRisk",
                  "bone",
                  "caloriesInput",
                  "customerId",
                  "dataVersion",
                  "deviceFrom",
                  "enduGoal",
                  "faceUserId",
                  "fat",
                  "fatControl",
                  "fatLeftArm",
                  "fatLeftLeg",
                  "fatRightArm",
                  "fatRightLeg",
                  "fatTrunk",
                  "footLength",
                  "frontHeadRisk",
                  "gmtCreate",
                  "gmtModify",
                  "gymId",
                  "gymName",
                  "head",
                  "headRisk",
                  "heartFun",
                  "height",
                  "hips",
                  "humpbackRisk",
                  "id",
                  "inFat",
                  "ip",
                  "kneeRisk",
                  "language",
                  "legRisk",
                  "lowerBody",
                  "muscle",
                  "muscleControl",
                  "muscleLeftArm",
                  "muscleLeftLeg",
                  "muscleRightArm",
                  "muscleRightLeg",
                  "muscleTrunk",
                  "name",
                  "occipitalSpace",
                  "pelvisRisk",
                  "perfectWeight",
                  "phone",
                  "postureRisk",
                  "protein",
                  "r100LeftArm",
                  "r100LeftLeg",
                  "r100RightArm",
                  "r100RightLeg",
                  "r100Trunk",
                  "r20LeftArm",
                  "r20LeftLeg",
                  "r20RightArm",
                  "r20RightLeg",
                  "r20Trunk",
                  "restingHeartRate",
                  "score",
                  "sex",
                  "shank",
                  "shoulderRisk",
                  "shoulderWidth",
                  "sideBodyDetect",
                  "sideImage",
                  "sideImgOriginal",
                  "spineRisk",
                  "sportGoal",
                  "sportLevel",
                  "sportSafeRisk",
                  "subFat",
                  "thigh",
                  "thighDim",
                  "unitType",
                  "upperBody",
                  "waist",
                  "water",
                  "wc",
                  "weight",
                  "weightControl"
                ],
                "x-apifox-ignore-properties": []
              },
              "example": {
                "a": 1,
                "b": 2
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {},
                  "x-apifox-ignore-properties": [],
                  "x-apifox-orders": []
                }
              }
            },
            "headers": {},
            "x-apifox-name": "成功",
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/体测记录",
        "x-apifox-status": "developing",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446381021-run"
      }
    },
    "/open/OpenAPI!getExams.m": {
      "post": {
        "summary": "获取体测记录",
        "deprecated": false,
        "description": "按门店、姓名、电话、性别、年龄区间、时间区间等条件查询体测记录。文档提示：小程序调用需带上 cookie；ageStart/ageEnd 与 timeStart/timeEnd 必须成对出现。",
        "operationId": "getExams",
        "tags": [
          "zhaiker/体测记录",
          "体测记录"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "gymId": {
                    "type": "string",
                    "description": "门店编号；为空时查询当前账户所有已授权门店。",
                    "example": "563075459961857"
                  },
                  "name": {
                    "type": "string",
                    "description": "按姓名搜索。",
                    "example": "张三"
                  },
                  "phone": {
                    "type": "string",
                    "description": "按电话号码搜索。",
                    "example": "13691537379"
                  },
                  "sex": {
                    "type": "string",
                    "description": "按性别搜索。M=男，F=女。",
                    "enum": [
                      "M",
                      "F"
                    ],
                    "example": "M"
                  },
                  "ageStart": {
                    "type": "integer",
                    "description": "年龄区间开始值；需与 ageEnd 成对出现。",
                    "minimum": 0,
                    "example": 18
                  },
                  "ageEnd": {
                    "type": "integer",
                    "description": "年龄区间结束值；需与 ageStart 成对出现。",
                    "minimum": 0,
                    "example": 30
                  },
                  "timeStart": {
                    "type": "string",
                    "description": "时间段开始时间；支持多种文本格式，需与 timeEnd 成对出现。",
                    "example": "2024-01-01 00:00:00"
                  },
                  "timeEnd": {
                    "type": "string",
                    "description": "时间段结束时间；支持多种文本格式，需与 timeStart 成对出现。",
                    "example": "2024-01-31 23:59:59"
                  },
                  "pageIndex": {
                    "type": "integer",
                    "description": "分页页码，默认 0。",
                    "minimum": 0,
                    "default": 0,
                    "example": 0
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "分页大小，默认 30。",
                    "minimum": 1,
                    "default": 30,
                    "example": 30
                  }
                },
                "required": [
                  "apiKey"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回体测记录列表。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamsResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/体测记录",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295018-run"
      }
    },
    "/open/OpenAPI!getExamsCount.m": {
      "post": {
        "summary": "获取体测数量",
        "deprecated": false,
        "description": "使用与体测记录查询相同的筛选条件，返回匹配数据条数。",
        "operationId": "getExamsCount",
        "tags": [
          "zhaiker/体测记录",
          "体测记录"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "gymId": {
                    "type": "string",
                    "description": "门店编号；为空时查询当前账户所有已授权门店。",
                    "example": "563075459961857"
                  },
                  "name": {
                    "type": "string",
                    "description": "按姓名搜索。",
                    "example": "张三"
                  },
                  "phone": {
                    "type": "string",
                    "description": "按电话号码搜索。",
                    "example": "13691537379"
                  },
                  "sex": {
                    "type": "string",
                    "description": "按性别搜索。M=男，F=女。",
                    "enum": [
                      "M",
                      "F"
                    ],
                    "example": "M"
                  },
                  "ageStart": {
                    "type": "integer",
                    "description": "年龄区间开始值；需与 ageEnd 成对出现。",
                    "minimum": 0,
                    "example": 18
                  },
                  "ageEnd": {
                    "type": "integer",
                    "description": "年龄区间结束值；需与 ageStart 成对出现。",
                    "minimum": 0,
                    "example": 30
                  },
                  "timeStart": {
                    "type": "string",
                    "description": "时间段开始时间；支持多种文本格式，需与 timeEnd 成对出现。",
                    "example": "2024-01-01 00:00:00"
                  },
                  "timeEnd": {
                    "type": "string",
                    "description": "时间段结束时间；支持多种文本格式，需与 timeStart 成对出现。",
                    "example": "2024-01-31 23:59:59"
                  },
                  "pageIndex": {
                    "type": "integer",
                    "description": "分页页码，默认 0。",
                    "minimum": 0,
                    "default": 0,
                    "example": 0
                  },
                  "pageSize": {
                    "type": "integer",
                    "description": "分页大小，默认 30。",
                    "minimum": 1,
                    "default": 30,
                    "example": 30
                  }
                },
                "required": [
                  "apiKey"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回体测数量。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamsCountResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/体测记录",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295019-run"
      }
    },
    "/open/OpenAPI!getExamById.m": {
      "post": {
        "summary": "根据 ID 获取体测数据",
        "deprecated": false,
        "description": "根据体测记录 ID 与门店编号获取单条体测详细数据，同时返回指标参照标准、成长趋势表与节段标准。",
        "operationId": "getExamById",
        "tags": [
          "zhaiker/体测记录",
          "体测记录"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "id": {
                    "type": "string",
                    "description": "体测记录 ID。",
                    "example": "8000000322198329"
                  },
                  "gymId": {
                    "type": "string",
                    "description": "门店编号。",
                    "example": "gym1461205683189585401"
                  }
                },
                "required": [
                  "apiKey",
                  "id",
                  "gymId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回体测详情。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamByIdResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/体测记录",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295020-run"
      }
    },
    "/file/FileAction!loadFile.msg": {
      "get": {
        "summary": "照片显示路径接口",
        "deprecated": false,
        "description": "根据文件相对路径访问图片资源。文档说明实际行为为直接跳转图片。",
        "operationId": "loadFile",
        "tags": [
          "zhaiker/文件与报告",
          "文件与报告"
        ],
        "parameters": [
          {
            "name": "key",
            "in": "query",
            "description": "文件地址。",
            "required": true,
            "schema": {
              "type": "string",
              "example": "2019-10-15/1571108144859500400.jpg"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "直接返回图片内容（部分网关或客户端可能表现为此方式）。",
            "content": {
              "image/*": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          },
          "302": {
            "description": "重定向到图片资源。",
            "headers": {
              "Location": {
                "required": false,
                "description": "",
                "schema": {
                  "type": "string"
                }
              }
            },
            "x-apifox-ordering": 1
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/文件与报告",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295022-run"
      }
    },
    "/body/mobile8.0.html": {
      "get": {
        "summary": "H5 体测报告页面",
        "deprecated": false,
        "description": "根据体测报告唯一 ID 展示移动端 H5 报告页面。",
        "operationId": "getBodyReportH5",
        "tags": [
          "zhaiker/文件与报告",
          "文件与报告"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "体测报告唯一 ID。",
            "required": true,
            "schema": {
              "type": "string",
              "example": "7000000907863678"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "语言参数。",
            "required": false,
            "schema": {
              "type": "string",
              "example": "zh_CN"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "HTML 页面。",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/文件与报告",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295023-run"
      }
    },
    "/report/index.html": {
      "get": {
        "summary": "PC 体测报告页面",
        "deprecated": false,
        "description": "根据体测报告唯一 ID 展示 PC 端报告页面；网页会根据客户端自适应展现方式。",
        "operationId": "getBodyReportPc",
        "tags": [
          "zhaiker/文件与报告",
          "文件与报告"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "query",
            "description": "体测报告唯一 ID。",
            "required": true,
            "schema": {
              "type": "string",
              "example": "123456789"
            }
          },
          {
            "name": "lang",
            "in": "query",
            "description": "语言参数。",
            "required": false,
            "schema": {
              "type": "string",
              "example": "zh"
            }
          },
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "HTML 页面。",
            "content": {
              "text/html": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/文件与报告",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295024-run"
      }
    },
    "/open/OpenAPI!startExam.m": {
      "post": {
        "summary": "扫码体测模式下云端通知设备开始体测",
        "deprecated": false,
        "description": "仅当设备在管理平台被设置为扫码付费模式时生效，否则会提示设备错误。",
        "operationId": "startExam",
        "tags": [
          "zhaiker/设备控制",
          "设备控制"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "gymId": {
                    "type": "string",
                    "description": "门店编号。",
                    "example": "1607140836220195200"
                  },
                  "device": {
                    "type": "string",
                    "description": "设备序列号。",
                    "example": "K2@ec2e980fed53"
                  },
                  "customerId": {
                    "type": "string",
                    "description": "客户 ID / 本次体测人员唯一 ID。",
                    "example": "CUST-001"
                  },
                  "name": {
                    "type": "string",
                    "description": "姓名。",
                    "example": "张三"
                  },
                  "sex": {
                    "type": "string",
                    "description": "性别。M=男，F=女。",
                    "enum": [
                      "M",
                      "F"
                    ],
                    "example": "M"
                  },
                  "age": {
                    "type": "integer",
                    "description": "年龄。",
                    "minimum": 0,
                    "example": 18
                  },
                  "height": {
                    "type": "number",
                    "description": "身高；无身高测量设备时必填。",
                    "example": 172.5
                  },
                  "phone": {
                    "type": "string",
                    "description": "用户电话号码。",
                    "example": "13800138000"
                  }
                },
                "required": [
                  "apiKey",
                  "gymId",
                  "device",
                  "customerId",
                  "name",
                  "sex",
                  "age",
                  "phone"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功通知设备进入体测准备状态。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatusResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/设备控制",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295025-run"
      }
    },
    "/open/OpenAPI!cancelExam.m": {
      "post": {
        "summary": "取消云端启动设备开始体测状态",
        "deprecated": false,
        "description": "仅当设备在管理平台被设置为扫码付费模式时生效。用于将设备从云端启动后的准备状态重置回就绪状态。",
        "operationId": "cancelExam",
        "tags": [
          "zhaiker/设备控制",
          "设备控制"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "device": {
                    "type": "string",
                    "description": "设备序列号。",
                    "example": "K2@ec2e980fed53"
                  },
                  "gymId": {
                    "type": "string",
                    "description": "门店编号。",
                    "example": "1607140836220195200"
                  }
                },
                "required": [
                  "apiKey",
                  "device",
                  "gymId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功取消体测启动状态。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatusResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/设备控制",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295026-run"
      }
    },
    "/open/OpenAPI!getExamState.m": {
      "post": {
        "summary": "获取体测仪运行状态",
        "deprecated": false,
        "description": "查询设备当前在线状态、服务类型、价格等信息。",
        "operationId": "getExamState",
        "tags": [
          "zhaiker/设备控制",
          "设备控制"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "device": {
                    "type": "string",
                    "description": "设备序列号。",
                    "example": "K2@ec2e980fed53"
                  },
                  "gymId": {
                    "type": "string",
                    "description": "门店编号。",
                    "example": "1607140836220195200"
                  }
                },
                "required": [
                  "apiKey",
                  "device",
                  "gymId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回设备运行状态。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamStateResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/设备控制",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295027-run"
      }
    },
    "/OpenAPI!apiKey.msg": {
      "post": {
        "summary": "获取某个门店 apiKey",
        "deprecated": false,
        "description": "注意：该接口与集团账号获取 apiKey 的接口不同，适用于单个门店账号。",
        "operationId": "getSingleGymApiKey",
        "tags": [
          "zhaiker/单门店",
          "单门店"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "account": {
                    "type": "string",
                    "description": "门店账户名。",
                    "example": "demo_gym_account"
                  },
                  "password": {
                    "type": "string",
                    "description": "密码的 MD5（32 位小写）值。",
                    "example": "e10adc3949ba59abbe56e057f20f883e"
                  }
                },
                "required": [
                  "account",
                  "password"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回门店 apiKey。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SingleGymApiKeyResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/单门店",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295028-run"
      }
    },
    "/OpenAPI!getGymExtend.msg": {
      "post": {
        "summary": "获取当前门店所有可用附加项",
        "deprecated": false,
        "description": "返回门店支持的体考/附加项目及其适用范围与等级文案。",
        "operationId": "getGymExtend",
        "tags": [
          "zhaiker/单门店",
          "单门店",
          "附加项"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  }
                },
                "required": [
                  "apiKey"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回附加项定义列表。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GymExtendListResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/单门店",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295029-run"
      }
    },
    "/OpenAPI!addExItem.msg": {
      "post": {
        "summary": "添加附加项",
        "deprecated": false,
        "description": "为指定体测记录补录一个附加项成绩。",
        "operationId": "addExItem",
        "tags": [
          "zhaiker/附加项",
          "附加项"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "examId": {
                    "type": "string",
                    "description": "体测记录 ID。",
                    "example": "682071065943826"
                  },
                  "type": {
                    "type": "string",
                    "description": "体测附加项编号。",
                    "example": "Z"
                  },
                  "value": {
                    "type": "number",
                    "description": "项目测试成绩。",
                    "example": 10
                  }
                },
                "required": [
                  "apiKey",
                  "examId",
                  "type",
                  "value"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功添加附加项。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatusResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/附加项",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295030-run"
      }
    },
    "/OpenAPI!delExItem.msg": {
      "post": {
        "summary": "删除附加项",
        "deprecated": false,
        "description": "删除指定体测记录上的某个附加项成绩。",
        "operationId": "delExItem",
        "tags": [
          "zhaiker/附加项",
          "附加项"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "examId": {
                    "type": "string",
                    "description": "体测记录 ID。",
                    "example": "682071065943826"
                  },
                  "type": {
                    "type": "string",
                    "description": "体测附加项编号。",
                    "example": "Z"
                  }
                },
                "required": [
                  "apiKey",
                  "examId",
                  "type"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功删除附加项。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OperationStatusResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/附加项",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295031-run"
      }
    },
    "/OpenAPI!examExItems.msg": {
      "post": {
        "summary": "查看附加项成绩",
        "deprecated": false,
        "description": "查询指定体测记录的所有附加项成绩。",
        "operationId": "getExamExItems",
        "tags": [
          "zhaiker/附加项",
          "附加项"
        ],
        "parameters": [
          {
            "name": "Access-Token",
            "in": "header",
            "description": "",
            "example": "{{Access-Token}}",
            "schema": {
              "type": "string",
              "default": "{{Access-Token}}"
            }
          },
          {
            "name": "platform",
            "in": "header",
            "description": "",
            "example": "MP-WEIXIN",
            "schema": {
              "type": "string",
              "default": "MP-WEIXIN"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "properties": {
                  "apiKey": {
                    "type": "string",
                    "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
                    "example": "3nk3nJ2H0C8Zo0wr%2BvL"
                  },
                  "examId": {
                    "type": "string",
                    "description": "体测记录 ID。",
                    "example": "682071065943826"
                  }
                },
                "required": [
                  "apiKey",
                  "examId"
                ]
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "成功返回附加项成绩列表。",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ExamExItemsResponse"
                }
              }
            },
            "headers": {},
            "x-apifox-ordering": 0
          }
        },
        "security": [],
        "x-apifox-folder": "zhaiker/附加项",
        "x-apifox-status": "released",
        "x-run-in-apifox": "https://app.apifox.com/web/project/6067185/apis/api-446295032-run"
      }
    }
  },
  "components": {
    "schemas": {
      "ApiEnvelope": {
        "type": "object",
        "properties": {
          "success": {
            "type": "string",
            "description": "是否成功（文档中为 string）"
          },
          "message": {
            "type": "string",
            "description": "提示信息"
          },
          "code": {
            "type": "string",
            "description": "code=10000 表示成功，其它值通过 message 下发提示"
          },
          "data": {
            "type": "object",
            "description": "业务数据",
            "x-apifox-orders": [],
            "properties": {},
            "x-apifox-ignore-properties": [],
            "nullable": true
          }
        },
        "required": [
          "success",
          "message",
          "code"
        ],
        "x-apifox-orders": [
          "success",
          "message",
          "code",
          "data"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "LoginQrData": {
        "type": "object",
        "properties": {
          "qr": {
            "type": "string",
            "description": "二维码内容（设备生成图片/内容）"
          },
          "expire": {
            "type": "number",
            "description": "过期时间（秒）"
          }
        },
        "required": [
          "qr"
        ],
        "x-apifox-orders": [
          "qr",
          "expire"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "LoginQrResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiEnvelope"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/LoginQrData"
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "UserProfile": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "userName": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "avatarUrl": {
            "type": "string",
            "format": "uri"
          },
          "height": {
            "type": "integer",
            "description": "身高（厘米）"
          },
          "weight": {
            "type": "integer",
            "description": "体重（单位见原系统；文档中修改用户信息处为“斤”）"
          },
          "heartRate": {
            "type": "integer"
          },
          "gender": {
            "type": "integer",
            "description": "0 未知；1 男；2 女"
          }
        },
        "required": [
          "userId"
        ],
        "x-apifox-orders": [
          "userId",
          "userName",
          "nickname",
          "avatarUrl",
          "height",
          "weight",
          "heartRate",
          "gender"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "FaceLoginResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiEnvelope"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/UserProfile"
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "LogoutRequest": {
        "type": "object",
        "properties": {
          "mac": {
            "type": "string",
            "description": "设备 mac 地址"
          },
          "userId": {
            "type": "string",
            "description": "用户 ID"
          }
        },
        "required": [
          "mac",
          "userId"
        ],
        "x-apifox-orders": [
          "mac",
          "userId"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "RunningRecord": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "runType": {
            "type": "integer",
            "description": "运动类型/模式（按业务方定义，接口仅转发）"
          },
          "startTime": {
            "type": "integer",
            "format": "int64",
            "description": "开始时间（时间戳，单位请与厂商对齐）"
          },
          "duration": {
            "type": "integer",
            "description": "时长"
          },
          "distance": {
            "type": "integer",
            "description": "距离"
          },
          "steps": {
            "type": "integer",
            "description": "步数"
          },
          "calorie": {
            "type": "integer",
            "description": "卡路里"
          },
          "maxSpeed": {
            "type": "integer"
          },
          "minSpeed": {
            "type": "integer"
          },
          "avgSpeed": {
            "type": "integer"
          },
          "maxHeartRate": {
            "type": "integer"
          },
          "minHeartRate": {
            "type": "integer"
          },
          "avgHeartRate": {
            "type": "integer"
          },
          "maxGradient": {
            "type": "integer"
          },
          "minGradient": {
            "type": "integer"
          },
          "avgGradient": {
            "type": "integer"
          },
          "height": {
            "type": "number",
            "description": "爬升高度（本次运动跑步机爬升的高度值）"
          },
          "minkm": {
            "type": "string",
            "description": "配速"
          }
        },
        "required": [
          "userId",
          "startTime",
          "duration"
        ],
        "x-apifox-orders": [
          "userId",
          "runType",
          "startTime",
          "duration",
          "distance",
          "steps",
          "calorie",
          "maxSpeed",
          "minSpeed",
          "avgSpeed",
          "maxHeartRate",
          "minHeartRate",
          "avgHeartRate",
          "maxGradient",
          "minGradient",
          "avgGradient",
          "height",
          "minkm"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "StrengthRecord": {
        "type": "object",
        "properties": {
          "mac": {
            "type": "string",
            "description": "设备 mac 地址"
          },
          "startTime": {
            "type": "string",
            "description": "开始时间（原文档为 String）"
          },
          "duration": {
            "type": "integer",
            "description": "时长（秒）"
          },
          "work": {
            "type": "integer",
            "description": "运动所做功（焦）"
          },
          "number": {
            "type": "integer",
            "description": "次数（次）"
          },
          "calorie": {
            "type": "integer",
            "description": "卡路里（卡）"
          },
          "totalKg": {
            "type": "integer",
            "description": "累积重量（kg*10）"
          },
          "maxKg": {
            "type": "integer",
            "description": "最大重量（kg*10）"
          },
          "recordList": {
            "type": "string",
            "description": "运动记录明细数据（原文档定义为 String，示例为 JSON 数组串，如 [{speed:1,grade:0,rate:90,time:60,distance:10}, ...]）"
          }
        },
        "required": [
          "mac",
          "startTime",
          "duration"
        ],
        "x-apifox-orders": [
          "mac",
          "startTime",
          "duration",
          "work",
          "number",
          "calorie",
          "totalKg",
          "maxKg",
          "recordList"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "BicycleDistribution": {
        "type": "object",
        "properties": {
          "kg": {
            "type": "integer",
            "description": "重量（kg*10）"
          },
          "number": {
            "type": "integer",
            "description": "次数（次）"
          }
        },
        "required": [
          "kg",
          "number"
        ],
        "x-apifox-orders": [
          "kg",
          "number"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "BicycleRecord": {
        "type": "object",
        "properties": {
          "mac": {
            "type": "string",
            "description": "设备 mac 地址"
          },
          "maxValidKg": {
            "type": "integer",
            "description": "最大有效重量（kg*10）"
          },
          "maxPower": {
            "type": "integer",
            "description": "最大功率（w）"
          },
          "distributions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BicycleDistribution"
            }
          },
          "recordList": {
            "type": "string",
            "description": "运动记录明细数据（原文档定义为 String，示例为复合 JSON 串：{realTimeInfoList:[{rate:60,time:600},...],sportInfoList:[{kg:50,height:20,isTwin:true,heightR:10},...]}）"
          }
        },
        "required": [
          "mac"
        ],
        "x-apifox-orders": [
          "mac",
          "maxValidKg",
          "maxPower",
          "distributions",
          "recordList"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "RankListItem": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "string"
          },
          "nickname": {
            "type": "string"
          },
          "avatarUrl": {
            "type": "string",
            "format": "uri"
          },
          "value": {
            "type": "integer",
            "description": "运动数据"
          },
          "rankNo": {
            "type": "integer",
            "description": "排名"
          }
        },
        "required": [
          "userId",
          "value",
          "rankNo"
        ],
        "x-apifox-orders": [
          "userId",
          "nickname",
          "avatarUrl",
          "value",
          "rankNo"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "PagedRankList": {
        "type": "object",
        "properties": {
          "hasNextPage": {
            "type": "boolean"
          },
          "list": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RankListItem"
            }
          }
        },
        "required": [
          "hasNextPage",
          "list"
        ],
        "x-apifox-orders": [
          "hasNextPage",
          "list"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "RankListResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiEnvelope"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/PagedRankList"
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "UserRankData": {
        "allOf": [
          {
            "$ref": "#/components/schemas/RankListItem"
          }
        ],
        "x-apifox-folder": ""
      },
      "UserRankResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiEnvelope"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/UserRankData"
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "SportsTotalData": {
        "type": "object",
        "properties": {
          "duration": {
            "type": "string",
            "description": "总时长（秒）"
          },
          "calorie": {
            "type": "string",
            "description": "总卡路里（千卡）"
          },
          "number": {
            "type": "string",
            "description": "总运动次数（次）"
          }
        },
        "required": [
          "duration",
          "calorie",
          "number"
        ],
        "x-apifox-orders": [
          "duration",
          "calorie",
          "number"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "SportsTotalResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiEnvelope"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/SportsTotalData"
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "UpdateUserRequest": {
        "type": "object",
        "properties": {
          "birthday": {
            "type": "string",
            "description": "生日（格式请与厂商对齐）"
          },
          "height": {
            "type": "integer",
            "description": "身高：厘米"
          },
          "weight": {
            "type": "integer",
            "description": "体重：斤（按文档）"
          },
          "gender": {
            "type": "integer",
            "description": "0 未知；1 男；2 女"
          },
          "heartRate": {
            "type": "integer"
          }
        },
        "required": [
          "birthday",
          "height",
          "weight",
          "gender",
          "heartRate"
        ],
        "x-apifox-orders": [
          "birthday",
          "height",
          "weight",
          "gender",
          "heartRate"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ApiResponseBase": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "trace_id": {
            "type": "string"
          }
        },
        "required": [
          "status",
          "message",
          "trace_id"
        ],
        "x-apifox-orders": [
          "status",
          "message",
          "trace_id"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ApiErrorResponse": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "data": {
            "type": "array",
            "items": {}
          },
          "trace_id": {
            "type": "string"
          }
        },
        "required": [
          "message",
          "status",
          "data",
          "trace_id"
        ],
        "x-apifox-orders": [
          "message",
          "status",
          "data",
          "trace_id"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "Goal": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "1保持 2增肌 3减重"
          },
          "label": {
            "type": "string"
          },
          "type_id": {
            "type": "integer"
          }
        },
        "required": [
          "status",
          "label",
          "type_id"
        ],
        "x-apifox-orders": [
          "status",
          "label",
          "type_id"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "OverviewCurrentCourse": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "serial_no": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "duration": {
            "type": "integer",
            "description": "秒"
          },
          "duration_min": {
            "type": "integer",
            "description": "分钟"
          },
          "duration_text": {
            "type": "string"
          },
          "calories": {
            "type": "number"
          },
          "calories_text": {
            "type": "string"
          },
          "img": {
            "type": "string"
          },
          "is_completed": {
            "type": "integer",
            "description": "0未完成 1已完成"
          }
        },
        "required": [
          "id",
          "serial_no",
          "name",
          "duration",
          "duration_min",
          "duration_text",
          "calories",
          "calories_text",
          "img",
          "is_completed"
        ],
        "x-apifox-orders": [
          "id",
          "serial_no",
          "name",
          "duration",
          "duration_min",
          "duration_text",
          "calories",
          "calories_text",
          "img",
          "is_completed"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "OverviewCard": {
        "type": "object",
        "properties": {
          "type_id": {
            "type": "integer"
          },
          "type_name": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "img": {
            "type": "string"
          },
          "total_course_count": {
            "type": "integer"
          },
          "completed_course_count": {
            "type": "integer"
          },
          "remaining_course_count": {
            "type": "integer"
          },
          "progress_percent": {
            "type": "integer"
          },
          "progress_ratio_text": {
            "type": "string"
          },
          "progress_text": {
            "type": "string"
          },
          "progress_desc_text": {
            "type": "string"
          },
          "current_course": {
            "$ref": "#/components/schemas/OverviewCurrentCourse"
          }
        },
        "required": [
          "type_id",
          "type_name",
          "title",
          "img",
          "total_course_count",
          "completed_course_count",
          "remaining_course_count",
          "progress_percent",
          "progress_ratio_text",
          "progress_text",
          "progress_desc_text",
          "current_course"
        ],
        "x-apifox-orders": [
          "type_id",
          "type_name",
          "title",
          "img",
          "total_course_count",
          "completed_course_count",
          "remaining_course_count",
          "progress_percent",
          "progress_ratio_text",
          "progress_text",
          "progress_desc_text",
          "current_course"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "DrillCourseOverviewResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponseBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "goal": {
                    "$ref": "#/components/schemas/Goal"
                  },
                  "list": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/OverviewCard"
                    }
                  }
                },
                "required": [
                  "goal",
                  "list"
                ],
                "x-apifox-orders": [
                  "goal",
                  "list"
                ],
                "x-apifox-ignore-properties": []
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "TabItem": {
        "type": "object",
        "properties": {
          "tab_index": {
            "type": "integer"
          },
          "tab_label": {
            "type": "string"
          },
          "course_count": {
            "type": "integer"
          },
          "selected": {
            "type": "integer"
          }
        },
        "required": [
          "tab_index",
          "tab_label",
          "course_count",
          "selected"
        ],
        "x-apifox-orders": [
          "tab_index",
          "tab_label",
          "course_count",
          "selected"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "CourseItem": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "serial_no": {
            "type": "integer"
          },
          "name": {
            "type": "string"
          },
          "segment": {
            "type": "integer"
          },
          "segment_text": {
            "type": "string"
          },
          "segment_serial_no": {
            "type": "integer"
          },
          "intensity": {
            "type": "number"
          },
          "img": {
            "type": "string"
          },
          "desc": {
            "type": "string"
          },
          "oss_url": {
            "type": "string"
          },
          "duration": {
            "type": "integer",
            "description": "秒"
          },
          "duration_min": {
            "type": "integer",
            "description": "分钟"
          },
          "duration_text": {
            "type": "string"
          },
          "calories": {
            "type": "number"
          },
          "calories_text": {
            "type": "string"
          },
          "is_completed": {
            "type": "integer"
          }
        },
        "required": [
          "id",
          "serial_no",
          "name",
          "segment",
          "segment_text",
          "segment_serial_no",
          "intensity",
          "img",
          "desc",
          "oss_url",
          "duration",
          "duration_min",
          "duration_text",
          "calories",
          "calories_text",
          "is_completed"
        ],
        "x-apifox-orders": [
          "id",
          "serial_no",
          "name",
          "segment",
          "segment_text",
          "segment_serial_no",
          "intensity",
          "img",
          "desc",
          "oss_url",
          "duration",
          "duration_min",
          "duration_text",
          "calories",
          "calories_text",
          "is_completed"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "DrillCourseTypeDetailResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponseBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "goal": {
                    "$ref": "#/components/schemas/Goal"
                  },
                  "type_id": {
                    "type": "integer"
                  },
                  "type_name": {
                    "type": "string"
                  },
                  "title": {
                    "type": "string"
                  },
                  "img": {
                    "type": "string"
                  },
                  "desc": {
                    "type": "string"
                  },
                  "total_course_count": {
                    "type": "integer"
                  },
                  "completed_course_count": {
                    "type": "integer"
                  },
                  "remaining_course_count": {
                    "type": "integer"
                  },
                  "progress_percent": {
                    "type": "integer"
                  },
                  "progress_ratio_text": {
                    "type": "string"
                  },
                  "progress_text": {
                    "type": "string"
                  },
                  "progress_desc_text": {
                    "type": "string"
                  },
                  "current_tab_index": {
                    "type": "integer"
                  },
                  "tabs": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/TabItem"
                    }
                  },
                  "courses": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/CourseItem"
                    }
                  }
                },
                "required": [
                  "goal",
                  "type_id",
                  "type_name",
                  "title",
                  "img",
                  "desc",
                  "total_course_count",
                  "completed_course_count",
                  "remaining_course_count",
                  "progress_percent",
                  "progress_ratio_text",
                  "progress_text",
                  "progress_desc_text",
                  "current_tab_index",
                  "tabs",
                  "courses"
                ],
                "x-apifox-orders": [
                  "goal",
                  "type_id",
                  "type_name",
                  "title",
                  "img",
                  "desc",
                  "total_course_count",
                  "completed_course_count",
                  "remaining_course_count",
                  "progress_percent",
                  "progress_ratio_text",
                  "progress_text",
                  "progress_desc_text",
                  "current_tab_index",
                  "tabs",
                  "courses"
                ],
                "x-apifox-ignore-properties": []
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "LoginAccountRequest": {
        "type": "object",
        "properties": {
          "form": {
            "type": "object",
            "properties": {
              "account": {
                "type": "string",
                "description": "账号"
              },
              "password": {
                "type": "string",
                "description": "密码"
              },
              "code": {
                "type": "string",
                "description": "微信小程序登录 code，可为空"
              },
              "enterprise_no": {
                "type": "string",
                "description": "企业编号，默认10001"
              }
            },
            "required": [
              "account",
              "password"
            ],
            "x-apifox-orders": [
              "account",
              "password",
              "code",
              "enterprise_no"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "required": [
          "form"
        ],
        "x-apifox-orders": [
          "form"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "LoginAccountResponse": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ApiResponseBase"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "integer"
                  },
                  "token": {
                    "type": "string"
                  }
                },
                "required": [
                  "userId",
                  "token"
                ],
                "x-apifox-orders": [
                  "userId",
                  "token"
                ],
                "x-apifox-ignore-properties": []
              }
            },
            "required": [
              "data"
            ],
            "x-apifox-orders": [
              "data"
            ],
            "x-apifox-ignore-properties": []
          }
        ],
        "x-apifox-folder": ""
      },
      "TimestampMs": {
        "type": "integer",
        "description": "Unix 时间戳（毫秒）。",
        "format": "int64",
        "example": 1571108150000,
        "x-apifox-folder": ""
      },
      "Sex": {
        "type": "string",
        "description": "性别。A 仅用于附加项适用范围。",
        "enum": [
          "A",
          "M",
          "F"
        ],
        "example": "M",
        "x-apifox-folder": ""
      },
      "BodyDetectPoint": {
        "type": "object",
        "properties": {
          "score": {
            "type": "number",
            "description": "关键点识别置信度。",
            "minimum": 0,
            "maximum": 1,
            "example": 0.81988263
          },
          "x": {
            "type": "number",
            "description": "X 坐标，单位：像素。",
            "example": 330.5
          },
          "y": {
            "type": "number",
            "description": "Y 坐标，单位：像素。",
            "example": 364.25
          }
        },
        "required": [
          "score",
          "x",
          "y"
        ],
        "description": "单个骨骼点坐标。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "score",
          "x",
          "y"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "BodyDetectPayload": {
        "type": "object",
        "description": "体态识别骨骼点映射。原文示例中既有正面也有侧面数据。",
        "additionalProperties": {
          "$ref": "#/components/schemas/BodyDetectPoint"
        },
        "x-apifox-orders": [],
        "properties": {},
        "x-apifox-ignore-properties": [],
        "example": {
          "left_ankle": {
            "score": 0.81988263,
            "x": 330.5,
            "y": 364.25
          },
          "neck": {
            "score": 0.85809946,
            "x": 296.125,
            "y": 82.375
          },
          "top_head": {
            "score": 0.7811405,
            "x": 296.125,
            "y": 41.125
          }
        },
        "x-apifox-folder": ""
      },
      "MetricStandard": {
        "type": "object",
        "properties": {
          "age": {
            "type": "integer",
            "description": "年龄。部分标准中无需关注。",
            "minimum": 0,
            "example": 0
          },
          "fewer": {
            "type": "number",
            "description": "偏低阈值。",
            "example": 20
          },
          "fewest": {
            "type": "number",
            "description": "过低阈值。",
            "example": 16
          },
          "more": {
            "type": "number",
            "description": "偏高阈值。",
            "example": 23.5
          },
          "most": {
            "type": "number",
            "description": "过高阈值。",
            "example": 27
          },
          "standard": {
            "type": "number",
            "description": "标准值。",
            "example": 21.2
          }
        },
        "required": [
          "age",
          "fewer",
          "fewest",
          "more",
          "most",
          "standard"
        ],
        "description": "某个指标的参照标准。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "age",
          "fewer",
          "fewest",
          "more",
          "most",
          "standard"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "NumericMatrix": {
        "type": "array",
        "description": "二维数值矩阵。文档用于身高/体重成长趋势表。",
        "items": {
          "type": "array",
          "items": {
            "type": "number"
          }
        },
        "example": [
          [
            2,
            9.06,
            11.24,
            12.54,
            14.01,
            17.54
          ],
          [
            3,
            10.61,
            13.13,
            14.65,
            16.39,
            20.64
          ]
        ],
        "x-apifox-folder": ""
      },
      "SegmentMapStandard": {
        "type": "object",
        "properties": {
          "muscleLeftArmRate": {
            "type": "number",
            "description": "左手肌肉标准率，大于 100 表示偏高。",
            "example": 98.2
          },
          "muscleRightArmRate": {
            "type": "number",
            "description": "右手肌肉标准率。",
            "example": 98.5
          },
          "fatLeftArmRate": {
            "type": "number",
            "description": "左手脂肪标准率。",
            "example": 105
          },
          "fatRightArmRate": {
            "type": "number",
            "description": "右手脂肪标准率。",
            "example": 104
          },
          "muscleTrunkRate": {
            "type": "number",
            "description": "躯干肌肉标准率。",
            "example": 98
          },
          "fatTrunkRate": {
            "type": "number",
            "description": "躯干脂肪标准率。",
            "example": 102
          },
          "muscleLeftLegRate": {
            "type": "number",
            "description": "左腿肌肉标准率。",
            "example": 110
          },
          "muscleRightLegRate": {
            "type": "number",
            "description": "右腿肌肉标准率。",
            "example": 112
          },
          "fatLeftLegRate": {
            "type": "number",
            "description": "左腿脂肪标准率。",
            "example": 99.5
          },
          "fatRightLegRate": {
            "type": "number",
            "description": "右腿脂肪标准率。",
            "example": 98
          }
        },
        "description": "节段数据标准。大于 100 表示偏高，小于 100 表示偏低。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "muscleLeftArmRate",
          "muscleRightArmRate",
          "fatLeftArmRate",
          "fatRightArmRate",
          "muscleTrunkRate",
          "fatTrunkRate",
          "muscleLeftLegRate",
          "muscleRightLegRate",
          "fatLeftLegRate",
          "fatRightLegRate"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamStandardSet": {
        "type": "object",
        "description": "各项数据的参照标准集合。",
        "properties": {
          "bmiStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "boneStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "visfatStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "bmrStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "subfatStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "waterStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "fatStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "proteinStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "whrStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "muscleStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "weightStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          },
          "heightStandard": {
            "$ref": "#/components/schemas/MetricStandard"
          }
        },
        "additionalProperties": true,
        "x-apifox-orders": [
          "bmiStandard",
          "boneStandard",
          "visfatStandard",
          "bmrStandard",
          "subfatStandard",
          "waterStandard",
          "fatStandard",
          "proteinStandard",
          "whrStandard",
          "muscleStandard",
          "weightStandard",
          "heightStandard"
        ],
        "x-apifox-ignore-properties": [],
        "example": {
          "bmiStandard": {
            "age": 0,
            "fewer": 20,
            "fewest": 16,
            "more": 23.5,
            "most": 27,
            "standard": 21.2
          }
        },
        "x-apifox-folder": ""
      },
      "Gym": {
        "type": "object",
        "properties": {
          "address": {
            "type": "string",
            "description": "门店地址。",
            "example": "武汉市江夏区藏龙岛"
          },
          "gmtModify": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "city": {
            "type": "string",
            "description": "门店所在城市。",
            "example": "武汉市"
          },
          "gymName": {
            "type": "string",
            "description": "门店名称。",
            "example": "wyz测试"
          },
          "admin": {
            "type": "string",
            "description": "管理员姓名。",
            "example": "张三"
          },
          "gmtCreate": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "province": {
            "type": "string",
            "description": "门店所在省份。",
            "example": "湖北省"
          },
          "adminPhone": {
            "type": "string",
            "description": "管理员手机号。",
            "example": "15971538086"
          },
          "loginName": {
            "type": "string",
            "description": "门店登录账号。",
            "example": "wyztest"
          },
          "logo": {
            "type": "string",
            "description": "门店 logo 文件路径。",
            "example": "2021-04-22/165402084133464.jpg"
          },
          "id": {
            "type": "string",
            "description": "门店 ID。",
            "example": "563075459961857"
          },
          "state": {
            "type": "string",
            "description": "门店状态。",
            "example": "N"
          },
          "gpsX": {
            "type": "number",
            "description": "GPS 坐标 X。",
            "example": 114.436915
          },
          "gpsY": {
            "type": "number",
            "description": "GPS 坐标 Y。",
            "example": 30.435485
          }
        },
        "description": "授权门店信息。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "address",
          "gmtModify",
          "city",
          "gymName",
          "admin",
          "gmtCreate",
          "province",
          "adminPhone",
          "loginName",
          "logo",
          "id",
          "state",
          "gpsX",
          "gpsY"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamRecord": {
        "type": "object",
        "description": "体测数据记录。原文说明：选测项目、体态风险评估数据、身体维度、8 电极节段数据等字段仅在对应项目有结果时返回。",
        "properties": {
          "id": {
            "type": "string",
            "description": "体测 ID / 体测记录 ID。",
            "example": "3000001588015449"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号。文档示例中有时表现为数值，转换时统一按字符串建模。",
            "example": "563075459961857"
          },
          "name": {
            "type": "string",
            "description": "姓名。",
            "example": "匿名"
          },
          "age": {
            "type": "integer",
            "description": "年龄。",
            "minimum": 0,
            "example": 18
          },
          "sex": {
            "type": "string",
            "description": "性别。M=男，F=女。",
            "enum": [
              "M",
              "F"
            ],
            "example": "M"
          },
          "phone": {
            "type": "string",
            "description": "电话号码。",
            "example": "13691537379"
          },
          "userId": {
            "type": "string",
            "description": "用户 ID。",
            "example": "1571108149804725100"
          },
          "customerId": {
            "type": "string",
            "description": "客户/人员唯一编号。",
            "example": "1521523488110511800"
          },
          "anaGoal": {
            "type": "number",
            "description": "无氧运动目标，单位：大卡。",
            "example": 75.15
          },
          "bmi": {
            "type": "number",
            "description": "BMI。",
            "example": 23
          },
          "bmr": {
            "type": "number",
            "description": "基础代谢。",
            "example": 1670
          },
          "bodyAge": {
            "type": "integer",
            "description": "身体年龄。",
            "minimum": 0,
            "example": 26
          },
          "bodyShape": {
            "type": "integer",
            "description": "形体判定。0=隐形肥胖，1=偏胖，2=肥胖，3=偏瘦肌肉，4=标准型，5=非常肌肉，6=偏瘦，7=标准肌肉，8=运动不足。",
            "minimum": 0,
            "maximum": 8,
            "example": 1
          },
          "bone": {
            "type": "number",
            "description": "骨量。",
            "example": 3.01
          },
          "caloriesInput": {
            "type": "number",
            "description": "每日热量摄入，单位：大卡。",
            "example": 1670
          },
          "deviceFrom": {
            "type": "string",
            "description": "体测设备 ID。",
            "example": "2032337d5958"
          },
          "enduGoal": {
            "type": "number",
            "description": "体能耐力每日运动目标，单位：大卡。",
            "example": 150.3
          },
          "fat": {
            "type": "number",
            "description": "体脂率。",
            "example": 28.3
          },
          "fatControl": {
            "type": "number",
            "description": "体脂控制建议。",
            "example": -11.172
          },
          "gmtCreate": {
            "type": "integer",
            "description": "创建时间戳（毫秒）。",
            "format": "int64",
            "example": 1571108150000
          },
          "gmtModify": {
            "type": "integer",
            "description": "修改时间戳（毫秒）。",
            "format": "int64",
            "example": 1571108150000
          },
          "height": {
            "type": "number",
            "description": "身高。",
            "example": 174.3
          },
          "aerobicGoal": {
            "type": "number",
            "description": "有氧运动目标，单位：大卡。",
            "example": 526.05
          },
          "inFat": {
            "type": "number",
            "description": "内脏脂肪。",
            "example": 10
          },
          "muscle": {
            "type": "number",
            "description": "肌肉率。",
            "example": 46.3
          },
          "muscleControl": {
            "type": "number",
            "description": "肌肉控制建议。",
            "example": 3.724
          },
          "perfectWeight": {
            "type": "number",
            "description": "理想体重。",
            "example": 64.4066
          },
          "protein": {
            "type": "number",
            "description": "蛋白质。",
            "example": 16.38
          },
          "score": {
            "type": "integer",
            "description": "体测评分。",
            "example": 58
          },
          "sportGoal": {
            "type": "number",
            "description": "每日总运动目标，单位：大卡。",
            "example": 751.5
          },
          "subFat": {
            "type": "number",
            "description": "皮下脂肪。",
            "example": 25.1
          },
          "water": {
            "type": "number",
            "description": "身体水分。",
            "example": 51.7
          },
          "wc": {
            "type": "number",
            "description": "腰臀比。",
            "example": 1.16638
          },
          "weight": {
            "type": "number",
            "description": "体重。",
            "example": 84
          },
          "weightControl": {
            "type": "number",
            "description": "体重控制建议。",
            "example": -7.448
          },
          "agility": {
            "type": "integer",
            "description": "敏捷反应时间，单位：毫秒。",
            "example": 636
          },
          "balance": {
            "type": "integer",
            "description": "平衡能力评分，1~5 分。",
            "minimum": 1,
            "maximum": 5,
            "example": 2
          },
          "balanceAngle": {
            "type": "number",
            "description": "平衡能力百分比，100% 为满分。",
            "example": 40.8411
          },
          "vitalCapacity": {
            "type": "integer",
            "description": "肺活量，单位：毫升。",
            "example": 4207
          },
          "bloodMaxPressure": {
            "type": "integer",
            "description": "收缩压，单位：毫米汞柱。",
            "example": 128
          },
          "bloodMinPressure": {
            "type": "integer",
            "description": "舒张压，单位：毫米汞柱。",
            "example": 78
          },
          "restingHeartRate": {
            "type": "integer",
            "description": "静态心率。",
            "example": 68
          },
          "heartFun": {
            "type": "integer",
            "description": "心肺功能评级，0~5 分，5 为满分。",
            "minimum": 0,
            "maximum": 5,
            "example": 4
          },
          "bloodOxygen": {
            "type": "integer",
            "description": "血氧浓度，单位：百分比。",
            "minimum": 0,
            "maximum": 100,
            "example": 98
          },
          "sportLevel": {
            "type": "integer",
            "description": "运动能力等级，0~5 分制。0=弱，5=好。",
            "minimum": 0,
            "maximum": 5,
            "example": 5
          },
          "sportSafeRisk": {
            "type": "integer",
            "description": "运动风险等级，0~5 分制。2=正常无风险，1=低血压风险，3=一级高血压，4=二级高血压，5=三级高血压。",
            "minimum": 0,
            "maximum": 5,
            "example": 5
          },
          "leftVision": {
            "type": "number",
            "description": "左眼视力。",
            "example": 5.1
          },
          "rightVision": {
            "type": "number",
            "description": "右眼视力。",
            "example": 5.1
          },
          "bodyImage": {
            "type": "string",
            "description": "正面体态照片路径，可传入照片接口的 key 参数获取图片。",
            "example": "2019-10-15/1571108144859500400.jpg"
          },
          "sideImage": {
            "type": "string",
            "description": "侧面体态照片路径，可传入照片接口的 key 参数获取图片。",
            "example": "2019-10-15/1571108142548217300.jpg"
          },
          "postureRisk": {
            "type": "integer",
            "description": "体态风险等级 / 体态综合分，5 分制。",
            "minimum": 1,
            "maximum": 5,
            "example": 3
          },
          "bodyShapeRisk": {
            "type": "integer",
            "description": "形体风险。0=瘦弱高风险，1=瘦弱较高风险，2=无风险，3=肥胖风险较高，4=肥胖风险高，5=肥胖风险很高。",
            "minimum": 0,
            "maximum": 5,
            "example": 1
          },
          "shoulderRisk": {
            "type": "integer",
            "description": "高低肩风险等级。",
            "minimum": 1,
            "maximum": 5,
            "example": 3
          },
          "humpbackRisk": {
            "type": "integer",
            "description": "驼背风险，1~5 级，得分越高风险越高。",
            "minimum": 1,
            "maximum": 5,
            "example": 1
          },
          "legRisk": {
            "type": "string",
            "description": "X/O 型腿风险。首字母 X 或 O 表示风险类型，数字表示风险等级，例如 X2。",
            "example": "X2"
          },
          "pelvisRisk": {
            "type": "integer",
            "description": "骨盆前倾风险，负数表示后倾。",
            "example": 1
          },
          "kneeRisk": {
            "type": "integer",
            "description": "膝超伸风险，5 分制。",
            "minimum": 1,
            "maximum": 5,
            "example": 1
          },
          "headRisk": {
            "type": "integer",
            "description": "头侧倾风险，5 分制。",
            "minimum": 1,
            "maximum": 5,
            "example": 1
          },
          "spineRisk": {
            "type": "integer",
            "description": "脊柱风险，5 分制。",
            "minimum": 1,
            "maximum": 5,
            "example": 1
          },
          "frontHeadRisk": {
            "type": "integer",
            "description": "头部前倾风险，5 分制。",
            "minimum": 1,
            "maximum": 5,
            "example": 1
          },
          "bodyDetect": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/BodyDetectPayload"
              },
              {
                "type": "string",
                "contentMediaType": "application/json",
                "description": "JSON 字符串格式的骨骼点识别数据。",
                "example": "{\"left_ankle\":{\"score\":0.81988263,\"x\":330.5,\"y\":364.25}}"
              }
            ]
          },
          "sideBodyDetect": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/BodyDetectPayload"
              },
              {
                "type": "string",
                "contentMediaType": "application/json",
                "description": "JSON 字符串格式的骨骼点识别数据。",
                "example": "{\"left_ankle\":{\"score\":0.81988263,\"x\":330.5,\"y\":364.25}}"
              }
            ]
          },
          "waist": {
            "type": "number",
            "description": "腰围长度。",
            "example": 20.1
          },
          "hips": {
            "type": "number",
            "description": "臀围长度。",
            "example": 20.1
          },
          "head": {
            "type": "number",
            "description": "头部高度。",
            "example": 20.1
          },
          "upperBody": {
            "type": "number",
            "description": "上半身长度。",
            "example": 20.1
          },
          "lowerBody": {
            "type": "number",
            "description": "下半身长度。",
            "example": 20.1
          },
          "shank": {
            "type": "number",
            "description": "小腿长度。",
            "example": 20.1
          },
          "thigh": {
            "type": "number",
            "description": "大腿长度。",
            "example": 20.1
          },
          "armSpan": {
            "type": "number",
            "description": "臂展。",
            "example": 20.1
          },
          "armDim": {
            "type": "number",
            "description": "臂围。",
            "example": 20.1
          },
          "thigh_dim": {
            "type": "number",
            "description": "大腿维度。",
            "example": 20.1
          },
          "shoulder_width": {
            "type": "number",
            "description": "肩宽。",
            "example": 20.1
          },
          "occipital_space": {
            "type": "number",
            "description": "枕间距。",
            "example": 20.1
          },
          "footLength": {
            "type": "number",
            "description": "脚长，单位：cm。",
            "example": 35
          },
          "muscleLeftArm": {
            "type": "number",
            "description": "左上肢肌肉。",
            "example": 3.11
          },
          "muscleRightArm": {
            "type": "number",
            "description": "右上肢肌肉。",
            "example": 2.99
          },
          "fatLeftArm": {
            "type": "number",
            "description": "左上肢脂肪。",
            "example": 0.84
          },
          "fatRightArm": {
            "type": "number",
            "description": "右上肢脂肪。",
            "example": 0.93
          },
          "muscleTrunk": {
            "type": "number",
            "description": "躯干肌肉。",
            "example": 29.15
          },
          "fatTrunk": {
            "type": "number",
            "description": "躯干脂肪。",
            "example": 8.35
          },
          "muscleLeftLeg": {
            "type": "number",
            "description": "左下肢肌肉。",
            "example": 9.79
          },
          "muscleRightLeg": {
            "type": "number",
            "description": "右下肢肌肉。",
            "example": 9.71
          },
          "fatLeftLeg": {
            "type": "number",
            "description": "左下肢脂肪。",
            "example": 2.87
          },
          "fatRightLeg": {
            "type": "number",
            "description": "右下肢脂肪。",
            "example": 2.84
          },
          "r20LeftArm": {
            "type": "number",
            "description": "20kHz 左上肢阻抗。",
            "example": 349.1
          },
          "r20LeftLeg": {
            "type": "number",
            "description": "20kHz 左下肢阻抗。",
            "example": 258
          },
          "r20RightArm": {
            "type": "number",
            "description": "20kHz 右上肢阻抗。",
            "example": 349.1
          },
          "r20RightLeg": {
            "type": "number",
            "description": "20kHz 右下肢阻抗。",
            "example": 252.2
          },
          "r20Trunk": {
            "type": "number",
            "description": "20kHz 躯干阻抗。",
            "example": 23.1
          },
          "r100LeftArm": {
            "type": "number",
            "description": "100kHz 左上肢阻抗。",
            "example": 326.5
          },
          "r100LeftLeg": {
            "type": "number",
            "description": "100kHz 左下肢阻抗。",
            "example": 224.9
          },
          "r100RightArm": {
            "type": "number",
            "description": "100kHz 右上肢阻抗。",
            "example": 309.3
          },
          "r100RightLeg": {
            "type": "number",
            "description": "100kHz 右下肢阻抗。",
            "example": 218.4
          },
          "r100Trunk": {
            "type": "number",
            "description": "100kHz 躯干阻抗。",
            "example": 19.2
          },
          "impedanceOne": {
            "type": "number",
            "description": "阻抗值 1。",
            "example": 560
          },
          "impedanceTwo": {
            "type": "number",
            "description": "阻抗值 2。",
            "example": 488
          },
          "isDeleted": {
            "type": "string",
            "description": "逻辑删除标记。",
            "enum": [
              "y",
              "n"
            ],
            "example": "n"
          }
        },
        "additionalProperties": true,
        "x-apifox-orders": [
          "id",
          "gymId",
          "name",
          "age",
          "sex",
          "phone",
          "userId",
          "customerId",
          "anaGoal",
          "bmi",
          "bmr",
          "bodyAge",
          "bodyShape",
          "bone",
          "caloriesInput",
          "deviceFrom",
          "enduGoal",
          "fat",
          "fatControl",
          "gmtCreate",
          "gmtModify",
          "height",
          "aerobicGoal",
          "inFat",
          "muscle",
          "muscleControl",
          "perfectWeight",
          "protein",
          "score",
          "sportGoal",
          "subFat",
          "water",
          "wc",
          "weight",
          "weightControl",
          "agility",
          "balance",
          "balanceAngle",
          "vitalCapacity",
          "bloodMaxPressure",
          "bloodMinPressure",
          "restingHeartRate",
          "heartFun",
          "bloodOxygen",
          "sportLevel",
          "sportSafeRisk",
          "leftVision",
          "rightVision",
          "bodyImage",
          "sideImage",
          "postureRisk",
          "bodyShapeRisk",
          "shoulderRisk",
          "humpbackRisk",
          "legRisk",
          "pelvisRisk",
          "kneeRisk",
          "headRisk",
          "spineRisk",
          "frontHeadRisk",
          "bodyDetect",
          "sideBodyDetect",
          "waist",
          "hips",
          "head",
          "upperBody",
          "lowerBody",
          "shank",
          "thigh",
          "armSpan",
          "armDim",
          "thigh_dim",
          "shoulder_width",
          "occipital_space",
          "footLength",
          "muscleLeftArm",
          "muscleRightArm",
          "fatLeftArm",
          "fatRightArm",
          "muscleTrunk",
          "fatTrunk",
          "muscleLeftLeg",
          "muscleRightLeg",
          "fatLeftLeg",
          "fatRightLeg",
          "r20LeftArm",
          "r20LeftLeg",
          "r20RightArm",
          "r20RightLeg",
          "r20Trunk",
          "r100LeftArm",
          "r100LeftLeg",
          "r100RightArm",
          "r100RightLeg",
          "r100Trunk",
          "impedanceOne",
          "impedanceTwo",
          "isDeleted"
        ],
        "x-apifox-ignore-properties": [],
        "example": {
          "id": "3000001588015449",
          "gymId": "15241515131515123",
          "name": "匿名",
          "age": 18,
          "sex": "M",
          "phone": "13691537379",
          "userId": "1571108149804725100",
          "bmi": 23,
          "weight": 84,
          "height": 174.3,
          "fat": 28.3,
          "water": 51.7,
          "score": 58,
          "gmtCreate": 1571108150000
        },
        "x-apifox-folder": ""
      },
      "DeviceStateData": {
        "type": "object",
        "properties": {
          "deviceId": {
            "type": "string",
            "description": "设备序列号。",
            "example": "K2@ec2e980fed53"
          },
          "deviceName": {
            "type": "string",
            "description": "设备名称。",
            "example": "智能体测仪K2"
          },
          "gmtCreate": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号。",
            "example": "1607140836220195200"
          },
          "gymName": {
            "type": "string",
            "description": "门店名称。",
            "example": "宅客健康"
          },
          "service": {
            "type": "string",
            "description": "服务类型。S=扫码付费，N=普通模式。",
            "enum": [
              "S",
              "N"
            ],
            "example": "N"
          },
          "state": {
            "type": "string",
            "description": "设备状态。B=掉线，O=在线空闲，E=设备故障，W=待付款，R=准备就绪。",
            "enum": [
              "B",
              "O",
              "E",
              "W",
              "R"
            ],
            "example": "O"
          },
          "type": {
            "type": "string",
            "description": "设备类型。H=体测仪，D=门禁，P=私教运动仪，F=人脸门禁。",
            "enum": [
              "H",
              "D",
              "P",
              "F"
            ],
            "example": "H"
          },
          "price": {
            "type": "number",
            "description": "使用价格。",
            "example": 0
          }
        },
        "description": "体测仪运行状态数据。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "deviceId",
          "deviceName",
          "gmtCreate",
          "gymId",
          "gymName",
          "service",
          "state",
          "type",
          "price"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "GymExtendItem": {
        "type": "object",
        "properties": {
          "ageEnd": {
            "type": "integer",
            "description": "适用年龄结束值。",
            "minimum": 0,
            "example": 6
          },
          "ageStart": {
            "type": "integer",
            "description": "适用年龄开始值。",
            "minimum": 0,
            "example": 2
          },
          "code": {
            "type": "string",
            "description": "附加项编码。",
            "example": "F1"
          },
          "describe": {
            "type": "string",
            "description": "项目描述。",
            "example": ""
          },
          "fewerTxt": {
            "type": "string",
            "description": "较差等级文案。",
            "example": "较差"
          },
          "fewestTxt": {
            "type": "string",
            "description": "很差等级文案。",
            "example": "很差"
          },
          "moreTxt": {
            "type": "string",
            "description": "较好等级文案。",
            "example": "较好"
          },
          "mostTxt": {
            "type": "string",
            "description": "很好等级文案。",
            "example": "很好"
          },
          "name": {
            "type": "string",
            "description": "项目名称。",
            "example": "十米折返跑"
          },
          "sex": {
            "type": "string",
            "description": "适用性别。A=全部，M=男，F=女。",
            "enum": [
              "A",
              "M",
              "F"
            ],
            "example": "A"
          },
          "stdTxt": {
            "type": "string",
            "description": "一般等级文案。",
            "example": "一般"
          },
          "unit": {
            "type": "string",
            "description": "测试成绩单位。",
            "example": "秒"
          },
          "gmtCreate": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "gmtModify": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "isDeleted": {
            "type": "string",
            "description": "逻辑删除标记。",
            "enum": [
              "y",
              "n"
            ],
            "example": "n"
          }
        },
        "description": "门店可用附加项定义。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "ageEnd",
          "ageStart",
          "code",
          "describe",
          "fewerTxt",
          "fewestTxt",
          "moreTxt",
          "mostTxt",
          "name",
          "sex",
          "stdTxt",
          "unit",
          "gmtCreate",
          "gmtModify",
          "isDeleted"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamExtraItem": {
        "type": "object",
        "properties": {
          "examId": {
            "type": "string",
            "description": "体测记录 ID。",
            "example": "682071065943826"
          },
          "fewer": {
            "type": "number",
            "description": "较差阈值。",
            "example": 3.2
          },
          "fewest": {
            "type": "number",
            "description": "很差阈值。",
            "example": 2.2
          },
          "level": {
            "type": "integer",
            "description": "等级评价，1~5。",
            "minimum": 1,
            "maximum": 5,
            "example": 3
          },
          "levelTxt": {
            "type": "string",
            "description": "评价文字。",
            "example": "一般"
          },
          "more": {
            "type": "number",
            "description": "较好阈值。",
            "example": 21
          },
          "most": {
            "type": "number",
            "description": "很好阈值。",
            "example": 24.6
          },
          "name": {
            "type": "string",
            "description": "测试项目名称。",
            "example": "坐位体前屈"
          },
          "score": {
            "type": "integer",
            "description": "得分。",
            "example": 34
          },
          "type": {
            "type": "string",
            "description": "附加项编码。",
            "example": "Z"
          },
          "value": {
            "type": "number",
            "description": "测试成绩。",
            "example": 10
          },
          "video": {
            "type": "string",
            "description": "录像或照片资源路径。",
            "example": "2019-10-15/1571108144859500400.jpg"
          },
          "gmtCreate": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "gmtModify": {
            "$ref": "#/components/schemas/TimestampMs"
          },
          "isDeleted": {
            "type": "string",
            "description": "逻辑删除标记。",
            "enum": [
              "y",
              "n"
            ],
            "example": "n"
          }
        },
        "description": "附加项成绩记录。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "examId",
          "fewer",
          "fewest",
          "level",
          "levelTxt",
          "more",
          "most",
          "name",
          "score",
          "type",
          "value",
          "video",
          "gmtCreate",
          "gmtModify",
          "isDeleted"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ScanExamQrPayload": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "体测记录唯一 ID。",
            "example": "xxxxx"
          },
          "name": {
            "type": "string",
            "description": "体测人姓名。",
            "example": "xxx"
          },
          "phone": {
            "type": "string",
            "description": "电话 / 学号 / 卡号等编号信息。",
            "example": "18888888888"
          },
          "age": {
            "type": "integer",
            "description": "年龄。",
            "minimum": 0,
            "example": 28
          },
          "sex": {
            "type": "string",
            "description": "性别。M=男，F=女。",
            "enum": [
              "M",
              "F"
            ],
            "example": "M"
          },
          "customerId": {
            "type": "string",
            "description": "人员唯一编号。",
            "example": "xxxxxxxxx"
          },
          "height": {
            "type": "number",
            "description": "身高；无身高测量设备时可选填。",
            "example": 172.5
          }
        },
        "description": "扫码体测二维码中编码的 JSON 负载结构。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "id",
          "name",
          "phone",
          "age",
          "sex",
          "customerId",
          "height"
        ],
        "x-apifox-ignore-properties": [],
        "example": {
          "id": "xxxxx",
          "name": "xxx",
          "phone": "1888888888",
          "age": 28,
          "sex": "M",
          "customerId": "xxxxxxxxx"
        },
        "x-apifox-folder": ""
      },
      "GroupApiKeyRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "管理后台账户名。",
            "example": "demo_group_account"
          },
          "password": {
            "type": "string",
            "description": "密码的 MD5（32 位小写）值。",
            "example": "e10adc3949ba59abbe56e057f20f883e"
          }
        },
        "required": [
          "account",
          "password"
        ],
        "description": "获取集团账号 apiKey 的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "account",
          "password"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "AuthorizedGymsRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "集团账号 apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "managerId": {
            "type": "string",
            "description": "管理员编号。",
            "example": "xxxxxxxxxxxx"
          },
          "gymName": {
            "type": "string",
            "description": "门店名模糊搜索。",
            "example": "测试门店"
          },
          "pageIndex": {
            "type": "integer",
            "description": "分页页码，默认 0。",
            "minimum": 0,
            "default": 0,
            "example": 0
          },
          "pageSize": {
            "type": "integer",
            "description": "分页大小，默认 30，最大 1000。",
            "minimum": 1,
            "maximum": 1000,
            "default": 30,
            "example": 30
          }
        },
        "required": [
          "apiKey",
          "managerId"
        ],
        "description": "获取账户已授权门店信息的请求。小程序调用需带上 cookie。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "managerId",
          "gymName",
          "pageIndex",
          "pageSize"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamFilterRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号；为空时查询当前账户所有已授权门店。",
            "example": "563075459961857"
          },
          "name": {
            "type": "string",
            "description": "按姓名搜索。",
            "example": "张三"
          },
          "phone": {
            "type": "string",
            "description": "按电话号码搜索。",
            "example": "13691537379"
          },
          "sex": {
            "type": "string",
            "description": "按性别搜索。M=男，F=女。",
            "enum": [
              "M",
              "F"
            ],
            "example": "M"
          },
          "ageStart": {
            "type": "integer",
            "description": "年龄区间开始值；需与 ageEnd 成对出现。",
            "minimum": 0,
            "example": 18
          },
          "ageEnd": {
            "type": "integer",
            "description": "年龄区间结束值；需与 ageStart 成对出现。",
            "minimum": 0,
            "example": 30
          },
          "timeStart": {
            "type": "string",
            "description": "时间段开始时间；支持多种文本格式，需与 timeEnd 成对出现。",
            "example": "2024-01-01 00:00:00"
          },
          "timeEnd": {
            "type": "string",
            "description": "时间段结束时间；支持多种文本格式，需与 timeStart 成对出现。",
            "example": "2024-01-31 23:59:59"
          },
          "pageIndex": {
            "type": "integer",
            "description": "分页页码，默认 0。",
            "minimum": 0,
            "default": 0,
            "example": 0
          },
          "pageSize": {
            "type": "integer",
            "description": "分页大小，默认 30。",
            "minimum": 1,
            "default": 30,
            "example": 30
          }
        },
        "required": [
          "apiKey"
        ],
        "description": "体测记录查询条件。小程序调用需带上 cookie。",
        "additionalProperties": false,
        "dependentRequired": {
          "ageStart": [
            "ageEnd"
          ],
          "ageEnd": [
            "ageStart"
          ],
          "timeStart": [
            "timeEnd"
          ],
          "timeEnd": [
            "timeStart"
          ]
        },
        "x-apifox-orders": [
          "apiKey",
          "gymId",
          "name",
          "phone",
          "sex",
          "ageStart",
          "ageEnd",
          "timeStart",
          "timeEnd",
          "pageIndex",
          "pageSize"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamByIdRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "id": {
            "type": "string",
            "description": "体测记录 ID。",
            "example": "8000000322198329"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号。",
            "example": "gym1461205683189585401"
          }
        },
        "required": [
          "apiKey",
          "id",
          "gymId"
        ],
        "description": "根据 ID 获取体测数据的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "id",
          "gymId"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "FileLoadQuery": {
        "type": "object",
        "properties": {
          "key": {
            "type": "string",
            "description": "文件相对路径。",
            "example": "2019-10-15/1571108144859500400.jpg"
          }
        },
        "required": [
          "key"
        ],
        "description": "图片资源查询参数。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "key"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamCallbackRequest": {
        "type": "object",
        "properties": {
          "examData": {
            "$ref": "#/components/schemas/ExamRecord"
          }
        },
        "required": [
          "examData"
        ],
        "description": "设备上传体测记录时，平台向业务系统回调的数据。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "examData"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "StartExamRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号。",
            "example": "1607140836220195200"
          },
          "device": {
            "type": "string",
            "description": "设备序列号。",
            "example": "K2@ec2e980fed53"
          },
          "customerId": {
            "type": "string",
            "description": "客户 ID / 本次体测人员唯一 ID。",
            "example": "CUST-001"
          },
          "name": {
            "type": "string",
            "description": "姓名。",
            "example": "张三"
          },
          "sex": {
            "type": "string",
            "description": "性别。M=男，F=女。",
            "enum": [
              "M",
              "F"
            ],
            "example": "M"
          },
          "age": {
            "type": "integer",
            "description": "年龄。",
            "minimum": 0,
            "example": 18
          },
          "height": {
            "type": "number",
            "description": "身高；无身高测量设备时必填。",
            "example": 172.5
          },
          "phone": {
            "type": "string",
            "description": "用户电话号码。",
            "example": "13800138000"
          }
        },
        "required": [
          "apiKey",
          "gymId",
          "device",
          "customerId",
          "name",
          "sex",
          "age",
          "phone"
        ],
        "description": "扫码体测模式下云端通知设备开始体测的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "gymId",
          "device",
          "customerId",
          "name",
          "sex",
          "age",
          "height",
          "phone"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "CancelExamRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "device": {
            "type": "string",
            "description": "设备序列号。",
            "example": "K2@ec2e980fed53"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号。",
            "example": "1607140836220195200"
          }
        },
        "required": [
          "apiKey",
          "device",
          "gymId"
        ],
        "description": "取消云端启动设备开始体测状态的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "device",
          "gymId"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamStateRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "device": {
            "type": "string",
            "description": "设备序列号。",
            "example": "K2@ec2e980fed53"
          },
          "gymId": {
            "type": "string",
            "description": "门店编号。",
            "example": "1607140836220195200"
          }
        },
        "required": [
          "apiKey",
          "device",
          "gymId"
        ],
        "description": "获取体测仪运行状态的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "device",
          "gymId"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "SingleGymApiKeyRequest": {
        "type": "object",
        "properties": {
          "account": {
            "type": "string",
            "description": "门店账户名。",
            "example": "demo_gym_account"
          },
          "password": {
            "type": "string",
            "description": "密码的 MD5（32 位小写）值。",
            "example": "e10adc3949ba59abbe56e057f20f883e"
          }
        },
        "required": [
          "account",
          "password"
        ],
        "description": "获取某个门店 apiKey 的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "account",
          "password"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ApiKeyOnlyRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          }
        },
        "required": [
          "apiKey"
        ],
        "description": "仅包含 apiKey 的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "AddExItemRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "examId": {
            "type": "string",
            "description": "体测记录 ID。",
            "example": "682071065943826"
          },
          "type": {
            "type": "string",
            "description": "体测附加项编号。",
            "example": "Z"
          },
          "value": {
            "type": "number",
            "description": "项目测试成绩。",
            "example": 10
          }
        },
        "required": [
          "apiKey",
          "examId",
          "type",
          "value"
        ],
        "description": "添加附加项的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "examId",
          "type",
          "value"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "DelExItemRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "examId": {
            "type": "string",
            "description": "体测记录 ID。",
            "example": "682071065943826"
          },
          "type": {
            "type": "string",
            "description": "体测附加项编号。",
            "example": "Z"
          }
        },
        "required": [
          "apiKey",
          "examId",
          "type"
        ],
        "description": "删除附加项的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "examId",
          "type"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamExItemsRequest": {
        "type": "object",
        "properties": {
          "apiKey": {
            "type": "string",
            "description": "apiKey。若改用 GET 调用，请先进行 URL 编码。",
            "example": "3nk3nJ2H0C8Zo0wr%2BvL"
          },
          "examId": {
            "type": "string",
            "description": "体测记录 ID。",
            "example": "682071065943826"
          }
        },
        "required": [
          "apiKey",
          "examId"
        ],
        "description": "查看附加项成绩的请求。",
        "additionalProperties": false,
        "x-apifox-orders": [
          "apiKey",
          "examId"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "OperationStatusResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。true=正常，false=异常。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。不同接口含义略有差异，通常 0 表示成功。",
            "example": 0
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "操作成功"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "INFO"
        ],
        "description": "通用状态响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "example": {
          "STATUS": true,
          "CODE": 0,
          "INFO": "操作成功"
        },
        "x-apifox-folder": ""
      },
      "GroupApiKeyResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。0=正常，200=账户名错误，300=账户状态异常，400=密码错误，500=内部错误。",
            "example": 0
          },
          "apiKey": {
            "type": "string",
            "description": "该账户的 apiKey。",
            "example": "3nk3nJ2H0C8Zo0wr+vL"
          },
          "managerId": {
            "type": "string",
            "description": "管理员编号，可用于获取已授权门店。",
            "example": "xxxxxxxxxxxx"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "成功"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "apiKey",
          "managerId",
          "INFO"
        ],
        "description": "获取集团账号 apiKey 的响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "apiKey",
          "managerId",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "AuthorizedGymsResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。",
            "example": 0
          },
          "total": {
            "type": "integer",
            "description": "数据条数。",
            "minimum": 0,
            "example": 1
          },
          "DATA": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Gym"
            },
            "description": "授权门店列表。"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "success"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "total",
          "DATA",
          "INFO"
        ],
        "description": "获取账户已授权门店信息的响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "total",
          "DATA",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamsResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。0=正常，100=秘钥错误，500=内部错误。",
            "example": 0
          },
          "DATA": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExamRecord"
            },
            "description": "体测数据记录列表。"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "成功"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "description": "体测记录查询响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamsCountResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。0=正常，100=秘钥错误，500=内部错误。",
            "example": 0
          },
          "DATA": {
            "type": "integer",
            "description": "返回记录数量。",
            "minimum": 0,
            "example": 1
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "成功"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "description": "体测数量查询响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamByIdResponse": {
        "type": "object",
        "properties": {
          "standard": {
            "$ref": "#/components/schemas/ExamStandardSet"
          },
          "weightGrowthStandard": {
            "$ref": "#/components/schemas/NumericMatrix"
          },
          "segmentMap": {
            "$ref": "#/components/schemas/SegmentMapStandard"
          },
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "接口状态码。",
            "example": 0
          },
          "DATA": {
            "$ref": "#/components/schemas/ExamRecord"
          },
          "heightGrowthStandard": {
            "$ref": "#/components/schemas/NumericMatrix"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注。",
            "example": "success"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "description": "根据 ID 获取体测数据的响应。weightGrowthStandard 和 heightGrowthStandard 仅年龄小于 18 岁时返回。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "standard",
          "weightGrowthStandard",
          "segmentMap",
          "STATUS",
          "CODE",
          "DATA",
          "heightGrowthStandard",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamStateResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。",
            "example": 0
          },
          "DATA": {
            "$ref": "#/components/schemas/DeviceStateData"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "success"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "description": "体测仪运行状态响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "SingleGymApiKeyResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。0=正常，200=账户名错误，300=账户状态异常，400=密码错误，500=内部错误。",
            "example": 0
          },
          "apiKey": {
            "type": "string",
            "description": "该门店账户的 apiKey。",
            "example": "3nk3nJ2H0C8Z45o0wr+vLsdf4"
          },
          "id": {
            "type": "string",
            "description": "门店编号 ID。",
            "example": "xxxxxxxxxxxx"
          },
          "name": {
            "type": "string",
            "description": "门店名称。",
            "example": "xxxx门店名称"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "成功"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "apiKey",
          "id",
          "name",
          "INFO"
        ],
        "description": "获取门店 apiKey 的响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "apiKey",
          "id",
          "name",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "GymExtendListResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。",
            "example": 0
          },
          "DATA": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GymExtendItem"
            },
            "description": "当前门店所有可用附加项。"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "success"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "description": "获取当前门店所有可用附加项的响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ExamExItemsResponse": {
        "type": "object",
        "properties": {
          "STATUS": {
            "type": "boolean",
            "description": "接口状态。",
            "example": true
          },
          "CODE": {
            "type": "integer",
            "description": "错误码。",
            "example": 0
          },
          "DATA": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ExamExtraItem"
            },
            "description": "附加项成绩列表。"
          },
          "INFO": {
            "type": "string",
            "description": "接口返回备注信息。",
            "example": "成功"
          }
        },
        "required": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "description": "查看附加项成绩的响应。",
        "additionalProperties": true,
        "x-apifox-orders": [
          "STATUS",
          "CODE",
          "DATA",
          "INFO"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "RestoreMpWxLoginRequest": {
        "type": "object",
        "required": [
          "form"
        ],
        "properties": {
          "form": {
            "type": "object",
            "required": [
              "code"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "小程序 uni.login / wx.login 返回的临时登录凭证"
              }
            },
            "x-apifox-orders": [
              "code"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "x-apifox-orders": [
          "form"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "RestoreMpWxLoginResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "description": "业务状态码，200 表示成功，500 表示业务失败"
          },
          "message": {
            "type": "string",
            "description": "提示信息"
          },
          "data": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "userId": {
                    "type": "integer",
                    "description": "用户 ID"
                  },
                  "token": {
                    "type": "string",
                    "description": "新生成的登录 token，前端保存为 AccessToken"
                  }
                },
                "x-apifox-orders": [
                  "userId",
                  "token"
                ],
                "x-apifox-ignore-properties": []
              },
              {
                "type": "object",
                "properties": {
                  "restoreCode": {
                    "type": "string",
                    "description": "静默恢复失败业务码",
                    "enum": [
                      "WECHAT_CODE_EMPTY",
                      "WECHAT_SESSION_INVALID",
                      "LOGOUT_DISABLED",
                      "NEED_BIND",
                      "ACCOUNT_NOT_FOUND"
                    ]
                  }
                },
                "x-apifox-orders": [
                  "restoreCode"
                ],
                "x-apifox-ignore-properties": []
              }
            ]
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "CommonResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer"
          },
          "message": {
            "type": "string"
          },
          "data": {
            "description": "业务数据"
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ResolveMpWxEnterpriseRequest": {
        "type": "object",
        "required": [
          "form"
        ],
        "properties": {
          "form": {
            "type": "object",
            "required": [
              "code",
              "appid"
            ],
            "properties": {
              "code": {
                "type": "string",
                "description": "wx.login 返回的临时登录凭证"
              },
              "appid": {
                "type": "string",
                "description": "小程序 appid"
              }
            },
            "x-apifox-orders": [
              "code",
              "appid"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "x-apifox-orders": [
          "form"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "BindMpWxEnterpriseRouteRequest": {
        "type": "object",
        "required": [
          "form"
        ],
        "properties": {
          "form": {
            "type": "object",
            "required": [
              "appid",
              "enterprise_no"
            ],
            "properties": {
              "openid": {
                "type": "string"
              },
              "code": {
                "type": "string",
                "description": "旧版本兼容"
              },
              "appid": {
                "type": "string"
              },
              "enterprise_no": {
                "type": "string"
              },
              "user_id": {
                "type": "integer",
                "description": "最近登录用户ID；用于按企业+用户精确恢复或禁用静默登录",
                "example": 10086
              }
            },
            "x-apifox-orders": [
              "openid",
              "code",
              "appid",
              "enterprise_no",
              "user_id"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "x-apifox-orders": [
          "form"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "DisableMpWxEnterpriseRouteRequest": {
        "type": "object",
        "required": [
          "form"
        ],
        "properties": {
          "form": {
            "type": "object",
            "properties": {
              "openid": {
                "type": "string"
              },
              "code": {
                "type": "string",
                "description": "退出时如果没有 openid，可传 wx.login code"
              },
              "appid": {
                "type": "string",
                "description": "小程序 appid；按 openid/code 禁用时必传，按 enterprise_no + user_id 批量禁用时可不传"
              },
              "enterprise_no": {
                "type": "string",
                "description": "当前企业编号；与 user_id 一起传时禁用该企业该用户所有 openid 自动恢复"
              },
              "user_id": {
                "type": "integer",
                "description": "最近登录用户ID；用于按企业+用户精确恢复或禁用静默登录",
                "example": 10086
              }
            },
            "x-apifox-orders": [
              "openid",
              "code",
              "appid",
              "enterprise_no",
              "user_id"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "x-apifox-orders": [
          "form"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ResolveMpWxEnterpriseResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "example": 200
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "properties": {
              "appid": {
                "type": "string"
              },
              "openid": {
                "type": "string"
              },
              "enterpriseNo": {
                "type": "string",
                "description": "最近企业编号；为空时进入正常登录"
              },
              "logoutDisabled": {
                "type": "integer",
                "description": "1 表示用户主动退出过，不允许静默恢复"
              },
              "userId": {
                "type": "integer",
                "description": "最近登录用户ID；为空或0时旧版本逻辑按 openid 查当前企业绑定用户",
                "example": 10086
              }
            },
            "x-apifox-orders": [
              "appid",
              "openid",
              "enterpriseNo",
              "logoutDisabled",
              "userId"
            ],
            "x-apifox-ignore-properties": []
          },
          "trace_id": {
            "type": "string"
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data",
          "trace_id"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "LoginTokenResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "example": 200
          },
          "message": {
            "type": "string"
          },
          "data": {
            "type": "object",
            "properties": {
              "userId": {
                "type": "integer"
              },
              "token": {
                "type": "string"
              }
            },
            "x-apifox-orders": [
              "userId",
              "token"
            ],
            "x-apifox-ignore-properties": []
          },
          "trace_id": {
            "type": "string"
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data",
          "trace_id"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "EmptySuccessResponse": {
        "type": "object",
        "properties": {
          "status": {
            "type": "integer",
            "example": 200
          },
          "message": {
            "type": "string"
          },
          "data": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              {
                "type": "object",
                "x-apifox-orders": [],
                "properties": {},
                "x-apifox-ignore-properties": []
              },
              {
                "type": "string"
              }
            ]
          },
          "trace_id": {
            "type": "string"
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data",
          "trace_id"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "CreateSsoTicketRequest": {
        "type": "object",
        "required": [
          "provider",
          "mobile",
          "timestamp",
          "nonce",
          "sign"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "description": "固定值：jsgx_wechat_applet_001",
            "example": "jsgx_wechat_applet_001"
          },
          "mobile": {
            "type": "string",
            "description": "小程序后端从登录态取得的可信手机号",
            "example": "13800000000"
          },
          "timestamp": {
            "type": "integer",
            "description": "Unix 秒级时间戳，默认允许误差 300 秒",
            "example": 1710000000
          },
          "nonce": {
            "type": "string",
            "description": "随机字符串，同一 provider 下不可重复",
            "example": "random_abc123"
          },
          "sign": {
            "type": "string",
            "description": "HMAC-SHA256 签名，小写 hex",
            "example": "0f6e000000000000000000000000000000000000000000000000000000000000"
          }
        },
        "x-apifox-orders": [
          "provider",
          "mobile",
          "timestamp",
          "nonce",
          "sign"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ConsumeSsoTicketRequest": {
        "type": "object",
        "required": [
          "provider",
          "ticket"
        ],
        "properties": {
          "provider": {
            "type": "string",
            "description": "固定值：jsgx_wechat_applet_001",
            "example": "jsgx_wechat_applet_001"
          },
          "ticket": {
            "type": "string",
            "description": "申请 ticket 接口返回的一次性 ticket",
            "example": "sso_随机字符串"
          }
        },
        "x-apifox-orders": [
          "provider",
          "ticket"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "CreateSsoTicketSuccessResponse": {
        "type": "object",
        "required": [
          "status",
          "message",
          "data"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 200
          },
          "message": {
            "type": "string",
            "example": "ok"
          },
          "data": {
            "type": "object",
            "required": [
              "ticket",
              "expires_in",
              "redirect_url"
            ],
            "properties": {
              "ticket": {
                "type": "string",
                "example": "sso_随机字符串"
              },
              "expires_in": {
                "type": "integer",
                "description": "ticket 剩余有效秒数",
                "example": 300
              },
              "redirect_url": {
                "type": "string",
                "description": "小程序前端最终打开的 H5 地址，域名来自 yoshop_sso_provider.redirect_domain",
                "example": "https://jsgx.yyangpt.cn/web/#/home?ticket=sso_%E9%9A%8F%E6%9C%BA%E5%AD%97%E7%AC%A6%E4%B8%B2"
              }
            },
            "x-apifox-orders": [
              "ticket",
              "expires_in",
              "redirect_url"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "ConsumeSsoTicketSuccessResponse": {
        "type": "object",
        "required": [
          "status",
          "message",
          "data"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 200
          },
          "message": {
            "type": "string",
            "example": "ok"
          },
          "data": {
            "type": "object",
            "required": [
              "token",
              "system_user_id",
              "user_name",
              "department_name",
              "mobile"
            ],
            "properties": {
              "token": {
                "type": "string",
                "description": "智慧食堂 Access-Token",
                "example": "智慧食堂Access-Token"
              },
              "system_user_id": {
                "type": "integer",
                "description": "智慧食堂用户 ID",
                "example": 123
              },
              "user_name": {
                "type": "string",
                "example": "张三"
              },
              "department_name": {
                "type": "string",
                "example": "某学校"
              },
              "mobile": {
                "type": "string",
                "description": "脱敏手机号",
                "example": "138****0000"
              }
            },
            "x-apifox-orders": [
              "token",
              "system_user_id",
              "user_name",
              "department_name",
              "mobile"
            ],
            "x-apifox-ignore-properties": []
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      },
      "CommonErrorResponse": {
        "type": "object",
        "required": [
          "status",
          "message",
          "data"
        ],
        "properties": {
          "status": {
            "type": "integer",
            "example": 400
          },
          "message": {
            "type": "string",
            "example": "手机号格式错误"
          },
          "data": {
            "type": "array",
            "items": {},
            "example": []
          }
        },
        "x-apifox-orders": [
          "status",
          "message",
          "data"
        ],
        "x-apifox-ignore-properties": [],
        "x-apifox-folder": ""
      }
    },
    "responses": {
      "记录不存在": {
        "description": "",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "integer"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "code",
                "message"
              ],
              "x-apifox-orders": [
                "code",
                "message"
              ]
            }
          }
        }
      },
      "参数不正确": {
        "description": "",
        "content": {
          "application/json": {
            "schema": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "integer"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "code",
                "message"
              ],
              "x-apifox-orders": [
                "code",
                "message"
              ]
            }
          }
        }
      }
    },
    "securitySchemes": {
      "basicAuth": {
        "type": "http",
        "scheme": "basic",
        "description": "文档示例：Headers 加 Authorization: Basic <...>（由厂商提供）"
      }
    },
    "headers": {
      "Location": {
        "description": "跳转后的图片资源地址。",
        "schema": {
          "type": "string",
          "format": "uri"
        }
      }
    }
  },
  "servers": [],
  "security": []
}