{
  "swagger": "2.0",
  "info": {
    "title": "用户服务",
    "version": "1.0.0"
  },
  "basePath": "/",
  "paths": {
    "/dict/all": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "获取所有字典数据（公开接口）",
        "description": "获取系统全部字典类型及其字典数据，供小程序C端使用。无需认证即可调用。返回格式与管理端 /admin/dict/all 一致。\n\n**字典层级说明**：\n- 每个元素包含 dictType（编码）、dictName（名称）、dataList（字典数据列表）\n- 前端通过 dictType 匹配业务字段，用 dataList 中的 dictValue/dictLabel 做翻译展示\n- 常用字典：order_status、product_status、id_card_type、gender、traveler_type、favorite_resource_type、footprint_resource_type\n",
        "operationId": "getAllDictUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«字典VO»»",
              "$ref": "#/definitions/统一响应结果«List«字典VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«字典VO»»",
              "$ref": "#/definitions/统一响应结果«List«字典VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/account": {
      "delete": {
        "tags": [
          "小程序接口"
        ],
        "summary": "注销账号",
        "description": "永久注销当前用户账号（软删除）。注销后该账号的openid和手机号将被释放，可用于重新注册。注销操作不可撤销，请谨慎调用。需要小程序用户认证。",
        "operationId": "deleteAccountUsingDELETE",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/favorite": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "收藏列表",
        "description": "分页查询当前用户的所有收藏记录，按收藏时间倒序排列。返回收藏记录的基础信息（不包含资源详情），需前端根据targetType和targetId再查详情。需要小程序用户认证。\n\n**关联字典**：\n- favorite_resource_type（收藏资源类型）：返回字段targetType，前端据此判断跳转到哪种资源详情页\n",
        "operationId": "listFavoritesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Favorite»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Favorite»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Favorite»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Favorite»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "添加收藏",
        "description": "将指定资源添加到当前用户的收藏列表。同一用户对同一资源不可重复收藏，重复收藏会报错。targetType取值：SCENIC_SPOT/ACTIVITY/HOTEL/PRODUCT/EXPLORE等。需要小程序用户认证。\n\n**关联字典**：\n- favorite_resource_type（收藏资源类型）：SCENIC_SPOT=景区, ACTIVITY=活动, HOTEL=酒店, PRODUCT=产品, EXPLORE=探索（请求参数targetType）\n",
        "operationId": "addFavoriteUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "favoriteRequest",
            "description": "收藏请求",
            "required": false,
            "schema": {
              "originalRef": "收藏请求",
              "$ref": "#/definitions/收藏请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Favorite»",
              "$ref": "#/definitions/统一响应结果«Favorite»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Favorite»",
              "$ref": "#/definitions/统一响应结果«Favorite»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/favorite/check": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "检查是否已收藏",
        "description": "检查当前用户是否已收藏指定类型的资源。返回true=已收藏，false=未收藏。targetType取值：SCENIC_SPOT/ACTIVITY/HOTEL/PRODUCT/EXPLORE等。需要小程序用户认证。\n\n**关联字典**：\n- favorite_resource_type（收藏资源类型）：SCENIC_SPOT=景区, ACTIVITY=活动, HOTEL=酒店, PRODUCT=产品, EXPLORE=探索（请求参数targetType）\n",
        "operationId": "checkFavoriteUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "targetId",
            "in": "query",
            "description": "目标资源ID",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          },
          {
            "name": "targetType",
            "in": "query",
            "description": "目标类型",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«boolean»",
              "$ref": "#/definitions/统一响应结果«boolean»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«boolean»",
              "$ref": "#/definitions/统一响应结果«boolean»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/favorite/{favoriteId}": {
      "delete": {
        "tags": [
          "小程序接口"
        ],
        "summary": "删除收藏",
        "description": "根据收藏记录ID取消收藏。只能删除自己的收藏记录，删除他人的收藏会报权限错误。需要小程序用户认证。",
        "operationId": "deleteFavoriteUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "favoriteId",
            "in": "path",
            "description": "收藏ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/footprint": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "足迹列表",
        "description": "分页查询当前用户的浏览足迹，按浏览时间倒序排列。需要小程序用户认证。\n\n**关联字典**：\n- footprint_resource_type（足迹资源类型）：返回字段resourceType，前端据此判断跳转到哪种资源详情页\n",
        "operationId": "listFootprintsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Footprint»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Footprint»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Footprint»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Footprint»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "添加足迹",
        "description": "记录用户浏览资源的足迹。同一用户对同一资源多次浏览只保留最新一条记录（更新时间）。resourceType取值：SCENIC_SPOT/ACTIVITY/HOTEL/PRODUCT等。通常由前端在进入资源详情页时自动调用。需要小程序用户认证。\n\n**关联字典**：\n- footprint_resource_type（足迹资源类型）：SCENIC_SPOT=景区, ACTIVITY=活动, HOTEL=酒店, PRODUCT=产品（请求参数resourceType）\n",
        "operationId": "addFootprintUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "footprintRequest",
            "description": "足迹请求",
            "required": false,
            "schema": {
              "originalRef": "足迹请求",
              "$ref": "#/definitions/足迹请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Footprint»",
              "$ref": "#/definitions/统一响应结果«Footprint»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Footprint»",
              "$ref": "#/definitions/统一响应结果«Footprint»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/footprint/{footprintId}": {
      "delete": {
        "tags": [
          "小程序接口"
        ],
        "summary": "删除足迹",
        "description": "根据足迹记录ID删除单条浏览足迹。只能删除自己的足迹记录。需要小程序用户认证。",
        "operationId": "deleteFootprintUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "footprintId",
            "in": "path",
            "description": "足迹ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/login": {
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "微信登录",
        "description": "小程序用户通过微信授权码（wx.login获取的code）登录。可选传入phoneCode用于获取手机号绑定，avatar和nickname用于设置头像昵称。首次登录自动注册，返回JWT Token。needProfile=true表示需补充实名信息。无需认证即可调用。",
        "operationId": "loginUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "微信登录请求",
            "required": false,
            "schema": {
              "originalRef": "微信小程序登录请求",
              "$ref": "#/definitions/微信小程序登录请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户登录响应»",
              "$ref": "#/definitions/统一响应结果«用户登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户登录响应»",
              "$ref": "#/definitions/统一响应结果«用户登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/login/sms": {
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "手机号验证码登录",
        "description": "小程序用户通过手机号+短信验证码登录。首次登录自动注册账号，返回JWT Token。登录成功后若needProfile=true，表示需要补充个人信息（实名认证），前端应跳转到信息补充页。无需认证即可调用。",
        "operationId": "loginBySmsUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "短信验证码登录请求",
            "required": false,
            "schema": {
              "originalRef": "短信验证码登录请求",
              "$ref": "#/definitions/短信验证码登录请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户登录响应»",
              "$ref": "#/definitions/统一响应结果«用户登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户登录响应»",
              "$ref": "#/definitions/统一响应结果«用户登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/logout": {
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "用户登出",
        "description": "清除当前用户的登录状态并使Token失效。需要小程序用户认证。",
        "operationId": "logoutUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/profile": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "获取用户信息",
        "description": "获取当前登录用户的个人资料，包括昵称、头像、手机号（脱敏）、实名信息等。手机号返回脱敏格式（如138****0000），证件号同样脱敏处理。需要小程序用户认证（Token中的userId）。\n\n**关联字典**：\n- id_card_type（证件类型）：ID_CARD=身份证, PASSPORT=护照\n- gender（性别）：0=女, 1=男\n",
        "operationId": "getProfileUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户信息VO»",
              "$ref": "#/definitions/统一响应结果«用户信息VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户信息VO»",
              "$ref": "#/definitions/统一响应结果«用户信息VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "小程序接口"
        ],
        "summary": "更新用户信息",
        "description": "更新当前用户的个人资料。首次登录补充信息时realName/idCardType/idCardNo为必填（使用ProfileCompletion验证组）。如果传入身份证号，后端自动解析性别和出生日期。更新手机号后会自动绑定匹配的待绑定订单。需要小程序用户认证。\n\n**关联字典**：\n- id_card_type（证件类型）：ID_CARD=身份证, PASSPORT=护照（请求参数idCardType）\n- gender（性别）：0=女, 1=男\n",
        "operationId": "updateProfileUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "updateRequest",
            "description": "更新用户信息请求",
            "required": false,
            "schema": {
              "originalRef": "更新用户资料请求",
              "$ref": "#/definitions/更新用户资料请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户信息VO»",
              "$ref": "#/definitions/统一响应结果«用户信息VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«用户信息VO»",
              "$ref": "#/definitions/统一响应结果«用户信息VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/sms/send": {
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "发送短信验证码",
        "description": "向指定手机号发送6位数字短信验证码，用于小程序手机号登录。同一手机号60秒内不可重复发送，每日最多发送10次。验证码有效期5分钟。无需认证即可调用。",
        "operationId": "sendSmsCodeUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "发送短信验证码请求",
            "required": false,
            "schema": {
              "originalRef": "发送短信验证码请求",
              "$ref": "#/definitions/发送短信验证码请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/traveler": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "出行人列表",
        "description": "获取当前用户的所有出行人列表。如果用户已完成实名认证（realName不为空），列表首项会自动注入一个'本人'虚拟出行人（travelerId=0）。默认出行人排在前面，其余按创建时间排序。需要小程序用户认证。\n\n**关联字典**：\n- gender（性别）：返回字段gender\n- id_card_type（证件类型）：返回字段idCardType\n- traveler_type（出行人类型）：返回字段travelerType",
        "operationId": "listTravelersUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«Traveler»»",
              "$ref": "#/definitions/统一响应结果«List«Traveler»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«Traveler»»",
              "$ref": "#/definitions/统一响应结果«List«Traveler»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "小程序接口"
        ],
        "summary": "新增出行人",
        "description": "为当前用户添加一位出行人信息，用于下单时选择。出行人类型（成人/儿童/婴儿）根据出生日期自动判断，无需手动传入。如果传入身份证号，后端自动校验格式并解析性别。每个用户最多可添加20位出行人。需要小程序用户认证。\n\n**关联字典**：\n- gender（性别）：请求/返回字段gender（0=女, 1=男）\n- id_card_type（证件类型）：请求/返回字段idCardType（ID_CARD=身份证, PASSPORT=护照等）\n- traveler_type（出行人类型）：返回字段travelerType（ADULT=成人, CHILD=儿童, INFANT=婴儿，自动计算）",
        "operationId": "addTravelerUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "travelerRequest",
            "description": "出行人信息",
            "required": false,
            "schema": {
              "originalRef": "出行人请求",
              "$ref": "#/definitions/出行人请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Traveler»",
              "$ref": "#/definitions/统一响应结果«Traveler»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Traveler»",
              "$ref": "#/definitions/统一响应结果«Traveler»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/traveler/{travelerId}": {
      "get": {
        "tags": [
          "小程序接口"
        ],
        "summary": "出行人详情",
        "description": "获取指定出行人的详细信息。\n\n**关联字典**：\n- gender（性别）：返回字段gender\n- id_card_type（证件类型）：返回字段idCardType\n- traveler_type（出行人类型）：返回字段travelerType",
        "operationId": "getTravelerUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "travelerId",
            "in": "path",
            "description": "出行人ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Traveler»",
              "$ref": "#/definitions/统一响应结果«Traveler»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Traveler»",
              "$ref": "#/definitions/统一响应结果«Traveler»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "小程序接口"
        ],
        "summary": "更新出行人",
        "description": "更新指定出行人的信息。\n\n**关联字典**：\n- gender（性别）：请求/返回字段gender\n- id_card_type（证件类型）：请求/返回字段idCardType\n- traveler_type（出行人类型）：返回字段travelerType（自动计算）",
        "operationId": "updateTravelerUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "travelerId",
            "in": "path",
            "description": "出行人ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "travelerRequest",
            "description": "出行人信息",
            "required": false,
            "schema": {
              "originalRef": "出行人请求",
              "$ref": "#/definitions/出行人请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Traveler»",
              "$ref": "#/definitions/统一响应结果«Traveler»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Traveler»",
              "$ref": "#/definitions/统一响应结果«Traveler»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "小程序接口"
        ],
        "summary": "删除出行人",
        "description": "删除指定的出行人记录（软删除）。\n\n**权限**：需要小程序用户认证。\n**注意**：如果该出行人已关联到未完成的订单，删除不影响订单中的出行人快照数据。",
        "operationId": "deleteTravelerUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "travelerId",
            "in": "path",
            "description": "出行人ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/user/traveler/{travelerId}/default": {
      "put": {
        "tags": [
          "小程序接口"
        ],
        "summary": "设为默认出行人",
        "description": "将指定出行人设为默认。每个用户只能有一个默认出行人，设置新的默认会自动取消原来的默认。默认出行人在下单时会被自动选中。需要小程序用户认证。",
        "operationId": "setDefaultUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "travelerId",
            "in": "path",
            "description": "出行人ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/user": {
      "get": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "管理员列表",
        "description": "分页查询管理员列表，支持按角色、状态、企微绑定状态、关键词筛选。keyword支持模糊匹配用户名和企业微信名称。status取值：ACTIVE=正常 LOCKED=已锁定 DISABLED=已禁用。wechatBound：true=已绑定企业微信 false=未绑定。需要管理员认证。\n\n**关联字典**：\n- admin_status（管理员状态）：ACTIVE=启用, LOCKED=锁定, DISABLED=禁用（筛选条件+列表展示）\n",
        "operationId": "listAdminsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "关键词（模糊匹配用户名/企业微信名称）",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "roleId",
            "in": "query",
            "description": "角色ID",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "wechatBound",
            "in": "query",
            "description": "是否绑定企业微信: true=已绑定, false=未绑定",
            "required": false,
            "type": "boolean",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«AdminUser»»",
              "$ref": "#/definitions/统一响应结果«分页结果«AdminUser»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«AdminUser»»",
              "$ref": "#/definitions/统一响应结果«分页结果«AdminUser»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "创建管理员",
        "description": "创建新的后台管理员账号。默认密码为Admin@123456，管理员首次登录后建议修改密码。可通过roleIds分配多个角色，也兼容旧的单角色roleId参数。需要SUPER_ADMIN或ADMIN角色。\n\n**关联字典**：\n- admin_status（管理员状态）：ACTIVE=启用, LOCKED=锁定, DISABLED=禁用\n",
        "operationId": "createAdminUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "创建管理员请求",
            "required": false,
            "schema": {
              "originalRef": "创建管理员请求",
              "$ref": "#/definitions/创建管理员请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«AdminUser»",
              "$ref": "#/definitions/统一响应结果«AdminUser»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«AdminUser»",
              "$ref": "#/definitions/统一响应结果«AdminUser»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/user/designers": {
      "get": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "全部定制师（不分页）",
        "description": "返回所有已上线的定制师列表，不分页。用于订单指派定制师、下拉选择等场景。\n返回定制师ID、姓名、头像、认证等级等基本信息。",
        "operationId": "listAllDesignersUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«旅行设计师VO»»",
              "$ref": "#/definitions/统一响应结果«List«旅行设计师VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«旅行设计师VO»»",
              "$ref": "#/definitions/统一响应结果«List«旅行设计师VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/user/{adminId}": {
      "get": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "获取管理员详情",
        "description": "获取指定管理员的完整信息。\n\n**关联字典**：\n- admin_status（管理员状态）：ACTIVE=启用, LOCKED=锁定, DISABLED=禁用\n",
        "operationId": "getAdminUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "path",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«AdminUser»",
              "$ref": "#/definitions/统一响应结果«AdminUser»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«AdminUser»",
              "$ref": "#/definitions/统一响应结果«AdminUser»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "更新管理员",
        "description": "更新管理员信息，包括用户名、状态、角色分配等。\n\n**关联字典**：\n- admin_status（管理员状态）：ACTIVE=启用, LOCKED=锁定, DISABLED=禁用\n",
        "operationId": "updateAdminUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "path",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "更新管理员请求",
            "required": false,
            "schema": {
              "originalRef": "更新管理员请求",
              "$ref": "#/definitions/更新管理员请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«AdminUser»",
              "$ref": "#/definitions/统一响应结果«AdminUser»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«AdminUser»",
              "$ref": "#/definitions/统一响应结果«AdminUser»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "删除管理员",
        "description": "删除指定管理员账号（软删除）。不能删除自己的账号，不能删除SUPER_ADMIN角色的账号（除非操作者也是SUPER_ADMIN）。删除后该管理员的登录状态自动失效。需要SUPER_ADMIN或ADMIN角色。",
        "operationId": "deleteAdminUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "path",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/user/{adminId}/reset-password": {
      "post": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "重置密码",
        "description": "将指定管理员的密码重置为默认密码（Admin@123456）。用于管理员忘记密码时由上级管理员操作重置。重置后管理员可用默认密码登录，建议立即修改。需要SUPER_ADMIN或ADMIN角色。",
        "operationId": "resetPasswordUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "path",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/user/{adminId}/unlock": {
      "post": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "解锁管理员",
        "description": "解锁因登录失败次数过多而被锁定的管理员账号。管理员连续5次登录失败后账号自动锁定30分钟，此接口可立即解锁。需要SUPER_ADMIN或ADMIN角色。",
        "operationId": "unlockAdminUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "path",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/user/{adminId}/wechat-binding": {
      "put": {
        "tags": [
          "管理员管理接口"
        ],
        "summary": "修改企业微信绑定（支持换绑）",
        "description": "为管理员绑定或更换企业微信账号。绑定后管理员可通过企业微信扫码登录，并可接收审批通知。如果目标企微ID已被其他管理员绑定，需设置forceRebind=true强制换绑。需要管理员认证。",
        "operationId": "updateWechatBindingUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "path",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "body",
            "description": "企业微信绑定信息",
            "required": false,
            "schema": {
              "originalRef": "企业微信绑定请求",
              "$ref": "#/definitions/企业微信绑定请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/banner": {
      "get": {
        "tags": [
          "Banner管理接口"
        ],
        "summary": "Banner列表",
        "description": "分页查询Banner列表，支持按关键词和状态筛选。\n\n**关联字典**：\n- common_status（通用状态）：请求参数status和返回字段status（0=禁用, 1=启用）",
        "operationId": "listBannersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Banner VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Banner VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Banner VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Banner VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "Banner管理接口"
        ],
        "summary": "创建Banner",
        "description": "创建新的首页轮播图，包括标题、封面图、跳转链接、排序等。\n\n**权限**：需要管理员登录。\n**注意**：创建后默认为启用状态，小程序端将按排序展示。",
        "operationId": "createBannerUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "轮播图创建请求",
            "required": false,
            "schema": {
              "originalRef": "Banner请求",
              "$ref": "#/definitions/Banner请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Banner VO»",
              "$ref": "#/definitions/统一响应结果«Banner VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Banner VO»",
              "$ref": "#/definitions/统一响应结果«Banner VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/banner/{id}": {
      "get": {
        "tags": [
          "Banner管理接口"
        ],
        "summary": "Banner详情",
        "description": "获取指定Banner的详细信息，包括标题、图片、跳转链接、排序等。\n\n**权限**：需要管理员登录。\n\n**关联字典**：\n- common_status（通用状态）：返回字段status（0=禁用, 1=启用）",
        "operationId": "getBannerUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "轮播图ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Banner VO»",
              "$ref": "#/definitions/统一响应结果«Banner VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Banner VO»",
              "$ref": "#/definitions/统一响应结果«Banner VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "Banner管理接口"
        ],
        "summary": "更新Banner",
        "description": "更新指定Banner的标题、封面图、跳转链接、排序、状态等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "updateBannerUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "轮播图ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "轮播图更新请求",
            "required": false,
            "schema": {
              "originalRef": "Banner请求",
              "$ref": "#/definitions/Banner请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Banner VO»",
              "$ref": "#/definitions/统一响应结果«Banner VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Banner VO»",
              "$ref": "#/definitions/统一响应结果«Banner VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "Banner管理接口"
        ],
        "summary": "删除Banner",
        "description": "删除指定的Banner记录（软删除）。\n\n**权限**：需要管理员登录。\n**注意**：删除后小程序首页将不再展示该Banner。",
        "operationId": "deleteBannerUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "轮播图ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/contact": {
      "get": {
        "tags": [
          "联系我们管理接口"
        ],
        "summary": "联系方式列表",
        "description": "分页查询联系方式列表，支持按关键词和状态筛选。\n\n**关联字典**：\n- contact_channel_type（联系渠道类型）：返回字段channelType（PHONE=电话, WECHAT=微信, EMAIL=邮箱等）\n- common_status（通用状态）：请求参数status和返回字段status",
        "operationId": "listContactsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«联系我们 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«联系我们 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«联系我们 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«联系我们 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "联系我们管理接口"
        ],
        "summary": "创建联系方式",
        "description": "新增一条联系方式记录。\n\n**关联字典**：\n- contact_channel_type（联系渠道类型）：请求字段channelType",
        "operationId": "createContactUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "联系方式创建请求",
            "required": false,
            "schema": {
              "originalRef": "联系我们请求",
              "$ref": "#/definitions/联系我们请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«联系我们 VO»",
              "$ref": "#/definitions/统一响应结果«联系我们 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«联系我们 VO»",
              "$ref": "#/definitions/统一响应结果«联系我们 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/contact/{id}": {
      "get": {
        "tags": [
          "联系我们管理接口"
        ],
        "summary": "联系方式详情",
        "description": "获取指定联系方式的详细信息。\n\n**关联字典**：\n- contact_channel_type（联系渠道类型）：返回字段channelType\n- common_status（通用状态）：返回字段status",
        "operationId": "getContactUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "联系方式ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«联系我们 VO»",
              "$ref": "#/definitions/统一响应结果«联系我们 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«联系我们 VO»",
              "$ref": "#/definitions/统一响应结果«联系我们 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "联系我们管理接口"
        ],
        "summary": "更新联系方式",
        "description": "更新指定联系方式记录。\n\n**关联字典**：\n- contact_channel_type（联系渠道类型）：请求字段channelType",
        "operationId": "updateContactUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "联系方式ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "联系方式更新请求",
            "required": false,
            "schema": {
              "originalRef": "联系我们请求",
              "$ref": "#/definitions/联系我们请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«联系我们 VO»",
              "$ref": "#/definitions/统一响应结果«联系我们 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«联系我们 VO»",
              "$ref": "#/definitions/统一响应结果«联系我们 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "联系我们管理接口"
        ],
        "summary": "删除联系方式",
        "description": "删除指定的联系方式记录（软删除）。\n\n**权限**：需要管理员登录。\n**注意**：删除后小程序端将不再展示该联系方式。",
        "operationId": "deleteContactUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "联系方式ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/explore/category": {
      "get": {
        "tags": [
          "探索分类管理接口"
        ],
        "summary": "探索分类列表",
        "description": "分页查询探索分类列表，支持按关键词和状态筛选。\n\n**关联字典**：\n- common_status（通用状态）：请求参数status和返回字段status（0=禁用, 1=启用）",
        "operationId": "listCategoriesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«探索分类 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«探索分类 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«探索分类 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«探索分类 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "探索分类管理接口"
        ],
        "summary": "创建探索分类",
        "description": "创建新的探索分类，用于小程序探索页面的分类展示。\n可关联多个景区资源，设置封面图和描述文字。\n\n**权限**：需要管理员登录。",
        "operationId": "createCategoryUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "分类创建请求",
            "required": false,
            "schema": {
              "originalRef": "探索分类请求",
              "$ref": "#/definitions/探索分类请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/explore/category/{id}": {
      "get": {
        "tags": [
          "探索分类管理接口"
        ],
        "summary": "探索分类详情",
        "description": "获取指定探索分类的详细信息，包括标题、封面图、描述、关联的景区资源列表等。\n\n**权限**：需要管理员登录。\n\n**关联字典**：\n- common_status（通用状态）：返回字段status（0=禁用, 1=启用）",
        "operationId": "getCategoryUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "分类ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«探索分类详情 VO»",
              "$ref": "#/definitions/统一响应结果«探索分类详情 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«探索分类详情 VO»",
              "$ref": "#/definitions/统一响应结果«探索分类详情 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "探索分类管理接口"
        ],
        "summary": "更新探索分类",
        "description": "更新指定探索分类的标题、封面图、描述、关联资源、状态等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "updateCategoryUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "分类ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "分类更新请求",
            "required": false,
            "schema": {
              "originalRef": "探索分类请求",
              "$ref": "#/definitions/探索分类请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "探索分类管理接口"
        ],
        "summary": "删除探索分类",
        "description": "删除指定的探索分类（软删除），同时清除关联的资源绑定关系。\n\n**权限**：需要管理员登录。\n**注意**：删除后小程序探索页面将不再展示该分类。",
        "operationId": "deleteCategoryUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "分类ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/frontend-config": {
      "get": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "配置列表",
        "description": "分页查询前端配置列表，支持按关键词、分组和状态筛选。\n\n**关联字典**：\n- common_status（通用状态）：请求参数status和返回字段status（0=禁用, 1=启用）",
        "operationId": "listConfigsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "configGroup",
            "in": "query",
            "description": "配置分组",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«前端配置 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«前端配置 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«前端配置 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«前端配置 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "创建配置",
        "description": "创建新的前端配置项，用于控制前端页面的展示和行为。\n\n**权限**：需要管理员登录。\n**注意**：configKey 必须全局唯一，不能与已有配置重复。可通过 sensitive 字段标记是否为敏感配置（敏感配置不会通过公开接口暴露给小程序）。",
        "operationId": "createConfigUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "配置创建请求",
            "required": false,
            "schema": {
              "originalRef": "前端配置请求",
              "$ref": "#/definitions/前端配置请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/frontend-config/all": {
      "get": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "配置列表（不分页）",
        "description": "获取所有前端配置项的完整列表（不分页），支持按分组和状态筛选。\n适用于需要一次性加载全部配置的场景。\n\n**权限**：需要管理员登录。",
        "operationId": "listAllConfigsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "configGroup",
            "in": "query",
            "description": "配置分组",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«前端配置 VO»»",
              "$ref": "#/definitions/统一响应结果«List«前端配置 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«前端配置 VO»»",
              "$ref": "#/definitions/统一响应结果«List«前端配置 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/frontend-config/by-key/{key}": {
      "get": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "按key查询配置",
        "description": "根据配置键（configKey）获取指定的前端配置项。\nconfigKey为全局唯一标识，如 app_name、primary_color 等。\n\n**权限**：需要管理员登录。",
        "operationId": "getConfigByKeyUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "key",
            "in": "path",
            "description": "配置键",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/frontend-config/groups": {
      "get": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "获取所有分组",
        "description": "获取前端配置中所有已使用的分组名称列表。\n用于配置管理页面的分组筛选下拉框。\n\n**权限**：需要管理员登录。",
        "operationId": "listGroupsUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«string»»",
              "$ref": "#/definitions/统一响应结果«List«string»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«string»»",
              "$ref": "#/definitions/统一响应结果«List«string»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/frontend-config/{id}": {
      "get": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "配置详情",
        "description": "根据配置ID获取指定前端配置项的详细信息，包括key、value、分组、描述等。\n\n**权限**：需要管理员登录。",
        "operationId": "getConfigUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "配置ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "更新配置",
        "description": "更新指定前端配置项的值、分组、描述、状态等信息。\n\n**权限**：需要管理员登录。\n**注意**：修改后前端会实时使用新值（如有缓存需等待刷新）。",
        "operationId": "updateConfigUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "配置ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "配置更新请求",
            "required": false,
            "schema": {
              "originalRef": "前端配置请求",
              "$ref": "#/definitions/前端配置请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«前端配置 VO»",
              "$ref": "#/definitions/统一响应结果«前端配置 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "前端配置管理接口"
        ],
        "summary": "删除配置",
        "description": "删除指定的前端配置项（软删除）。\n\n**权限**：需要管理员登录。\n**注意**：删除后前端将无法获取该配置，可能影响页面展示，请确认无引用后再删除。",
        "operationId": "deleteConfigUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "配置ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/faq/categories": {
      "get": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "分类列表",
        "description": "获取所有FAQ分类的完整列表（不分页）。\n每个分类包含名称、排序号、状态等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "listCategoriesUsingGET_1",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«常见问题分类VO»»",
              "$ref": "#/definitions/统一响应结果«List«常见问题分类VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«常见问题分类VO»»",
              "$ref": "#/definitions/统一响应结果«List«常见问题分类VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "创建分类",
        "description": "创建新的FAQ分类，用于对常见问题进行归类。\n\n**权限**：需要管理员登录。\n**注意**：分类名称不能重复。",
        "operationId": "createCategoryUsingPOST_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "request",
            "required": true,
            "schema": {
              "originalRef": "常见问题分类请求",
              "$ref": "#/definitions/常见问题分类请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题分类VO»",
              "$ref": "#/definitions/统一响应结果«常见问题分类VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题分类VO»",
              "$ref": "#/definitions/统一响应结果«常见问题分类VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/faq/categories/{id}": {
      "put": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "更新分类",
        "description": "更新指定FAQ分类的名称、排序号、状态等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "updateCategoryUsingPUT_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "分类ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "request",
            "required": true,
            "schema": {
              "originalRef": "常见问题分类请求",
              "$ref": "#/definitions/常见问题分类请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题分类VO»",
              "$ref": "#/definitions/统一响应结果«常见问题分类VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题分类VO»",
              "$ref": "#/definitions/统一响应结果«常见问题分类VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "删除分类",
        "description": "删除指定的FAQ分类（软删除）。\n\n**权限**：需要管理员登录。\n**注意**：删除分类不会删除其下的条目，但条目将变为无分类状态。",
        "operationId": "deleteCategoryUsingDELETE_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "分类ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/faq/items": {
      "get": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "条目列表",
        "description": "查询FAQ条目列表，支持按分类ID筛选。\n返回问题标题、回答内容（富文本）、排序号等。\n\n**权限**：需要管理员登录。",
        "operationId": "listItemsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "categoryId",
            "in": "query",
            "description": "分类ID（可选）",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«常见问题条目VO»»",
              "$ref": "#/definitions/统一响应结果«List«常见问题条目VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«常见问题条目VO»»",
              "$ref": "#/definitions/统一响应结果«List«常见问题条目VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "创建条目",
        "description": "创建一条常见问题，包含问题标题和回答（支持富文本）。\n\n**权限**：需要管理员登录。\n**注意**：需指定所属分类ID，排序号越小越靠前。",
        "operationId": "createItemUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "request",
            "required": true,
            "schema": {
              "originalRef": "常见问题条目请求",
              "$ref": "#/definitions/常见问题条目请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题条目VO»",
              "$ref": "#/definitions/统一响应结果«常见问题条目VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题条目VO»",
              "$ref": "#/definitions/统一响应结果«常见问题条目VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/faq/items/{id}": {
      "put": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "更新条目",
        "description": "更新指定FAQ条目的问题标题、回答内容、排序号等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "updateItemUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "条目ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "request",
            "required": true,
            "schema": {
              "originalRef": "常见问题条目请求",
              "$ref": "#/definitions/常见问题条目请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题条目VO»",
              "$ref": "#/definitions/统一响应结果«常见问题条目VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«常见问题条目VO»",
              "$ref": "#/definitions/统一响应结果«常见问题条目VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "常见问题管理接口"
        ],
        "summary": "删除条目",
        "description": "删除指定的FAQ条目（软删除）。\n\n**权限**：需要管理员登录。\n**注意**：删除后小程序FAQ页面将不再展示该条目。",
        "operationId": "deleteItemUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "条目ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/agreement": {
      "get": {
        "tags": [
          "用户协议管理接口"
        ],
        "summary": "协议列表",
        "description": "分页查询用户协议列表，支持按关键词和状态筛选。\n\n**关联字典**：\n- common_status（通用状态）：请求参数status和返回字段status（0=禁用, 1=启用）",
        "operationId": "listAgreementsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«协议 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«协议 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«协议 VO»»",
              "$ref": "#/definitions/统一响应结果«分页结果«协议 VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "用户协议管理接口"
        ],
        "summary": "新增协议",
        "description": "创建新的用户协议，如用户服务协议、隐私政策等。\n\n**权限**：需要管理员登录。\n**注意**：协议类型（type）需唯一，同一类型不能重复创建。内容支持富文本。",
        "operationId": "createAgreementUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "request",
            "required": true,
            "schema": {
              "originalRef": "协议请求",
              "$ref": "#/definitions/协议请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«协议 VO»",
              "$ref": "#/definitions/统一响应结果«协议 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«协议 VO»",
              "$ref": "#/definitions/统一响应结果«协议 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/agreement/{id}": {
      "get": {
        "tags": [
          "用户协议管理接口"
        ],
        "summary": "协议详情",
        "description": "获取指定用户协议的详细信息，包括标题、内容（富文本）、版本号等。\n\n**权限**：需要管理员登录。\n\n**关联字典**：\n- common_status（通用状态）：返回字段status（0=禁用, 1=启用）",
        "operationId": "getAgreementUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "协议ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«协议 VO»",
              "$ref": "#/definitions/统一响应结果«协议 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«协议 VO»",
              "$ref": "#/definitions/统一响应结果«协议 VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "用户协议管理接口"
        ],
        "summary": "编辑协议",
        "description": "更新指定用户协议的标题、内容、状态等信息。\n\n**权限**：需要管理员登录。\n**注意**：修改后小程序端会实时展示新内容。",
        "operationId": "updateAgreementUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "协议ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "request",
            "required": true,
            "schema": {
              "originalRef": "协议请求",
              "$ref": "#/definitions/协议请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«协议 VO»",
              "$ref": "#/definitions/统一响应结果«协议 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«协议 VO»",
              "$ref": "#/definitions/统一响应结果«协议 VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "用户协议管理接口"
        ],
        "summary": "删除协议",
        "description": "删除指定的用户协议记录（软删除）。\n\n**权限**：需要管理员登录。\n**注意**：删除后小程序端将无法查看该协议。",
        "operationId": "deleteAgreementUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "协议ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/2fa/callback": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "2FA企微扫码回调",
        "description": "企业微信OAuth回调地址，用户扫码授权后微信服务器回调此接口。此接口由微信服务器调用，非前端直接调用。回调成功后将state对应的会话标记为已扫码，前端轮询 /2fa/check 即可获取结果。返回HTML页面（成功/失败提示），不返回JSON。",
        "operationId": "handle2FaCallbackUsingGET",
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "授权码",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "state",
            "in": "query",
            "description": "会话状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/2fa/check": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "查询2FA扫码状态",
        "description": "前端轮询此接口检查2FA扫码验证是否完成。返回status字段：PENDING=等待扫码，SCANNED=已完成验证（附带token和用户信息）。建议轮询间隔2秒，超过5分钟未扫码会话自动失效。无需认证即可调用（登录流程中使用）。",
        "operationId": "check2FaStatusUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "description": "会话状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/2fa/confirm": {
      "post": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "手动确认扫码（内网穿透环境workaround，默认关闭）",
        "description": "在内网穿透环境下，企微回调可能无法正常到达，此接口作为手动替代方案。\n需在Nacos配置中开启 auth.2fa-confirm-enabled=true 才可使用。\n\n**权限**：无需认证（登录流程中使用）。\n**注意**：生产环境应保持关闭，仅限开发/测试时使用。",
        "operationId": "confirm2FaScanUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "query",
            "description": "管理员ID",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "state",
            "in": "query",
            "description": "会话状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/2fa/qrcode": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "生成2FA扫码会话",
        "description": "生成企业微信扫码二维码的会话信息，用于新设备二次验证。返回包含qrcodeUrl（二维码链接）和state（会话标识）。前端展示二维码后通过轮询 /2fa/check 接口检查扫码状态。无需认证即可调用（登录流程中使用）。",
        "operationId": "generate2FaQrcodeUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "query",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/avatar": {
      "put": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "更新头像",
        "description": "管理员更新自己的头像。需先通过文件服务上传图片获取OSS URL和fileId，再调用此接口绑定。旧头像的文件引用会自动解绑。需要管理员认证。",
        "operationId": "updateAvatarUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "头像更新请求",
            "required": false,
            "schema": {
              "originalRef": "头像更新请求",
              "$ref": "#/definitions/头像更新请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/info": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "获取当前管理员信息",
        "description": "获取当前登录管理员的完整信息，包括用户名、头像、角色列表、当前角色、菜单权限等。前端页面初始化时调用此接口获取用户信息和权限数据。需要管理员认证。",
        "operationId": "getAdminInfoUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/login": {
      "post": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "管理员登录",
        "description": "管理员通过用户名+密码登录后台管理系统。首次在新设备登录时需要进行企业微信扫码二次验证（2FA），返回needTwoFa=true。登录失败5次后账号将被锁定30分钟。无需认证即可调用。",
        "operationId": "loginUsingPOST_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "管理员登录请求",
            "required": false,
            "schema": {
              "originalRef": "管理员登录请求",
              "$ref": "#/definitions/管理员登录请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/logout": {
      "post": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "管理员登出",
        "description": "清除管理员的登录状态并使当前Token失效。前端应在登出后清除本地存储的Token和用户信息。需要管理员认证。",
        "operationId": "logoutUsingPOST_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/password": {
      "put": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "修改密码",
        "description": "管理员修改自己的登录密码。需验证旧密码正确后才能设置新密码，新密码须满足复杂度要求（8-128位，含大小写字母和数字）。修改成功后当前Token仍然有效，无需重新登录。需要管理员认证（Token中的adminId）。",
        "operationId": "changePasswordUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "changeRequest",
            "description": "修改密码请求",
            "required": false,
            "schema": {
              "originalRef": "修改密码请求",
              "$ref": "#/definitions/修改密码请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/switch-role": {
      "post": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "切换当前角色",
        "description": "多角色管理员切换当前活跃角色。切换后返回新的Token和角色对应的菜单权限，前端需更新本地Token并刷新菜单。只能切换到该管理员已分配的角色，否则报错。需要管理员认证。",
        "operationId": "switchRoleUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "角色切换请求",
            "required": false,
            "schema": {
              "originalRef": "角色切换请求",
              "$ref": "#/definitions/角色切换请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/wechat-qr": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "生成企业微信扫码登录会话",
        "description": "生成企业微信扫码直接登录的会话信息（非2FA验证，而是扫码替代密码登录）。返回包含qrcodeUrl和state。前端展示二维码后通过轮询 /wechat-qr/status 检查登录状态。无需认证即可调用。",
        "operationId": "generateWechatLoginQrUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/wechat-qr/callback": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "企业微信扫码登录回调",
        "description": "企业微信OAuth回调地址，扫码登录授权后微信服务器回调此接口。此接口由微信服务器调用，非前端直接调用。回调后标记会话为已扫码，前端通过轮询 /wechat-qr/status 获取登录结果。返回HTML页面，不返回JSON。",
        "operationId": "handleWechatLoginCallbackUsingGET",
        "produces": [
          "text/html"
        ],
        "parameters": [
          {
            "name": "code",
            "in": "query",
            "description": "授权码",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "state",
            "in": "query",
            "description": "会话状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "type": "string"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/wechat-qr/status": {
      "get": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "查询企业微信扫码登录状态",
        "description": "前端轮询此接口检查扫码登录是否完成。返回status字段：PENDING=等待扫码，SCANNED=已扫码登录成功（附带token和用户信息）。建议轮询间隔2秒，超过5分钟未扫码会话自动失效。无需认证即可调用。",
        "operationId": "checkWechatLoginStatusUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "state",
            "in": "query",
            "description": "会话状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/auth/wechat/verify-2fa": {
      "post": {
        "tags": [
          "管理员认证接口"
        ],
        "summary": "2FA验证",
        "description": "新设备登录时的企业微信二次验证。管理员登录返回needTwoFa=true后，前端调用此接口提交验证码完成登录。验证通过后设备将被标记为可信设备，后续登录不再需要2FA。无需认证即可调用。",
        "operationId": "verifyTwoFaUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "adminId",
            "in": "query",
            "description": "管理员ID",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          },
          {
            "in": "body",
            "name": "request",
            "description": "2FA验证请求",
            "required": false,
            "schema": {
              "originalRef": "二次验证请求",
              "$ref": "#/definitions/二次验证请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«管理员登录响应»",
              "$ref": "#/definitions/统一响应结果«管理员登录响应»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/role": {
      "get": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "分页查询角色",
        "description": "分页查询系统角色列表，支持按状态筛选。\n\n**关联字典**：\n- common_status（通用状态）：ACTIVE=启用, DISABLED=禁用（筛选条件+列表展示）\n",
        "operationId": "listRolesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«SysRole»»",
              "$ref": "#/definitions/统一响应结果«分页结果«SysRole»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«SysRole»»",
              "$ref": "#/definitions/统一响应结果«分页结果«SysRole»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "创建角色",
        "description": "创建新的系统角色。角色标识（roleKey）全局唯一，创建后不可修改，用于代码中的权限判断。创建后需通过[分配菜单权限]接口为角色授权菜单。需要SUPER_ADMIN角色。",
        "operationId": "createRoleUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "创建角色请求",
            "required": false,
            "schema": {
              "originalRef": "创建角色请求",
              "$ref": "#/definitions/创建角色请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysRole»",
              "$ref": "#/definitions/统一响应结果«SysRole»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysRole»",
              "$ref": "#/definitions/统一响应结果«SysRole»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/role/all": {
      "get": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "获取所有角色(下拉)",
        "description": "获取所有状态正常的角色列表，用于下拉选择框。不分页，返回全部角色。创建管理员、筛选管理员列表时使用。需要管理员认证。",
        "operationId": "getAllRolesUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysRole»»",
              "$ref": "#/definitions/统一响应结果«List«SysRole»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysRole»»",
              "$ref": "#/definitions/统一响应结果«List«SysRole»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/role/{roleId}": {
      "get": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "获取角色详情(含菜单ID)",
        "description": "获取角色基本信息及其已分配的菜单ID列表。返回role对象和menuIds数组，用于角色编辑页面回显已勾选的菜单。需要管理员认证。",
        "operationId": "getRoleDetailUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "description": "角色ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "更新角色",
        "description": "更新角色名称、状态等信息。角色标识（roleKey）不可修改。\n\n**关联字典**：\n- common_status（通用状态）：ACTIVE=启用, DISABLED=禁用\n",
        "operationId": "updateRoleUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "更新角色请求",
            "required": false,
            "schema": {
              "originalRef": "更新角色请求",
              "$ref": "#/definitions/更新角色请求"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "description": "角色ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysRole»",
              "$ref": "#/definitions/统一响应结果«SysRole»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysRole»",
              "$ref": "#/definitions/统一响应结果«SysRole»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "删除角色",
        "description": "删除指定角色（软删除）。如果该角色下还有关联的管理员，将无法删除，需先解除绑定关系。内置角色（SUPER_ADMIN等）不可删除。需要SUPER_ADMIN角色。",
        "operationId": "deleteRoleUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "description": "角色ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/role/{roleId}/menus": {
      "put": {
        "tags": [
          "角色管理接口"
        ],
        "summary": "分配菜单权限",
        "description": "为指定角色分配菜单权限（全量覆盖模式）。传入的menuIds将完全替换该角色原有的菜单权限。分配后该角色的所有在线管理员下次请求 /admin/menu/my 时会获取到新的菜单树。注意：需同步清除Redis中的菜单缓存，否则前端拿到的是旧菜单。需要SUPER_ADMIN角色。",
        "operationId": "assignMenusUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "分配菜单请求",
            "required": false,
            "schema": {
              "originalRef": "分配菜单权限请求",
              "$ref": "#/definitions/分配菜单权限请求"
            }
          },
          {
            "name": "roleId",
            "in": "path",
            "description": "角色ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/menu": {
      "post": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "创建菜单",
        "description": "创建新的菜单/目录/按钮。menuType取值：D=目录（含子菜单） M=页面菜单 B=操作按钮。目录和菜单需设置path路由路径，菜单还需设置component组件路径。按钮类型需设置permissionCode权限标识（如system:user:add）。需要SUPER_ADMIN角色。\n\n**关联字典**：\n- menu_type（菜单类型）：请求/返回字段menuType（D=目录, M=菜单, B=按钮）\n- common_status（通用状态）：返回字段status",
        "operationId": "createMenuUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "创建菜单请求",
            "required": false,
            "schema": {
              "originalRef": "创建菜单请求",
              "$ref": "#/definitions/创建菜单请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysMenu»",
              "$ref": "#/definitions/统一响应结果«SysMenu»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysMenu»",
              "$ref": "#/definitions/统一响应结果«SysMenu»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/menu/my": {
      "get": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "获取当前管理员菜单",
        "description": "获取当前登录管理员的菜单树（基于其当前角色的权限）。SUPER_ADMIN角色返回完整菜单树，其他角色返回已授权的菜单子集。前端登录后调用此接口动态生成路由和侧边栏菜单。需要管理员认证。",
        "operationId": "getMyMenusUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysMenu»»",
              "$ref": "#/definitions/统一响应结果«List«SysMenu»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysMenu»»",
              "$ref": "#/definitions/统一响应结果«List«SysMenu»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/menu/tree": {
      "get": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "获取完整菜单树",
        "description": "获取系统所有菜单的完整树形结构。用于角色权限配置页面展示完整的菜单树供勾选。仅SUPER_ADMIN可查看完整菜单树。需要管理员认证。\n\n**关联字典**：\n- menu_type（菜单类型）：返回字段menuType\n- common_status（通用状态）：返回字段status",
        "operationId": "getMenuTreeUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysMenu»»",
              "$ref": "#/definitions/统一响应结果«List«SysMenu»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysMenu»»",
              "$ref": "#/definitions/统一响应结果«List«SysMenu»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/menu/tree/role/{roleId}": {
      "get": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "获取角色菜单树",
        "description": "获取指定角色已分配的菜单树形结构。\n用于角色权限配置页面，展示该角色已拥有的菜单权限。\n\n**权限**：需要管理员登录。",
        "operationId": "getMenuTreeByRoleIdUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "roleId",
            "in": "path",
            "description": "角色ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysMenu»»",
              "$ref": "#/definitions/统一响应结果«List«SysMenu»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysMenu»»",
              "$ref": "#/definitions/统一响应结果«List«SysMenu»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/menu/{menuId}": {
      "get": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "获取菜单详情",
        "description": "获取指定菜单的详细信息，包括名称、路径、组件、图标、排序、权限标识等。\n\n**权限**：需要管理员登录。\n\n**关联字典**：\n- menu_type（菜单类型）：返回字段menuType（D=目录, M=菜单, B=按钮）\n- common_status（通用状态）：返回字段status",
        "operationId": "getMenuUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "menuId",
            "in": "path",
            "description": "菜单ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysMenu»",
              "$ref": "#/definitions/统一响应结果«SysMenu»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysMenu»",
              "$ref": "#/definitions/统一响应结果«SysMenu»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "更新菜单",
        "description": "更新指定菜单的名称、路径、组件、图标、排序、状态等信息。\n\n**权限**：需要SUPER_ADMIN角色。\n**注意**：修改后需清除 Redis 菜单缓存才能生效。\n\n**关联字典**：\n- menu_type（菜单类型）：请求字段menuType（D=目录, M=菜单, B=按钮）\n- common_status（通用状态）：请求字段status",
        "operationId": "updateMenuUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "menuId",
            "in": "path",
            "description": "菜单ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "更新菜单请求",
            "required": false,
            "schema": {
              "originalRef": "更新菜单请求",
              "$ref": "#/definitions/更新菜单请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysMenu»",
              "$ref": "#/definitions/统一响应结果«SysMenu»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysMenu»",
              "$ref": "#/definitions/统一响应结果«SysMenu»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "菜单管理接口"
        ],
        "summary": "删除菜单",
        "description": "删除指定的菜单/目录/按钮（软删除）。\n\n**权限**：需要SUPER_ADMIN角色。\n**注意**：如果该菜单有子菜单，需先删除子菜单才能删除父菜单。删除后需清除 Redis 菜单缓存才能生效。",
        "operationId": "deleteMenuUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "menuId",
            "in": "path",
            "description": "菜单ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/all": {
      "get": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "获取所有字典数据",
        "description": "获取系统全部字典类型及其字典数据，按字典类型分组返回。用于后台管理系统初始化时一次性加载所有下拉选项。返回结果包含dictType编码、dictName名称、dataList数据列表。需要管理员认证。\n\n**字典层级说明**：\n- 字典类型（SysDictType）：一级分类，如 admin_status、order_status、id_card_type 等\n- 字典数据（SysDictData）：二级选项，归属于某个字典类型，如 admin_status 下的 ACTIVE/LOCKED/DISABLED\n- 前端通过 dictType 编码查找对应的 dataList，用 dictValue 匹配实际数据进行翻译展示\n",
        "operationId": "getAllDictUsingGET_1",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«字典VO»»",
              "$ref": "#/definitions/统一响应结果«List«字典VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«字典VO»»",
              "$ref": "#/definitions/统一响应结果«List«字典VO»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/data": {
      "post": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "创建字典数据",
        "description": "在指定字典类型下新增一条字典数据项。dictValue为前端匹配的值（如ACTIVE），dictLabel为前端展示的标签（如'启用'）。支持树形字典数据（通过parentId设置父级）。",
        "operationId": "createDictDataUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "创建字典数据请求",
            "required": false,
            "schema": {
              "originalRef": "创建字典数据请求",
              "$ref": "#/definitions/创建字典数据请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictData»",
              "$ref": "#/definitions/统一响应结果«SysDictData»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictData»",
              "$ref": "#/definitions/统一响应结果«SysDictData»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/data/detail/{dictDataId}": {
      "get": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "根据ID获取字典数据详情",
        "description": "获取单个字典数据项的详细信息，包括dictValue、dictLabel、cssClass等。",
        "operationId": "getDictDataByIdUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "dictDataId",
            "in": "path",
            "description": "字典数据ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictData»",
              "$ref": "#/definitions/统一响应结果«SysDictData»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictData»",
              "$ref": "#/definitions/统一响应结果«SysDictData»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/data/tree/{dictTypeId}": {
      "get": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "按类型查询字典数据（树形结构）",
        "description": "根据字典类型ID查询其下所有字典数据，以树形结构返回（支持父子级字典数据）。用于多级联动下拉框场景（如省市区）。需要管理员认证。",
        "operationId": "getDictDataTreeUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "dictTypeId",
            "in": "path",
            "description": "字典类型ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysDictData»»",
              "$ref": "#/definitions/统一响应结果«List«SysDictData»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysDictData»»",
              "$ref": "#/definitions/统一响应结果«List«SysDictData»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/data/{dictType}": {
      "get": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "按类型查询字典数据",
        "description": "根据字典类型编码（如order_status）查询其下所有字典数据（平铺列表）。用于单层下拉框场景。需要管理员认证。",
        "operationId": "getDictDataByTypeUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "dictType",
            "in": "path",
            "description": "字典类型编码",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysDictData»»",
              "$ref": "#/definitions/统一响应结果«List«SysDictData»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«SysDictData»»",
              "$ref": "#/definitions/统一响应结果«List«SysDictData»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/data/{id}": {
      "put": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "更新字典数据",
        "description": "更新字典数据项的标签、样式类型、排序号等。dictValue建议不修改以免影响已有业务数据。",
        "operationId": "updateDictDataUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "字典数据ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "更新字典数据请求",
            "required": false,
            "schema": {
              "originalRef": "更新字典数据请求",
              "$ref": "#/definitions/更新字典数据请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictData»",
              "$ref": "#/definitions/统一响应结果«SysDictData»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictData»",
              "$ref": "#/definitions/统一响应结果«SysDictData»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "删除字典数据",
        "description": "删除指定字典数据项（软删除）。删除后不影响已引用该字典值的业务数据。",
        "operationId": "deleteDictDataUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "字典数据ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/type": {
      "get": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "分页查询字典类型",
        "description": "分页查询字典类型列表，支持按分类（category）筛选、关键词（keyword）搜索。keyword 同时匹配字典类型编码（dict_type）和字典名称（dict_name），模糊搜索。字典类型是字典数据的上级分组，管理字典类型即管理有哪些可供前端使用的下拉选项组。",
        "operationId": "listDictTypesUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "category",
            "in": "query",
            "description": "字典分类",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词（匹配字典编码或名称）",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«SysDictType»»",
              "$ref": "#/definitions/统一响应结果«分页结果«SysDictType»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«SysDictType»»",
              "$ref": "#/definitions/统一响应结果«分页结果«SysDictType»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "创建字典类型",
        "description": "新建一个字典类型（如：订单状态、证件类型等）。字典类型编码（dictType）全局唯一，创建后不可修改。需要管理员认证，建议仅SUPER_ADMIN/ADMIN角色操作。\n\n**已有字典类型示例**：\n- admin_status（管理员状态）、common_status（通用状态）、login_status（登录状态）\n- order_status（订单状态）、product_status（产品状态）、rating_level（评价等级）\n- id_card_type（证件类型）、gender（性别）、traveler_type（出行人类型）\n- contact_channel_type（联系方式渠道类型）、favorite_resource_type（收藏资源类型）、footprint_resource_type（足迹资源类型）\n",
        "operationId": "createDictTypeUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "创建字典类型请求",
            "required": false,
            "schema": {
              "originalRef": "创建字典类型请求",
              "$ref": "#/definitions/创建字典类型请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictType»",
              "$ref": "#/definitions/统一响应结果«SysDictType»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictType»",
              "$ref": "#/definitions/统一响应结果«SysDictType»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/type/{dictTypeId}": {
      "get": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "根据ID获取字典类型详情",
        "description": "获取单个字典类型的详细信息，包括编码、名称、分类、状态等。",
        "operationId": "getDictTypeByIdUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "dictTypeId",
            "in": "path",
            "description": "字典类型ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictType»",
              "$ref": "#/definitions/统一响应结果«SysDictType»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictType»",
              "$ref": "#/definitions/统一响应结果«SysDictType»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/dict/type/{id}": {
      "put": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "更新字典类型",
        "description": "更新字典类型的名称、分类、备注等信息。字典类型编码（dictType）不可修改。",
        "operationId": "updateDictTypeUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "字典类型ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "更新字典类型请求",
            "required": false,
            "schema": {
              "originalRef": "更新字典类型请求",
              "$ref": "#/definitions/更新字典类型请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictType»",
              "$ref": "#/definitions/统一响应结果«SysDictType»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«SysDictType»",
              "$ref": "#/definitions/统一响应结果«SysDictType»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "字典管理接口"
        ],
        "summary": "删除字典类型",
        "description": "删除字典类型及其下所有字典数据（软删除）。如果该字典类型已被业务引用，删除后不影响已有数据，但新的表单将无法选择该字典值。需要管理员认证。",
        "operationId": "deleteDictTypeUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "description": "字典类型ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/job": {
      "get": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "分页查询定时任务",
        "description": "分页查询定时任务列表。\n\n**关联字典**：\n- job_group（任务分组）：DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步\n- job_misfire_policy（执行策略）：DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发\n- job_status（任务状态）：ACTIVE=启用, PAUSED=已暂停",
        "operationId": "listJobsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«定时任务信息»»",
              "$ref": "#/definitions/统一响应结果«分页结果«定时任务信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«定时任务信息»»",
              "$ref": "#/definitions/统一响应结果«分页结果«定时任务信息»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "post": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "创建定时任务",
        "description": "创建新的定时任务。invokeTarget格式为'Bean名称.方法名'（如wechatSyncService.syncAll），方法必须是无参公开方法。cronExpression为标准6位Cron表达式（秒 分 时 日 月 周）。创建后任务默认为暂停状态（PAUSED），需手动调用[恢复任务]接口启用。\n\n**关联字典**：\n- job_group（任务分组）：DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步\n- job_misfire_policy（执行策略）：DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发\n- job_status（任务状态）：ACTIVE=启用, PAUSED=已暂停\n\n需要SUPER_ADMIN角色。",
        "operationId": "createJobUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "request",
            "description": "创建定时任务请求",
            "required": false,
            "schema": {
              "originalRef": "创建定时任务请求",
              "$ref": "#/definitions/创建定时任务请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定时任务信息»",
              "$ref": "#/definitions/统一响应结果«定时任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定时任务信息»",
              "$ref": "#/definitions/统一响应结果«定时任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/job/{jobId}": {
      "put": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "更新定时任务",
        "description": "更新指定定时任务的名称、Cron表达式、调用目标等信息。\n修改Cron表达式后任务将按新的计划执行。\n\n**关联字典**：\n- job_group（任务分组）：DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步\n- job_misfire_policy（执行策略）：DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发\n\n**权限**：需要SUPER_ADMIN角色。",
        "operationId": "updateJobUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "定时任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "in": "body",
            "name": "request",
            "description": "更新定时任务请求",
            "required": false,
            "schema": {
              "originalRef": "更新定时任务请求",
              "$ref": "#/definitions/更新定时任务请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定时任务信息»",
              "$ref": "#/definitions/统一响应结果«定时任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定时任务信息»",
              "$ref": "#/definitions/统一响应结果«定时任务信息»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "delete": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "删除定时任务",
        "description": "删除指定的定时任务（软删除），同时从调度器中移除该任务。\n\n**权限**：需要SUPER_ADMIN角色。\n**注意**：删除后任务将不再执行，但历史执行日志仍可查看。",
        "operationId": "deleteJobUsingDELETE",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "定时任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "204": {
            "description": "No Content"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/job/{jobId}/logs": {
      "get": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "查询任务日志",
        "description": "分页查询指定定时任务的执行日志，按执行时间倒序排列。日志包含执行状态（成功/失败）、执行耗时、异常信息等。\n\n**关联字典**：job_log_status（日志状态）：SUCCESS=成功, FAIL=失败\n\n需要管理员认证。",
        "operationId": "listJobLogsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "定时任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«定时任务执行日志»»",
              "$ref": "#/definitions/统一响应结果«分页结果«定时任务执行日志»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«定时任务执行日志»»",
              "$ref": "#/definitions/统一响应结果«分页结果«定时任务执行日志»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/job/{jobId}/pause": {
      "post": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "暂停任务",
        "description": "暂停指定的定时任务，任务状态变为PAUSED。暂停后任务不再按Cron计划执行，但可通过[恢复任务]接口重新启用。\n\n**关联字典**：job_status（任务状态）：ACTIVE=启用, PAUSED=已暂停\n\n需要SUPER_ADMIN角色。",
        "operationId": "pauseJobUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "定时任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/job/{jobId}/resume": {
      "post": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "恢复任务",
        "description": "恢复已暂停的定时任务，任务状态变为ACTIVE。恢复后任务按Cron计划继续执行。\n\n**关联字典**：job_status（任务状态）：ACTIVE=启用, PAUSED=已暂停\n\n需要SUPER_ADMIN角色。",
        "operationId": "resumeJobUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "定时任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/job/{jobId}/trigger": {
      "post": {
        "tags": [
          "定时任务接口"
        ],
        "summary": "立即执行一次",
        "description": "立即触发一次定时任务的执行，不影响原有的Cron计划。无论任务当前状态是ACTIVE还是PAUSED，都可以手动触发。执行结果可在任务日志中查看。需要SUPER_ADMIN角色。",
        "operationId": "triggerJobUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "jobId",
            "in": "path",
            "description": "定时任务ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/departments": {
      "get": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "部门列表（部门管理页面）",
        "description": "获取已同步的所有企业微信部门列表（平铺结构），用于部门管理页面展示。\n包含部门ID、名称、上级部门ID、排序等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "listAllDepartmentsUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«WechatDepartment»»",
              "$ref": "#/definitions/统一响应结果«List«WechatDepartment»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«WechatDepartment»»",
              "$ref": "#/definitions/统一响应结果«List«WechatDepartment»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/departments/tree": {
      "get": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "部门树（下拉筛选）",
        "description": "以树形结构返回企业微信部门数据。用于部门筛选下拉框，每个节点包含id/label/children。需要管理员认证。",
        "operationId": "listDepartmentsTreeUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«List«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/sync/all": {
      "post": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "手动同步全部（部门+用户）",
        "description": "一键同步企业微信的部门和用户数据，先同步部门再同步用户。推荐使用此接口而非单独同步，确保部门和用户数据一致性。同步过程为异步执行，接口立即返回成功。需要SUPER_ADMIN角色。",
        "operationId": "syncAllUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/sync/departments": {
      "post": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "手动同步部门",
        "description": "从企业微信拉取最新的部门列表并同步到本地数据库。通常在企业微信后台调整组织架构后手动触发。也可通过定时任务自动执行。需要SUPER_ADMIN角色。",
        "operationId": "syncDepartmentsUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/sync/status": {
      "get": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "同步状态（最后同步时间）",
        "description": "获取企业微信数据的最后同步时间和状态。\n返回部门和用户各自的最后同步时间，用于管理页面展示同步状态。\n\n**权限**：需要管理员登录。",
        "operationId": "getSyncStatusUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Map«string,object»»",
              "$ref": "#/definitions/统一响应结果«Map«string,object»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/sync/users": {
      "post": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "手动同步用户",
        "description": "从企业微信拉取所有部门的成员列表并同步到本地数据库。包括姓名、手机号、职位、部门归属等信息。需先同步部门再同步用户，或直接使用[同步全部]接口。需要SUPER_ADMIN角色。",
        "operationId": "syncUsersUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/wechat/users": {
      "get": {
        "tags": [
          "企业微信同步接口"
        ],
        "summary": "查询企业微信用户（分页+搜索）",
        "description": "分页查询已同步的企业微信用户列表。支持按姓名/手机号/职位关键词搜索，按部门ID和状态筛选。status取值：1=已激活 2=已禁用 4=未关注。用于管理员绑定企微账号时选择企微用户。需要管理员认证。\n\n**关联字典**：\n- wechat_user_status（企微用户状态）：请求参数status和返回字段status（1=已激活, 2=已禁用, 4=未关注）",
        "operationId": "listWechatUsersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "deptId",
            "in": "query",
            "description": "部门ID筛选",
            "required": false,
            "type": "integer",
            "format": "int64",
            "allowEmptyValue": false
          },
          {
            "name": "keyword",
            "in": "query",
            "description": "关键词搜索（姓名/手机/职位）",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态筛选(1=已激活,2=已禁用,4=未关注)",
            "required": false,
            "type": "integer",
            "format": "int32",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«WechatUser»»",
              "$ref": "#/definitions/统一响应结果«分页结果«WechatUser»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«WechatUser»»",
              "$ref": "#/definitions/统一响应结果«分页结果«WechatUser»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/designer/dashboard": {
      "get": {
        "tags": [
          "个人中心（旧路径，已废弃）"
        ],
        "summary": "工作台概览（已废弃，请使用 /admin/profile/dashboard）",
        "description": "已废弃接口，请迁移至 GET /admin/profile/dashboard。\n\n**权限**：需要管理员登录。",
        "operationId": "getDashboardUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定制师工作台VO（重构版）»",
              "$ref": "#/definitions/统一响应结果«定制师工作台VO（重构版）»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定制师工作台VO（重构版）»",
              "$ref": "#/definitions/统一响应结果«定制师工作台VO（重构版）»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": true,
        "x-order": "2147483647"
      }
    },
    "/admin/designer/orders": {
      "get": {
        "tags": [
          "个人中心（旧路径，已废弃）"
        ],
        "summary": "我的订单列表（已废弃，请使用 /admin/profile/orders）",
        "description": "已废弃接口。\n\n**关联字典**：\n- order_status（订单状态）：请求参数status和返回字段status",
        "operationId": "getMyOrdersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "keyword",
            "required": false,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "page",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "pageSize",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32"
          },
          {
            "name": "status",
            "in": "query",
            "description": "status",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": true,
        "x-order": "2147483647"
      }
    },
    "/admin/designer/products": {
      "get": {
        "tags": [
          "个人中心（旧路径，已废弃）"
        ],
        "summary": "我的产品列表（已废弃，请使用 /admin/profile/products）",
        "description": "已废弃接口。\n\n**关联字典**：\n- product_status（产品状态）：请求参数status和返回字段status",
        "operationId": "getMyProductsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "keyword",
            "required": false,
            "type": "string"
          },
          {
            "name": "page",
            "in": "query",
            "description": "page",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32"
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "pageSize",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32"
          },
          {
            "name": "status",
            "in": "query",
            "description": "status",
            "required": false,
            "type": "string"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": true,
        "x-order": "2147483647"
      }
    },
    "/admin/designer/profile": {
      "get": {
        "tags": [
          "个人中心（旧路径，已废弃）"
        ],
        "summary": "获取我的个人资料（已废弃，请使用 /admin/profile/me）",
        "description": "已废弃接口。\n\n**关联字典**：\n- designer_cert_level（认证等级）：返回字段certLevel（none/bronze/silver/gold/diamond）",
        "operationId": "getMyProfileUsingGET",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定制师个人资料VO»",
              "$ref": "#/definitions/统一响应结果«定制师个人资料VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定制师个人资料VO»",
              "$ref": "#/definitions/统一响应结果«定制师个人资料VO»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": true,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "个人中心（旧路径，已废弃）"
        ],
        "summary": "更新我的个人资料（已废弃，请使用 PUT /admin/profile/me）",
        "description": "已废弃接口，请迁移至 PUT /admin/profile/me。\n\n**权限**：需要管理员登录。",
        "operationId": "updateMyProfileUsingPUT",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "body",
            "required": true,
            "schema": {
              "originalRef": "更新定制师个人资料请求",
              "$ref": "#/definitions/更新定制师个人资料请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定制师个人资料VO»",
              "$ref": "#/definitions/统一响应结果«定制师个人资料VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«定制师个人资料VO»",
              "$ref": "#/definitions/统一响应结果«定制师个人资料VO»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": true,
        "x-order": "2147483647"
      }
    },
    "/admin/profile/dashboard": {
      "get": {
        "tags": [
          "个人中心"
        ],
        "summary": "工作台仪表盘（角色分发，支持时间范围）",
        "description": "根据当前管理员角色返回不同的仪表盘数据。CUSTOMIZER（定制师）：待处理订单数、产品数、评价统计等。SUPER_ADMIN/ADMIN：全局概览（订单、收入、用户增长等）。ROOM_MANAGER（客房管理）：房间分配概览。VEHICLE_MANAGER（车辆管理）：车辆调度概览。FINANCE（财务）：收支统计。MATERIAL_ADMIN（素材管理）：素材库概览。period取值：today=今日 week=本周 month=本月。需要管理员认证。\n\n**关联字典**：\n- order_status（订单状态）：仪表盘中订单统计按状态分组展示",
        "operationId": "getDashboardUsingGET_1",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "period",
            "in": "query",
            "description": "时间范围: today/week/month",
            "required": false,
            "type": "string",
            "default": "today",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«object»",
              "$ref": "#/definitions/统一响应结果«object»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«object»",
              "$ref": "#/definitions/统一响应结果«object»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/profile/me": {
      "get": {
        "tags": [
          "个人中心"
        ],
        "summary": "获取我的个人资料",
        "description": "获取当前登录管理员的个人资料，根据角色返回不同的资料内容。\n定制师角色会返回认证等级、个人简介、擅长领域等附加信息。\n\n**权限**：需要管理员登录。\n\n**关联字典**：\n- designer_cert_level（认证等级）：返回字段certLevel（none/bronze/silver/gold/diamond）",
        "operationId": "getMyProfileUsingGET_1",
        "produces": [
          "*/*"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«个人资料VO（角色感知）»",
              "$ref": "#/definitions/统一响应结果«个人资料VO（角色感知）»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«个人资料VO（角色感知）»",
              "$ref": "#/definitions/统一响应结果«个人资料VO（角色感知）»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      },
      "put": {
        "tags": [
          "个人中心"
        ],
        "summary": "更新我的个人资料",
        "description": "更新当前登录管理员的个人资料，支持修改昵称、头像、个人简介等。\n定制师角色可额外更新擅长领域、服务区域等信息。\n\n**权限**：需要管理员登录。",
        "operationId": "updateMyProfileUsingPUT_1",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "in": "body",
            "name": "body",
            "description": "body",
            "required": true,
            "schema": {
              "originalRef": "更新定制师个人资料请求",
              "$ref": "#/definitions/更新定制师个人资料请求"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«个人资料VO（角色感知）»",
              "$ref": "#/definitions/统一响应结果«个人资料VO（角色感知）»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«个人资料VO（角色感知）»",
              "$ref": "#/definitions/统一响应结果«个人资料VO（角色感知）»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/profile/orders": {
      "get": {
        "tags": [
          "个人中心"
        ],
        "summary": "订单列表",
        "description": "查询当前定制师的订单列表，支持按状态筛选。\n\n**关联字典**：\n- order_status（订单状态）：请求参数status和返回字段status",
        "operationId": "getOrdersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "订单状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/profile/products": {
      "get": {
        "tags": [
          "个人中心"
        ],
        "summary": "产品列表",
        "description": "查询当前定制师的产品列表，支持按状态筛选。\n\n**关联字典**：\n- product_status（产品状态）：请求参数status和返回字段status",
        "operationId": "getProductsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "产品状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«Map«string,object»»»",
              "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/profile/reviews": {
      "get": {
        "tags": [
          "个人中心"
        ],
        "summary": "我的评价列表",
        "description": "查询当前定制师收到的评价列表，支持按评价等级筛选。\n\n**关联字典**：\n- rating_level（评价等级）：GOOD=好评, MEDIUM=中评, BAD=差评（筛选条件+列表展示）\n",
        "operationId": "getReviewsUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "ratingLevel",
            "in": "query",
            "description": "评价等级: GOOD/MEDIUM/BAD",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«object»",
              "$ref": "#/definitions/统一响应结果«object»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«object»",
              "$ref": "#/definitions/统一响应结果«object»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/customer": {
      "get": {
        "tags": [
          "客户管理接口"
        ],
        "summary": "客户列表",
        "description": "分页查询小程序注册的C端用户（客户）列表。支持按昵称/手机号/真实姓名关键词搜索，按状态筛选。status取值：ACTIVE=正常 BANNED=已封禁。需要管理员认证。\n\n**关联字典**：\n- user_status（用户状态）：请求参数status和返回字段status（ACTIVE=正常, BANNED=已封禁）\n- gender（性别）：返回字段gender（0=女, 1=男）\n- id_card_type（证件类型）：返回字段idCardType",
        "operationId": "listCustomersUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "keyword",
            "in": "query",
            "description": "搜索关键词",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          },
          {
            "name": "page",
            "in": "query",
            "description": "页码",
            "required": false,
            "type": "integer",
            "default": 1,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "每页条数",
            "required": false,
            "type": "integer",
            "default": 20,
            "format": "int32",
            "allowEmptyValue": false
          },
          {
            "name": "status",
            "in": "query",
            "description": "状态",
            "required": false,
            "type": "string",
            "allowEmptyValue": false
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«客户信息VO（管理端）»»",
              "$ref": "#/definitions/统一响应结果«分页结果«客户信息VO（管理端）»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«分页结果«客户信息VO（管理端）»»",
              "$ref": "#/definitions/统一响应结果«分页结果«客户信息VO（管理端）»»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/customer/{userId}": {
      "get": {
        "tags": [
          "客户管理接口"
        ],
        "summary": "客户详情",
        "description": "获取指定客户的详细信息。\n\n**关联字典**：\n- user_status（用户状态）：返回字段status\n- gender（性别）：返回字段gender\n- id_card_type（证件类型）：返回字段idCardType",
        "operationId": "getCustomerUsingGET",
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "用户ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«客户信息VO（管理端）»",
              "$ref": "#/definitions/统一响应结果«客户信息VO（管理端）»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«客户信息VO（管理端）»",
              "$ref": "#/definitions/统一响应结果«客户信息VO（管理端）»"
            }
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/customer/{userId}/ban": {
      "post": {
        "tags": [
          "客户管理接口"
        ],
        "summary": "封禁客户",
        "description": "封禁指定的C端用户，状态变为BANNED。封禁后该用户无法登录小程序，已有的Token将失效。封禁操作不会删除用户数据，可通过[解封客户]接口恢复。需要管理员认证。",
        "operationId": "banCustomerUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "用户ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    },
    "/admin/customer/{userId}/unban": {
      "post": {
        "tags": [
          "客户管理接口"
        ],
        "summary": "解封客户",
        "description": "解封已封禁的C端用户，状态恢复为ACTIVE。解封后用户可正常登录小程序。需要管理员认证。",
        "operationId": "unbanCustomerUsingPOST",
        "consumes": [
          "application/json"
        ],
        "produces": [
          "*/*"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "path",
            "description": "用户ID",
            "required": false,
            "type": "integer",
            "format": "int64"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "responsesObject": {
          "200": {
            "description": "OK",
            "schema": {
              "originalRef": "统一响应结果«Void»",
              "$ref": "#/definitions/统一响应结果«Void»"
            }
          },
          "201": {
            "description": "Created"
          },
          "401": {
            "description": "Unauthorized"
          },
          "403": {
            "description": "Forbidden"
          },
          "404": {
            "description": "Not Found"
          }
        },
        "security": [
          {
            "Authorization": [
              "global"
            ]
          }
        ],
        "deprecated": false,
        "x-order": "2147483647"
      }
    }
  },
  "definitions": {
    "Favorite": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "favoriteId": {
          "type": "integer",
          "format": "int64"
        },
        "targetId": {
          "type": "integer",
          "format": "int64"
        },
        "targetType": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "userId": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "Favorite"
    },
    "Footprint": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "footprintId": {
          "type": "integer",
          "format": "int64"
        },
        "resourceId": {
          "type": "integer",
          "format": "int64"
        },
        "resourceType": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "userId": {
          "type": "integer",
          "format": "int64"
        },
        "visitTime": {
          "type": "string",
          "format": "date-time"
        }
      },
      "title": "Footprint"
    },
    "Traveler": {
      "type": "object",
      "properties": {
        "birthday": {
          "type": "string",
          "format": "date"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "deletedAt": {
          "type": "string",
          "format": "date-time"
        },
        "email": {
          "type": "string"
        },
        "emergencyContact": {
          "type": "string"
        },
        "emergencyPhone": {
          "type": "string"
        },
        "gender": {
          "type": "string"
        },
        "idCardNo": {
          "type": "string"
        },
        "idCardType": {
          "type": "string"
        },
        "isDefault": {
          "type": "integer",
          "format": "int32"
        },
        "name": {
          "type": "string"
        },
        "nationality": {
          "type": "string"
        },
        "phone": {
          "type": "string"
        },
        "travelerId": {
          "type": "integer",
          "format": "int64"
        },
        "travelerType": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "userId": {
          "type": "integer",
          "format": "int64"
        }
      },
      "title": "Traveler"
    },
    "出行人请求": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "birthday": {
          "type": "string",
          "format": "date",
          "example": "1990-01-01",
          "description": "出生日期（后端根据此字段自动判断人员类型，未传则默认ADULT）"
        },
        "email": {
          "type": "string",
          "example": "zhangsan@example.com",
          "description": "邮箱"
        },
        "emergencyContact": {
          "type": "string",
          "example": "李四",
          "description": "紧急联系人姓名"
        },
        "emergencyPhone": {
          "type": "string",
          "example": 13900139000,
          "description": "紧急联系人电话"
        },
        "gender": {
          "type": "string",
          "example": 1,
          "description": "性别，关联字典gender：1=男, 2=女"
        },
        "idCardNo": {
          "type": "string",
          "example": 110101199001011234,
          "description": "证件号码"
        },
        "idCardType": {
          "type": "string",
          "example": "ID_CARD",
          "description": "证件类型，关联字典id_card_type：ID_CARD=身份证, PASSPORT=护照"
        },
        "isDefault": {
          "type": "boolean",
          "example": false,
          "description": "是否设为默认出行人"
        },
        "name": {
          "type": "string",
          "example": "张三",
          "description": "出行人姓名"
        },
        "nationality": {
          "type": "string",
          "example": "中国",
          "description": "国籍"
        },
        "phone": {
          "type": "string",
          "example": 13800138000,
          "description": "手机号"
        }
      },
      "title": "出行人请求"
    },
    "分页结果«Favorite»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "Favorite",
            "$ref": "#/definitions/Favorite"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«Favorite»"
    },
    "分页结果«Footprint»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "Footprint",
            "$ref": "#/definitions/Footprint"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«Footprint»"
    },
    "发送短信验证码请求": {
      "type": "object",
      "required": [
        "phone"
      ],
      "properties": {
        "phone": {
          "type": "string",
          "example": 13800138000,
          "description": "手机号"
        }
      },
      "title": "发送短信验证码请求"
    },
    "字典VO": {
      "type": "object",
      "properties": {
        "dataList": {
          "type": "array",
          "description": "字典数据列表",
          "items": {
            "originalRef": "字典数据项VO",
            "$ref": "#/definitions/字典数据项VO"
          }
        },
        "dictName": {
          "type": "string",
          "description": "字典名称"
        },
        "dictType": {
          "type": "string",
          "description": "字典类型标识"
        }
      },
      "title": "字典VO"
    },
    "字典数据项VO": {
      "type": "object",
      "properties": {
        "dictLabel": {
          "type": "string",
          "description": "字典标签"
        },
        "dictValue": {
          "type": "string",
          "description": "字典值"
        },
        "remark": {
          "type": "string",
          "description": "备注（扩展信息，如年龄规则JSON）"
        },
        "sort": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        }
      },
      "title": "字典数据项VO"
    },
    "微信小程序登录请求": {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "avatar": {
          "type": "string",
          "example": "https://thirdwx.qlogo.cn/xxx",
          "description": "用户头像URL"
        },
        "code": {
          "type": "string",
          "example": "0c3NKj000...",
          "description": "微信登录授权码"
        },
        "nickname": {
          "type": "string",
          "example": "微信用户",
          "description": "用户昵称"
        },
        "phoneCode": {
          "type": "string",
          "example": "0c3NKj000...",
          "description": "手机号授权码（用于获取手机号）"
        }
      },
      "title": "微信小程序登录请求",
      "description": "通过wx.login获取code进行登录，首次登录自动注册"
    },
    "收藏请求": {
      "type": "object",
      "required": [
        "targetId",
        "targetType"
      ],
      "properties": {
        "targetId": {
          "type": "integer",
          "format": "int64",
          "example": 1,
          "description": "收藏目标ID"
        },
        "targetType": {
          "type": "string",
          "example": "SCENIC_SPOT",
          "description": "收藏类型，关联字典favorite_resource_type"
        }
      },
      "title": "收藏请求",
      "description": "添加收藏时的请求体，指定收藏的资源类型和ID"
    },
    "更新用户资料请求": {
      "type": "object",
      "properties": {
        "avatar": {
          "type": "string",
          "example": "https://oss.example.com/avatar/1.jpg",
          "description": "头像URL"
        },
        "birthday": {
          "type": "string",
          "format": "date",
          "example": "1990-01-01",
          "description": "出生日期（从身份证号自动解析）"
        },
        "email": {
          "type": "string",
          "example": "zhangsan@example.com",
          "description": "邮箱"
        },
        "gender": {
          "type": "string",
          "example": "MALE",
          "description": "性别：MALE=男 FEMALE=女（从身份证号自动解析）"
        },
        "idCardNo": {
          "type": "string",
          "example": 110101199001011234,
          "description": "证件号码（首次登录必填）"
        },
        "idCardType": {
          "type": "string",
          "example": "ID_CARD",
          "description": "证件类型：ID_CARD=身份证 PASSPORT=护照（首次登录必填）"
        },
        "nationality": {
          "type": "string",
          "example": "中国",
          "description": "国籍（默认中国）"
        },
        "nickname": {
          "type": "string",
          "example": "旅行达人",
          "description": "昵称"
        },
        "phone": {
          "type": "string",
          "example": 13800138000,
          "description": "手机号"
        },
        "realName": {
          "type": "string",
          "example": "张三",
          "description": "真实姓名（首次登录必填）"
        }
      },
      "title": "更新用户资料请求"
    },
    "用户信息VO": {
      "type": "object",
      "properties": {
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "birthday": {
          "type": "string",
          "format": "date",
          "description": "出生日期"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "email": {
          "type": "string",
          "description": "邮箱"
        },
        "gender": {
          "type": "integer",
          "format": "int32",
          "description": "性别，关联字典gender：1=男, 2=女"
        },
        "idCardNo": {
          "type": "string",
          "description": "证件号码"
        },
        "idCardType": {
          "type": "string",
          "description": "证件类型，关联字典id_card_type：ID_CARD=身份证, PASSPORT=护照"
        },
        "nationality": {
          "type": "string",
          "description": "国籍"
        },
        "needProfile": {
          "type": "boolean",
          "description": "是否需要完善资料（realName为空时为true）"
        },
        "nickname": {
          "type": "string",
          "description": "昵称"
        },
        "phone": {
          "type": "string",
          "description": "手机号（脱敏）"
        },
        "realName": {
          "type": "string",
          "description": "真实姓名"
        },
        "status": {
          "type": "string",
          "description": "状态，关联字典user_status：ACTIVE=正常, BANNED=已封禁"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        },
        "userId": {
          "type": "integer",
          "format": "int64",
          "description": "用户ID"
        }
      },
      "title": "用户信息VO"
    },
    "用户登录响应": {
      "type": "object",
      "properties": {
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "isNewUser": {
          "type": "boolean",
          "description": "是否新用户"
        },
        "needProfile": {
          "type": "boolean",
          "description": "是否需要完善资料（realName为空时为true）"
        },
        "nickname": {
          "type": "string",
          "description": "昵称"
        },
        "phone": {
          "type": "string",
          "description": "手机号"
        },
        "token": {
          "type": "string",
          "description": "登录令牌"
        },
        "userId": {
          "type": "integer",
          "format": "int64",
          "description": "用户ID"
        }
      },
      "title": "用户登录响应"
    },
    "短信验证码登录请求": {
      "type": "object",
      "required": [
        "code",
        "phone"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": 123456,
          "description": "短信验证码（6位数字）"
        },
        "phone": {
          "type": "string",
          "example": 13800138000,
          "description": "手机号"
        }
      },
      "title": "短信验证码登录请求"
    },
    "统一响应结果«Favorite»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "Favorite",
          "$ref": "#/definitions/Favorite"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Favorite»"
    },
    "统一响应结果«Footprint»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "Footprint",
          "$ref": "#/definitions/Footprint"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Footprint»"
    },
    "统一响应结果«List«Traveler»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "Traveler",
            "$ref": "#/definitions/Traveler"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«Traveler»»"
    },
    "统一响应结果«List«字典VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "字典VO",
            "$ref": "#/definitions/字典VO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«字典VO»»"
    },
    "统一响应结果«Traveler»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "Traveler",
          "$ref": "#/definitions/Traveler"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Traveler»"
    },
    "统一响应结果«Void»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Void»"
    },
    "统一响应结果«boolean»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "boolean",
          "description": "响应数据"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«boolean»"
    },
    "统一响应结果«分页结果«Favorite»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«Favorite»",
          "$ref": "#/definitions/分页结果«Favorite»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«Favorite»»"
    },
    "统一响应结果«分页结果«Footprint»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«Footprint»",
          "$ref": "#/definitions/分页结果«Footprint»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«Footprint»»"
    },
    "统一响应结果«用户信息VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "用户信息VO",
          "$ref": "#/definitions/用户信息VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«用户信息VO»"
    },
    "统一响应结果«用户登录响应»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "用户登录响应",
          "$ref": "#/definitions/用户登录响应"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«用户登录响应»"
    },
    "足迹请求": {
      "type": "object",
      "required": [
        "resourceId",
        "resourceType"
      ],
      "properties": {
        "resourceId": {
          "type": "integer",
          "format": "int64",
          "example": 1,
          "description": "资源ID"
        },
        "resourceType": {
          "type": "string",
          "example": "SCENIC_SPOT",
          "description": "资源类型，关联字典footprint_resource_type"
        }
      },
      "title": "足迹请求",
      "description": "记录用户浏览足迹时的请求体"
    },
    "AdminUser": {
      "type": "object",
      "properties": {
        "adminId": {
          "type": "integer",
          "format": "int64"
        },
        "avatar": {
          "type": "string"
        },
        "contactQrUrl": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "currentRoleId": {
          "type": "integer",
          "format": "int64"
        },
        "effectiveAvatar": {
          "type": "string"
        },
        "enterpriseWechatDeptNames": {
          "type": "string"
        },
        "enterpriseWechatId": {
          "type": "string"
        },
        "enterpriseWechatName": {
          "type": "string"
        },
        "failedLoginCount": {
          "type": "integer",
          "format": "int32"
        },
        "lockedUntil": {
          "type": "string",
          "format": "date-time"
        },
        "passwordChangedAt": {
          "type": "string",
          "format": "date-time"
        },
        "roleKey": {
          "type": "string"
        },
        "roleName": {
          "type": "string"
        },
        "roles": {
          "type": "array",
          "items": {
            "originalRef": "SysRole",
            "$ref": "#/definitions/SysRole"
          }
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "username": {
          "type": "string"
        }
      },
      "title": "AdminUser"
    },
    "SysRole": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "remark": {
          "type": "string"
        },
        "roleId": {
          "type": "integer",
          "format": "int64"
        },
        "roleKey": {
          "type": "string"
        },
        "roleName": {
          "type": "string"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "title": "SysRole"
    },
    "企业微信绑定请求": {
      "type": "object",
      "properties": {
        "enterpriseWechatId": {
          "type": "string",
          "description": "企业微信ID（为空则解绑）"
        },
        "forceRebind": {
          "type": "boolean",
          "description": "是否强制换绑（当ID已被其他管理员占用时）"
        }
      },
      "title": "企业微信绑定请求"
    },
    "分页结果«AdminUser»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "AdminUser",
            "$ref": "#/definitions/AdminUser"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«AdminUser»"
    },
    "创建管理员请求": {
      "type": "object",
      "required": [
        "username"
      ],
      "properties": {
        "roleId": {
          "type": "integer",
          "format": "int64",
          "example": 1,
          "description": "角色ID（已废弃，请使用roleIds）"
        },
        "roleIds": {
          "type": "array",
          "example": [
            1,
            2
          ],
          "description": "角色ID列表（多角色）",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        },
        "username": {
          "type": "string",
          "example": "zhangsan",
          "description": "用户名"
        }
      },
      "title": "创建管理员请求",
      "description": "创建后台管理员账号，默认密码Admin@123456"
    },
    "旅行设计师VO": {
      "type": "object",
      "properties": {
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "certLevel": {
          "type": "string",
          "description": "认证等级：none/bronze/silver/gold/diamond"
        },
        "certLevelLabel": {
          "type": "string",
          "description": "认证等级中文标签"
        },
        "certified": {
          "type": "boolean",
          "description": "是否已认证"
        },
        "description": {
          "type": "string",
          "description": "个人简介"
        },
        "experience": {
          "type": "integer",
          "format": "int32",
          "description": "从业年限"
        },
        "id": {
          "type": "string",
          "description": "设计师ID"
        },
        "motto": {
          "type": "string",
          "description": "座右铭"
        },
        "name": {
          "type": "string",
          "description": "设计师姓名"
        },
        "phone": {
          "type": "string",
          "description": "联系电话"
        },
        "rating": {
          "type": "string",
          "description": "评分"
        },
        "routeCount": {
          "type": "integer",
          "format": "int32",
          "description": "设计路线数量"
        },
        "serviceAreas": {
          "type": "array",
          "description": "服务区域",
          "items": {
            "type": "string"
          }
        },
        "specialties": {
          "type": "array",
          "description": "擅长领域",
          "items": {
            "type": "string"
          }
        }
      },
      "title": "旅行设计师VO"
    },
    "更新管理员请求": {
      "type": "object",
      "properties": {
        "enterpriseWechatId": {
          "type": "string",
          "example": 842,
          "description": "企业微信用户ID"
        },
        "roleId": {
          "type": "integer",
          "format": "int64",
          "example": 1,
          "description": "角色ID（已废弃，请使用roleIds）"
        },
        "roleIds": {
          "type": "array",
          "example": [
            1,
            2
          ],
          "description": "角色ID列表（多角色）",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "title": "更新管理员请求"
    },
    "统一响应结果«AdminUser»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "AdminUser",
          "$ref": "#/definitions/AdminUser"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«AdminUser»"
    },
    "统一响应结果«List«旅行设计师VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "旅行设计师VO",
            "$ref": "#/definitions/旅行设计师VO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«旅行设计师VO»»"
    },
    "统一响应结果«Map«string,object»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "object",
          "description": "响应数据"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Map«string,object»»"
    },
    "统一响应结果«分页结果«AdminUser»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«AdminUser»",
          "$ref": "#/definitions/分页结果«AdminUser»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«AdminUser»»"
    },
    "Banner VO": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "endTime": {
          "type": "string",
          "format": "date-time",
          "description": "展示结束时间"
        },
        "id": {
          "type": "string",
          "description": "Banner ID"
        },
        "imageUrl": {
          "type": "string",
          "description": "图片URL（图片类型为图片，视频类型为封面图）"
        },
        "linkId": {
          "type": "string",
          "description": "链接目标ID（PRODUCT/SCENIC/ACTIVITY/HOTEL时有值）"
        },
        "linkTargetName": {
          "type": "string",
          "description": "链接目标名称（用于后台展示）"
        },
        "linkType": {
          "type": "string",
          "description": "链接类型：NONE=无链接 PRODUCT=产品 SCENIC=景区 ACTIVITY=活动 HOTEL=酒店 PAGE=小程序页面 WEBVIEW=网页"
        },
        "linkUrl": {
          "type": "string",
          "description": "链接URL（PAGE时为路由名，WEBVIEW时为完整URL）"
        },
        "materialId": {
          "type": "integer",
          "format": "int64",
          "description": "素材库关联ID"
        },
        "mediaType": {
          "type": "string",
          "description": "媒体类型: IMAGE/VIDEO"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "展示开始时间"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态：0=下线 1=上线"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题"
        },
        "tags": {
          "type": "array",
          "description": "标签列表",
          "items": {
            "type": "string"
          }
        },
        "title": {
          "type": "string",
          "description": "标题"
        },
        "videoUrl": {
          "type": "string",
          "description": "视频URL（媒体类型为VIDEO时有值）"
        }
      },
      "title": "Banner VO"
    },
    "Banner请求": {
      "type": "object",
      "required": [
        "imageUrl",
        "title"
      ],
      "properties": {
        "endTime": {
          "type": "string",
          "format": "date-time",
          "example": "2026-03-31T23:59:59",
          "description": "展示结束时间"
        },
        "imageUrl": {
          "type": "string",
          "example": "https://oss.example.com/banner/1.jpg",
          "description": "Banner图片URL（图片类型时为图片，视频类型时为封面图）"
        },
        "linkId": {
          "type": "string",
          "example": 1,
          "description": "链接目标ID（linkType=PRODUCT时为产品ID）"
        },
        "linkTargetName": {
          "type": "string",
          "example": "甘南秘境之旅",
          "description": "链接目标名称（用于后台展示）"
        },
        "linkType": {
          "type": "string",
          "example": "PRODUCT",
          "description": "链接类型：NONE=无链接 PRODUCT=产品 SCENIC=景区 ACTIVITY=活动 HOTEL=酒店 PAGE=小程序页面 WEBVIEW=网页"
        },
        "linkUrl": {
          "type": "string",
          "example": "https://example.com",
          "description": "链接URL（linkType=WEBVIEW/PAGE时生效）"
        },
        "materialId": {
          "type": "integer",
          "format": "int64",
          "description": "素材库关联ID（从素材库选择时传入）"
        },
        "mediaType": {
          "type": "string",
          "example": "IMAGE",
          "description": "媒体类型: IMAGE/VIDEO"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号（越小越靠前）"
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "example": "2026-03-01T00:00:00",
          "description": "展示开始时间"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "状态：0=下线 1=上线"
        },
        "subtitle": {
          "type": "string",
          "example": "限时优惠，不容错过",
          "description": "副标题"
        },
        "tags": {
          "type": "string",
          "example": "热门,推荐",
          "description": "标签（逗号分隔）"
        },
        "title": {
          "type": "string",
          "example": "春季特惠",
          "description": "Banner标题"
        },
        "videoUrl": {
          "type": "string",
          "example": "https://oss.example.com/banner/1.mp4",
          "description": "视频URL（媒体类型为VIDEO时必填）"
        }
      },
      "title": "Banner请求"
    },
    "分页结果«Banner VO»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "Banner VO",
            "$ref": "#/definitions/Banner VO"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«Banner VO»"
    },
    "统一响应结果«Banner VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "Banner VO",
          "$ref": "#/definitions/Banner VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«Banner VO»"
    },
    "统一响应结果«分页结果«Banner VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«Banner VO»",
          "$ref": "#/definitions/分页结果«Banner VO»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«Banner VO»»"
    },
    "分页结果«联系我们 VO»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "联系我们 VO",
            "$ref": "#/definitions/联系我们 VO"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«联系我们 VO»"
    },
    "统一响应结果«分页结果«联系我们 VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«联系我们 VO»",
          "$ref": "#/definitions/分页结果«联系我们 VO»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«联系我们 VO»»"
    },
    "统一响应结果«联系我们 VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "联系我们 VO",
          "$ref": "#/definitions/联系我们 VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«联系我们 VO»"
    },
    "联系我们 VO": {
      "type": "object",
      "properties": {
        "channelType": {
          "type": "string",
          "description": "渠道类型，关联字典contact_channel_type：ABOUT=关于我们, ONLINE_CS=在线客服, PHONE=电话咨询"
        },
        "content": {
          "type": "string",
          "description": "富文本内容（关于我们类型使用）"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "icon": {
          "type": "string",
          "description": "图标URL"
        },
        "id": {
          "type": "string",
          "description": "联系方式ID"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态，关联字典common_status：ACTIVE=启用, INACTIVE=停用"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题/描述"
        },
        "title": {
          "type": "string",
          "description": "标题"
        },
        "value": {
          "type": "string",
          "description": "渠道值"
        }
      },
      "title": "联系我们 VO"
    },
    "联系我们请求": {
      "type": "object",
      "required": [
        "channelType",
        "title"
      ],
      "properties": {
        "channelType": {
          "type": "string",
          "example": "PHONE",
          "description": "渠道类型，关联字典contact_channel_type：ABOUT=关于我们, ONLINE_CS=在线客服, PHONE=电话咨询"
        },
        "content": {
          "type": "string",
          "description": "富文本内容（关于我们类型使用）"
        },
        "icon": {
          "type": "string",
          "example": "https://oss.example.com/icon/phone.png",
          "description": "图标URL"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号（越小越靠前）"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": "ACTIVE",
          "description": "状态，关联字典common_status：ACTIVE=启用, INACTIVE=停用"
        },
        "subtitle": {
          "type": "string",
          "example": "客服热线",
          "description": "副标题/描述"
        },
        "title": {
          "type": "string",
          "example": "电话咨询",
          "description": "标题"
        },
        "value": {
          "type": "string",
          "example": "400-000-0000",
          "description": "渠道值（电话号码/客服链接等）"
        }
      },
      "title": "联系我们请求"
    },
    "分页结果«探索分类 VO»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "探索分类 VO",
            "$ref": "#/definitions/探索分类 VO"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«探索分类 VO»"
    },
    "探索分类 VO": {
      "type": "object",
      "properties": {
        "coverUrl": {
          "type": "string",
          "description": "封面图URL"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "favoriteCount": {
          "type": "integer",
          "format": "int32",
          "description": "收藏数"
        },
        "iconUrl": {
          "type": "string",
          "description": "图标URL"
        },
        "id": {
          "type": "string",
          "description": "分类ID"
        },
        "likeCount": {
          "type": "integer",
          "format": "int32",
          "description": "点赞数"
        },
        "resourceCount": {
          "type": "integer",
          "format": "int32",
          "description": "关联资源数量"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态：0=下线 1=上线"
        },
        "subtitle": {
          "type": "string",
          "description": "副标题"
        },
        "title": {
          "type": "string",
          "description": "分类标题"
        },
        "viewCount": {
          "type": "integer",
          "format": "int32",
          "description": "浏览量"
        }
      },
      "title": "探索分类 VO"
    },
    "探索分类关联资源项": {
      "type": "object",
      "properties": {
        "coverUrl": {
          "type": "string",
          "description": "封面图URL"
        },
        "description": {
          "type": "string",
          "description": "资源简介(支持HTML)"
        },
        "resourceId": {
          "type": "string",
          "description": "资源ID"
        },
        "resourceName": {
          "type": "string",
          "description": "资源名称"
        },
        "resourceType": {
          "type": "string",
          "description": "资源类型"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        }
      },
      "title": "探索分类关联资源项"
    },
    "探索分类详情 VO": {
      "type": "object",
      "properties": {
        "coverUrl": {
          "type": "string",
          "description": "封面图URL"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "description": {
          "type": "string",
          "description": "分类描述"
        },
        "favoriteCount": {
          "type": "integer",
          "format": "int32",
          "description": "收藏数"
        },
        "iconUrl": {
          "type": "string",
          "description": "图标URL"
        },
        "id": {
          "type": "string",
          "description": "分类ID"
        },
        "isFavorited": {
          "type": "boolean",
          "description": "当前用户是否已收藏"
        },
        "isLiked": {
          "type": "boolean",
          "description": "当前用户是否已点赞"
        },
        "likeCount": {
          "type": "integer",
          "format": "int32",
          "description": "点赞数"
        },
        "resources": {
          "type": "array",
          "description": "关联资源列表",
          "items": {
            "originalRef": "探索分类关联资源项",
            "$ref": "#/definitions/探索分类关联资源项"
          }
        },
        "subtitle": {
          "type": "string",
          "description": "副标题"
        },
        "title": {
          "type": "string",
          "description": "分类标题"
        },
        "viewCount": {
          "type": "integer",
          "format": "int32",
          "description": "浏览量"
        }
      },
      "title": "探索分类详情 VO"
    },
    "探索分类请求": {
      "type": "object",
      "required": [
        "coverUrl",
        "title"
      ],
      "properties": {
        "coverUrl": {
          "type": "string",
          "example": "https://oss.example.com/explore/cover.jpg",
          "description": "封面图URL"
        },
        "description": {
          "type": "string",
          "example": "阳光沙滩，碧海蓝天",
          "description": "分类描述"
        },
        "iconUrl": {
          "type": "string",
          "example": "https://oss.example.com/explore/icon.png",
          "description": "图标URL"
        },
        "resources": {
          "type": "array",
          "description": "关联资源列表",
          "items": {
            "originalRef": "探索分类资源请求",
            "$ref": "#/definitions/探索分类资源请求"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号（越小越靠前）"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "状态：0=下线 1=上线"
        },
        "subtitle": {
          "type": "string",
          "example": "精选海岛度假目的地",
          "description": "副标题"
        },
        "title": {
          "type": "string",
          "example": "海岛度假",
          "description": "分类标题"
        }
      },
      "title": "探索分类请求"
    },
    "探索分类资源请求": {
      "type": "object",
      "properties": {
        "coverUrl": {
          "type": "string",
          "example": "https://oss.example.com/scenic/1.jpg",
          "description": "封面图URL"
        },
        "description": {
          "type": "string",
          "description": "资源简介(支持HTML)"
        },
        "resourceId": {
          "type": "integer",
          "format": "int64",
          "example": 100,
          "description": "资源ID"
        },
        "resourceName": {
          "type": "string",
          "example": "西湖风景区",
          "description": "资源名称"
        },
        "resourceType": {
          "type": "string",
          "example": "SCENIC_SPOT",
          "description": "资源类型"
        }
      },
      "title": "探索分类资源请求"
    },
    "统一响应结果«分页结果«探索分类 VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«探索分类 VO»",
          "$ref": "#/definitions/分页结果«探索分类 VO»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«探索分类 VO»»"
    },
    "统一响应结果«探索分类详情 VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "探索分类详情 VO",
          "$ref": "#/definitions/探索分类详情 VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«探索分类详情 VO»"
    },
    "分页结果«前端配置 VO»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "前端配置 VO",
            "$ref": "#/definitions/前端配置 VO"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«前端配置 VO»"
    },
    "前端配置 VO": {
      "type": "object",
      "properties": {
        "configGroup": {
          "type": "string",
          "description": "配置分组: COLOR/PAGE/SECRET/GENERAL"
        },
        "configKey": {
          "type": "string",
          "description": "配置键"
        },
        "configType": {
          "type": "string",
          "description": "值类型"
        },
        "configValue": {
          "type": "string",
          "description": "配置值(SECRET类型脱敏)"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "description": {
          "type": "string",
          "description": "配置项描述"
        },
        "id": {
          "type": "string",
          "description": "配置ID"
        },
        "label": {
          "type": "string",
          "description": "配置项中文名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态: 0=禁用 1=启用"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "前端配置 VO"
    },
    "前端配置请求": {
      "type": "object",
      "required": [
        "configGroup",
        "configKey",
        "configType",
        "label"
      ],
      "properties": {
        "configGroup": {
          "type": "string",
          "example": "COLOR",
          "description": "配置分组"
        },
        "configKey": {
          "type": "string",
          "example": "primaryColor",
          "description": "配置键"
        },
        "configType": {
          "type": "string",
          "example": "COLOR",
          "description": "值类型"
        },
        "configValue": {
          "type": "string",
          "example": "#1890FF",
          "description": "配置值"
        },
        "description": {
          "type": "string",
          "example": "系统主色调",
          "description": "配置项描述"
        },
        "label": {
          "type": "string",
          "example": "主题色",
          "description": "配置项中文名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 0,
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "状态: 0=禁用 1=启用"
        }
      },
      "title": "前端配置请求"
    },
    "统一响应结果«List«string»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "type": "string"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«string»»"
    },
    "统一响应结果«List«前端配置 VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "前端配置 VO",
            "$ref": "#/definitions/前端配置 VO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«前端配置 VO»»"
    },
    "统一响应结果«分页结果«前端配置 VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«前端配置 VO»",
          "$ref": "#/definitions/分页结果«前端配置 VO»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«前端配置 VO»»"
    },
    "统一响应结果«前端配置 VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "前端配置 VO",
          "$ref": "#/definitions/前端配置 VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«前端配置 VO»"
    },
    "常见问题分类VO": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "分类ID"
        },
        "items": {
          "type": "array",
          "description": "条目列表（仅内部接口返回）",
          "items": {
            "originalRef": "常见问题条目VO",
            "$ref": "#/definitions/常见问题条目VO"
          }
        },
        "name": {
          "type": "string",
          "description": "分类名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态：0=禁用 1=启用"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "常见问题分类VO"
    },
    "常见问题分类请求": {
      "type": "object",
      "required": [
        "name"
      ],
      "properties": {
        "name": {
          "type": "string",
          "example": "常见问题",
          "description": "分类名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "状态：0=禁用 1=启用"
        }
      },
      "title": "常见问题分类请求"
    },
    "常见问题条目VO": {
      "type": "object",
      "properties": {
        "answer": {
          "type": "string",
          "description": "回答"
        },
        "categoryId": {
          "type": "integer",
          "format": "int64",
          "description": "所属分类ID"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "id": {
          "type": "integer",
          "format": "int64",
          "description": "条目ID"
        },
        "question": {
          "type": "string",
          "description": "问题"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态：0=禁用 1=启用"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "常见问题条目VO"
    },
    "常见问题条目请求": {
      "type": "object",
      "required": [
        "categoryId",
        "question"
      ],
      "properties": {
        "answer": {
          "type": "string",
          "example": "您可以在首页浏览路线产品...",
          "description": "回答（支持富文本）"
        },
        "categoryId": {
          "type": "integer",
          "format": "int64",
          "description": "所属分类ID"
        },
        "question": {
          "type": "string",
          "example": "如何预订行程？",
          "description": "问题"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "状态：0=禁用 1=启用"
        }
      },
      "title": "常见问题条目请求"
    },
    "统一响应结果«List«常见问题分类VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "常见问题分类VO",
            "$ref": "#/definitions/常见问题分类VO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«常见问题分类VO»»"
    },
    "统一响应结果«List«常见问题条目VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "常见问题条目VO",
            "$ref": "#/definitions/常见问题条目VO"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«常见问题条目VO»»"
    },
    "统一响应结果«常见问题分类VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "常见问题分类VO",
          "$ref": "#/definitions/常见问题分类VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«常见问题分类VO»"
    },
    "统一响应结果«常见问题条目VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "常见问题条目VO",
          "$ref": "#/definitions/常见问题条目VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«常见问题条目VO»"
    },
    "分页结果«协议 VO»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "协议 VO",
            "$ref": "#/definitions/协议 VO"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«协议 VO»"
    },
    "协议 VO": {
      "type": "object",
      "properties": {
        "content": {
          "type": "string",
          "description": "协议内容（HTML富文本）"
        },
        "createTime": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "id": {
          "type": "string",
          "description": "协议ID"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "排序号"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "description": "状态：0=下线 1=上线"
        },
        "title": {
          "type": "string",
          "description": "协议标题"
        },
        "type": {
          "type": "string",
          "description": "协议类型标识"
        },
        "updateTime": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        },
        "version": {
          "type": "string",
          "description": "版本号"
        }
      },
      "title": "协议 VO"
    },
    "协议请求": {
      "type": "object",
      "required": [
        "content",
        "title",
        "type"
      ],
      "properties": {
        "content": {
          "type": "string",
          "description": "协议内容（HTML富文本）"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号（越小越靠前）"
        },
        "status": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "状态：0=下线 1=上线"
        },
        "title": {
          "type": "string",
          "example": "隐私政策",
          "description": "协议标题"
        },
        "type": {
          "type": "string",
          "example": "privacy",
          "description": "协议类型标识（唯一）"
        },
        "version": {
          "type": "string",
          "example": 1.0,
          "description": "版本号"
        }
      },
      "title": "协议请求"
    },
    "统一响应结果«分页结果«协议 VO»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«协议 VO»",
          "$ref": "#/definitions/分页结果«协议 VO»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«协议 VO»»"
    },
    "统一响应结果«协议 VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "协议 VO",
          "$ref": "#/definitions/协议 VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«协议 VO»"
    },
    "二次验证请求": {
      "type": "object",
      "required": [
        "code"
      ],
      "properties": {
        "code": {
          "type": "string",
          "example": 123456,
          "description": "验证码"
        }
      },
      "title": "二次验证请求"
    },
    "修改密码请求": {
      "type": "object",
      "required": [
        "newPassword",
        "oldPassword"
      ],
      "properties": {
        "newPassword": {
          "type": "string",
          "example": "NewPass@456",
          "description": "新密码（8-128位，须含大小写字母和数字）"
        },
        "oldPassword": {
          "type": "string",
          "example": "OldPass@123",
          "description": "旧密码"
        }
      },
      "title": "修改密码请求"
    },
    "头像更新请求": {
      "type": "object",
      "required": [
        "avatar"
      ],
      "properties": {
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "fileId": {
          "type": "integer",
          "format": "int64",
          "description": "文件ID"
        }
      },
      "title": "头像更新请求",
      "description": "更新管理员头像，需先通过文件服务上传图片"
    },
    "管理员登录响应": {
      "type": "object",
      "properties": {
        "adminId": {
          "type": "integer",
          "format": "int64",
          "description": "管理员ID"
        },
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "requireTwoFa": {
          "type": "boolean",
          "description": "是否需要二次验证"
        },
        "requireWechatBind": {
          "type": "boolean",
          "description": "是否需要绑定企业微信"
        },
        "role": {
          "type": "string",
          "description": "角色标识（主角色）"
        },
        "roleName": {
          "type": "string",
          "description": "角色名称（主角色）"
        },
        "roles": {
          "type": "array",
          "description": "角色列表（多角色）",
          "items": {
            "originalRef": "角色信息",
            "$ref": "#/definitions/角色信息"
          }
        },
        "token": {
          "type": "string",
          "description": "登录令牌"
        },
        "username": {
          "type": "string",
          "description": "用户名"
        }
      },
      "title": "管理员登录响应"
    },
    "管理员登录请求": {
      "type": "object",
      "required": [
        "password",
        "username"
      ],
      "properties": {
        "password": {
          "type": "string",
          "example": "Admin@2026",
          "description": "密码"
        },
        "username": {
          "type": "string",
          "example": "admin",
          "description": "用户名"
        }
      },
      "title": "管理员登录请求",
      "description": "后台管理员通过用户名+密码登录，新设备首次登录需2FA验证"
    },
    "统一响应结果«管理员登录响应»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "管理员登录响应",
          "$ref": "#/definitions/管理员登录响应"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«管理员登录响应»"
    },
    "角色信息": {
      "type": "object",
      "properties": {
        "roleId": {
          "type": "integer",
          "format": "int64",
          "description": "角色ID"
        },
        "roleKey": {
          "type": "string",
          "description": "角色标识"
        },
        "roleName": {
          "type": "string",
          "description": "角色名称"
        }
      },
      "title": "角色信息"
    },
    "角色切换请求": {
      "type": "object",
      "required": [
        "roleId"
      ],
      "properties": {
        "roleId": {
          "type": "integer",
          "format": "int64",
          "description": "目标角色ID"
        }
      },
      "title": "角色切换请求",
      "description": "多角色管理员切换当前活跃角色"
    },
    "分配菜单权限请求": {
      "type": "object",
      "required": [
        "menuIds"
      ],
      "properties": {
        "menuIds": {
          "type": "array",
          "example": [
            1,
            2,
            3
          ],
          "description": "菜单ID列表",
          "items": {
            "type": "integer",
            "format": "int64"
          }
        }
      },
      "title": "分配菜单权限请求"
    },
    "分页结果«SysRole»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "SysRole",
            "$ref": "#/definitions/SysRole"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«SysRole»"
    },
    "创建角色请求": {
      "type": "object",
      "required": [
        "roleKey",
        "roleName"
      ],
      "properties": {
        "remark": {
          "type": "string",
          "example": "负责日常运营管理",
          "description": "备注"
        },
        "roleKey": {
          "type": "string",
          "example": "OPERATOR",
          "description": "角色标识"
        },
        "roleName": {
          "type": "string",
          "example": "运营专员",
          "description": "角色名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        }
      },
      "title": "创建角色请求"
    },
    "更新角色请求": {
      "type": "object",
      "properties": {
        "remark": {
          "type": "string",
          "example": "负责日常运营管理",
          "description": "备注"
        },
        "roleName": {
          "type": "string",
          "example": "运营专员",
          "description": "角色名称"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        },
        "status": {
          "type": "string",
          "example": "ACTIVE",
          "description": "状态：ACTIVE=启用 DISABLED=禁用"
        }
      },
      "title": "更新角色请求"
    },
    "统一响应结果«List«SysRole»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "SysRole",
            "$ref": "#/definitions/SysRole"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«SysRole»»"
    },
    "统一响应结果«SysRole»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "SysRole",
          "$ref": "#/definitions/SysRole"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«SysRole»"
    },
    "统一响应结果«分页结果«SysRole»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«SysRole»",
          "$ref": "#/definitions/分页结果«SysRole»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«SysRole»»"
    },
    "SysMenu": {
      "type": "object",
      "properties": {
        "children": {
          "type": "array",
          "items": {
            "originalRef": "SysMenu",
            "$ref": "#/definitions/SysMenu"
          }
        },
        "component": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "icon": {
          "type": "string"
        },
        "isCache": {
          "type": "boolean"
        },
        "menuId": {
          "type": "integer",
          "format": "int64"
        },
        "menuName": {
          "type": "string"
        },
        "menuType": {
          "type": "string"
        },
        "parentId": {
          "type": "integer",
          "format": "int64"
        },
        "path": {
          "type": "string"
        },
        "permissionCode": {
          "type": "string"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "visible": {
          "type": "boolean"
        }
      },
      "title": "SysMenu"
    },
    "创建菜单请求": {
      "type": "object",
      "required": [
        "menuName",
        "menuType"
      ],
      "properties": {
        "component": {
          "type": "string",
          "example": "system/user/index",
          "description": "组件路径"
        },
        "icon": {
          "type": "string",
          "example": "user",
          "description": "菜单图标"
        },
        "isCache": {
          "type": "boolean",
          "example": true,
          "description": "是否缓存(true=缓存 false=不缓存)"
        },
        "menuName": {
          "type": "string",
          "example": "用户管理",
          "description": "菜单名称"
        },
        "menuType": {
          "type": "string",
          "example": "M",
          "description": "菜单类型：D=目录 M=菜单 B=按钮（关联字典menu_type）"
        },
        "parentId": {
          "type": "integer",
          "format": "int64",
          "example": 0,
          "description": "父菜单ID（顶级菜单为空）"
        },
        "path": {
          "type": "string",
          "example": "/system/user",
          "description": "路由路径"
        },
        "permissionCode": {
          "type": "string",
          "example": "system:user:list",
          "description": "权限标识"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        },
        "visible": {
          "type": "boolean",
          "example": true,
          "description": "是否可见"
        }
      },
      "title": "创建菜单请求"
    },
    "更新菜单请求": {
      "type": "object",
      "properties": {
        "component": {
          "type": "string",
          "example": "system/user/index",
          "description": "组件路径"
        },
        "icon": {
          "type": "string",
          "example": "user",
          "description": "菜单图标"
        },
        "isCache": {
          "type": "boolean",
          "example": true,
          "description": "是否缓存(true=缓存 false=不缓存)"
        },
        "menuName": {
          "type": "string",
          "example": "用户管理",
          "description": "菜单名称"
        },
        "menuType": {
          "type": "string",
          "example": "M",
          "description": "菜单类型：D=目录 M=菜单 B=按钮（关联字典menu_type）"
        },
        "parentId": {
          "type": "integer",
          "format": "int64",
          "example": 0,
          "description": "父菜单ID"
        },
        "path": {
          "type": "string",
          "example": "/system/user",
          "description": "路由路径"
        },
        "permissionCode": {
          "type": "string",
          "example": "system:user:list",
          "description": "权限标识"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        },
        "status": {
          "type": "string",
          "example": "ACTIVE",
          "description": "状态：ACTIVE=启用 DISABLED=禁用"
        },
        "visible": {
          "type": "boolean",
          "example": true,
          "description": "是否可见"
        }
      },
      "title": "更新菜单请求"
    },
    "统一响应结果«List«SysMenu»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "SysMenu",
            "$ref": "#/definitions/SysMenu"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«SysMenu»»"
    },
    "统一响应结果«SysMenu»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "SysMenu",
          "$ref": "#/definitions/SysMenu"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«SysMenu»"
    },
    "SysDictData": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "dictDataId": {
          "type": "integer",
          "format": "int64"
        },
        "dictLabel": {
          "type": "string"
        },
        "dictType": {
          "type": "string"
        },
        "dictValue": {
          "type": "string"
        },
        "remark": {
          "type": "string"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "title": "SysDictData"
    },
    "SysDictType": {
      "type": "object",
      "properties": {
        "category": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "dictName": {
          "type": "string"
        },
        "dictType": {
          "type": "string"
        },
        "dictTypeId": {
          "type": "integer",
          "format": "int64"
        },
        "remark": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "title": "SysDictType"
    },
    "分页结果«SysDictType»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "SysDictType",
            "$ref": "#/definitions/SysDictType"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«SysDictType»"
    },
    "创建字典数据请求": {
      "type": "object",
      "required": [
        "dictLabel",
        "dictType",
        "dictValue"
      ],
      "properties": {
        "dictLabel": {
          "type": "string",
          "example": "男",
          "description": "字典标签"
        },
        "dictType": {
          "type": "string",
          "example": "sys_gender",
          "description": "字典类型"
        },
        "dictValue": {
          "type": "string",
          "example": 1,
          "description": "字典值"
        },
        "remark": {
          "type": "string",
          "example": "男性",
          "description": "备注"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        }
      },
      "title": "创建字典数据请求"
    },
    "创建字典类型请求": {
      "type": "object",
      "required": [
        "dictName",
        "dictType"
      ],
      "properties": {
        "category": {
          "type": "string",
          "example": "BASE",
          "description": "字典分类（如BASE=基础字典, BUSINESS=业务字典，也可自定义）"
        },
        "dictName": {
          "type": "string",
          "example": "性别",
          "description": "字典名称"
        },
        "dictType": {
          "type": "string",
          "example": "sys_gender",
          "description": "字典类型标识"
        },
        "remark": {
          "type": "string",
          "example": "用户性别字典",
          "description": "备注"
        }
      },
      "title": "创建字典类型请求"
    },
    "更新字典数据请求": {
      "type": "object",
      "properties": {
        "dictLabel": {
          "type": "string",
          "example": "男",
          "description": "字典标签"
        },
        "dictValue": {
          "type": "string",
          "example": 1,
          "description": "字典值"
        },
        "remark": {
          "type": "string",
          "example": "男性",
          "description": "备注"
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "排序号"
        },
        "status": {
          "type": "string",
          "example": "ACTIVE",
          "description": "状态：ACTIVE=启用 DISABLED=禁用"
        }
      },
      "title": "更新字典数据请求"
    },
    "更新字典类型请求": {
      "type": "object",
      "properties": {
        "dictName": {
          "type": "string",
          "example": "性别",
          "description": "字典名称"
        },
        "remark": {
          "type": "string",
          "example": "用户性别字典",
          "description": "备注"
        },
        "status": {
          "type": "string",
          "example": "ACTIVE",
          "description": "状态：ACTIVE=启用 DISABLED=禁用"
        }
      },
      "title": "更新字典类型请求"
    },
    "统一响应结果«List«SysDictData»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "SysDictData",
            "$ref": "#/definitions/SysDictData"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«SysDictData»»"
    },
    "统一响应结果«SysDictData»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "SysDictData",
          "$ref": "#/definitions/SysDictData"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«SysDictData»"
    },
    "统一响应结果«SysDictType»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "SysDictType",
          "$ref": "#/definitions/SysDictType"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«SysDictType»"
    },
    "统一响应结果«分页结果«SysDictType»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«SysDictType»",
          "$ref": "#/definitions/分页结果«SysDictType»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«SysDictType»»"
    },
    "分页结果«定时任务信息»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "定时任务信息",
            "$ref": "#/definitions/定时任务信息"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«定时任务信息»"
    },
    "分页结果«定时任务执行日志»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "定时任务执行日志",
            "$ref": "#/definitions/定时任务执行日志"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«定时任务执行日志»"
    },
    "创建定时任务请求": {
      "type": "object",
      "required": [
        "cronExpression",
        "invokeTarget",
        "jobName"
      ],
      "properties": {
        "concurrent": {
          "type": "boolean",
          "example": false,
          "description": "是否允许并发执行"
        },
        "cronExpression": {
          "type": "string",
          "example": "0 0 2 * * ?",
          "description": "Cron表达式，标准6位（秒 分 时 日 月 周）"
        },
        "invokeTarget": {
          "type": "string",
          "example": "wechatSyncService.syncDepartments",
          "description": "调用目标（Bean名称.方法名），方法必须是无参公开方法"
        },
        "jobGroup": {
          "type": "string",
          "example": "SYSTEM",
          "description": "任务分组，字典类型：job_group（DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步）"
        },
        "jobName": {
          "type": "string",
          "example": "同步企微通讯录",
          "description": "任务名称"
        },
        "misfirePolicy": {
          "type": "string",
          "example": "DEFAULT",
          "description": "计划执行策略，字典类型：job_misfire_policy（DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发）"
        },
        "remark": {
          "type": "string",
          "example": "每天凌晨2点同步企微通讯录",
          "description": "备注"
        }
      },
      "title": "创建定时任务请求"
    },
    "定时任务信息": {
      "type": "object",
      "properties": {
        "concurrent": {
          "type": "boolean",
          "description": "是否允许并发执行"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "cronExpression": {
          "type": "string",
          "description": "Cron表达式"
        },
        "invokeTarget": {
          "type": "string",
          "description": "调用目标（Bean名称.方法名）"
        },
        "jobGroup": {
          "type": "string",
          "description": "任务分组"
        },
        "jobId": {
          "type": "integer",
          "format": "int64",
          "description": "任务ID"
        },
        "jobName": {
          "type": "string",
          "description": "任务名称"
        },
        "misfirePolicy": {
          "type": "string",
          "description": "计划执行策略"
        },
        "remark": {
          "type": "string",
          "description": "备注"
        },
        "status": {
          "type": "string",
          "description": "任务状态"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "定时任务信息"
    },
    "定时任务执行日志": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "endTime": {
          "type": "string",
          "format": "date-time",
          "description": "结束时间"
        },
        "invokeTarget": {
          "type": "string",
          "description": "调用目标"
        },
        "jobId": {
          "type": "integer",
          "format": "int64",
          "description": "任务ID"
        },
        "jobLogId": {
          "type": "integer",
          "format": "int64",
          "description": "日志ID"
        },
        "jobName": {
          "type": "string",
          "description": "任务名称"
        },
        "message": {
          "type": "string",
          "description": "执行结果/异常信息"
        },
        "startTime": {
          "type": "string",
          "format": "date-time",
          "description": "开始时间"
        },
        "status": {
          "type": "string",
          "description": "执行状态"
        }
      },
      "title": "定时任务执行日志"
    },
    "更新定时任务请求": {
      "type": "object",
      "properties": {
        "concurrent": {
          "type": "boolean",
          "example": false,
          "description": "是否允许并发执行"
        },
        "cronExpression": {
          "type": "string",
          "example": "0 0 2 * * ?",
          "description": "Cron表达式，标准6位（秒 分 时 日 月 周）"
        },
        "invokeTarget": {
          "type": "string",
          "example": "wechatSyncService.syncDepartments",
          "description": "调用目标（Bean名称.方法名），方法必须是无参公开方法"
        },
        "jobGroup": {
          "type": "string",
          "example": "SYSTEM",
          "description": "任务分组，字典类型：job_group（DEFAULT=默认分组, SYSTEM=系统任务, WECHAT=企微同步, INSURANCE=保险同步）"
        },
        "jobName": {
          "type": "string",
          "example": "同步企微通讯录",
          "description": "任务名称"
        },
        "misfirePolicy": {
          "type": "string",
          "example": "DEFAULT",
          "description": "计划执行策略，字典类型：job_misfire_policy（DEFAULT=默认策略, FIRE_ONCE=立即触发一次, DO_NOTHING=不触发）"
        },
        "remark": {
          "type": "string",
          "example": "每天凌晨2点同步企微通讯录",
          "description": "备注"
        }
      },
      "title": "更新定时任务请求"
    },
    "统一响应结果«分页结果«定时任务信息»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«定时任务信息»",
          "$ref": "#/definitions/分页结果«定时任务信息»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«定时任务信息»»"
    },
    "统一响应结果«分页结果«定时任务执行日志»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«定时任务执行日志»",
          "$ref": "#/definitions/分页结果«定时任务执行日志»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«定时任务执行日志»»"
    },
    "统一响应结果«定时任务信息»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "定时任务信息",
          "$ref": "#/definitions/定时任务信息"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«定时任务信息»"
    },
    "Map«string,object»": {
      "type": "object",
      "title": "Map«string,object»",
      "additionalProperties": {
        "type": "object"
      }
    },
    "WechatDepartment": {
      "type": "object",
      "properties": {
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "deptId": {
          "type": "integer",
          "format": "int64"
        },
        "deptName": {
          "type": "string"
        },
        "orderIndex": {
          "type": "integer",
          "format": "int32"
        },
        "parentId": {
          "type": "integer",
          "format": "int64"
        },
        "status": {
          "type": "string"
        },
        "syncedAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        }
      },
      "title": "WechatDepartment"
    },
    "WechatUser": {
      "type": "object",
      "properties": {
        "avatar": {
          "type": "string"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time"
        },
        "deptIds": {
          "type": "string"
        },
        "deptNames": {
          "type": "string"
        },
        "email": {
          "type": "string"
        },
        "gender": {
          "type": "integer",
          "format": "int32"
        },
        "mobile": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "position": {
          "type": "string"
        },
        "status": {
          "type": "integer",
          "format": "int32"
        },
        "syncedAt": {
          "type": "string",
          "format": "date-time"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time"
        },
        "userid": {
          "type": "string"
        }
      },
      "title": "WechatUser"
    },
    "分页结果«WechatUser»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "WechatUser",
            "$ref": "#/definitions/WechatUser"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«WechatUser»"
    },
    "统一响应结果«List«Map«string,object»»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "Map«string,object»",
            "$ref": "#/definitions/Map«string,object»"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«Map«string,object»»»"
    },
    "统一响应结果«List«WechatDepartment»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "array",
          "description": "响应数据",
          "items": {
            "originalRef": "WechatDepartment",
            "$ref": "#/definitions/WechatDepartment"
          }
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«List«WechatDepartment»»"
    },
    "统一响应结果«分页结果«WechatUser»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«WechatUser»",
          "$ref": "#/definitions/分页结果«WechatUser»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«WechatUser»»"
    },
    "Map«string,object»_1": {
      "type": "object",
      "title": "Map«string,object»_1",
      "additionalProperties": {
        "type": "object"
      }
    },
    "Map«string,object»_2": {
      "type": "object",
      "title": "Map«string,object»_2",
      "additionalProperties": {
        "type": "object"
      }
    },
    "Map«string,object»_3": {
      "type": "object",
      "title": "Map«string,object»_3",
      "additionalProperties": {
        "type": "object"
      }
    },
    "Map«string,object»_4": {
      "type": "object",
      "title": "Map«string,object»_4",
      "additionalProperties": {
        "type": "object"
      }
    },
    "个人资料VO（角色感知）": {
      "type": "object",
      "properties": {
        "adminId": {
          "type": "string",
          "description": "管理员用户ID"
        },
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "certLevel": {
          "type": "string",
          "description": "认证等级（定制师专属）"
        },
        "certified": {
          "type": "boolean",
          "description": "是否已认证（定制师专属）"
        },
        "contactQrUrl": {
          "type": "string",
          "description": "企业微信联系二维码URL"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "description": {
          "type": "string",
          "description": "个人简介（定制师专属）"
        },
        "experience": {
          "type": "integer",
          "format": "int32",
          "description": "从业年限（定制师专属）"
        },
        "isFeatured": {
          "type": "boolean",
          "description": "是否推荐（定制师专属）"
        },
        "motto": {
          "type": "string",
          "description": "座右铭（定制师专属）"
        },
        "name": {
          "type": "string",
          "description": "姓名"
        },
        "phone": {
          "type": "string",
          "description": "手机号"
        },
        "role": {
          "type": "string",
          "description": "当前角色key"
        },
        "roleName": {
          "type": "string",
          "description": "角色中文名"
        },
        "serviceAreas": {
          "type": "array",
          "description": "服务区域（定制师专属）",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "展示排序（定制师专属）"
        },
        "specialties": {
          "type": "array",
          "description": "擅长领域（定制师专属）",
          "items": {
            "type": "string"
          }
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "个人资料VO（角色感知）"
    },
    "产品统计": {
      "type": "object",
      "properties": {
        "publishedProducts": {
          "type": "integer",
          "format": "int32",
          "description": "已上架产品数"
        },
        "totalProducts": {
          "type": "integer",
          "format": "int32",
          "description": "产品总数"
        }
      },
      "title": "产品统计"
    },
    "分页结果«Map«string,object»»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "Map«string,object»",
            "$ref": "#/definitions/Map«string,object»"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«Map«string,object»»"
    },
    "定制师个人资料VO": {
      "type": "object",
      "properties": {
        "adminId": {
          "type": "string",
          "description": "管理员用户ID"
        },
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "certLevel": {
          "type": "string",
          "description": "认证等级：none/bronze/silver/gold/diamond"
        },
        "certified": {
          "type": "boolean",
          "description": "是否已认证"
        },
        "contactQrUrl": {
          "type": "string",
          "description": "企业微信联系二维码URL"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "description": {
          "type": "string",
          "description": "个人简介"
        },
        "experience": {
          "type": "integer",
          "format": "int32",
          "description": "从业年限"
        },
        "isFeatured": {
          "type": "boolean",
          "description": "是否推荐"
        },
        "motto": {
          "type": "string",
          "description": "座右铭"
        },
        "name": {
          "type": "string",
          "description": "姓名（优先取企微名称，否则管理员用户名）"
        },
        "phone": {
          "type": "string",
          "description": "手机号"
        },
        "serviceAreas": {
          "type": "array",
          "description": "服务区域列表",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "description": "展示排序"
        },
        "specialties": {
          "type": "array",
          "description": "擅长领域列表",
          "items": {
            "type": "string"
          }
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        }
      },
      "title": "定制师个人资料VO"
    },
    "定制师工作台VO（重构版）": {
      "type": "object",
      "properties": {
        "calendarEvents": {
          "type": "array",
          "description": "日历事件",
          "items": {
            "originalRef": "Map«string,object»",
            "$ref": "#/definitions/Map«string,object»"
          }
        },
        "customerStats": {
          "description": "客户统计",
          "originalRef": "客户统计",
          "$ref": "#/definitions/客户统计"
        },
        "funnel": {
          "type": "object",
          "description": "转化漏斗"
        },
        "overview": {
          "description": "数据概览",
          "originalRef": "数据概览",
          "$ref": "#/definitions/数据概览"
        },
        "productStats": {
          "description": "产品统计",
          "originalRef": "产品统计",
          "$ref": "#/definitions/产品统计"
        },
        "ranking": {
          "type": "array",
          "description": "本月业绩排行",
          "items": {
            "originalRef": "Map«string,object»",
            "$ref": "#/definitions/Map«string,object»"
          }
        },
        "reviewStats": {
          "description": "评价统计",
          "originalRef": "评价统计",
          "$ref": "#/definitions/评价统计"
        },
        "shortcuts": {
          "type": "array",
          "description": "快捷入口列表",
          "items": {
            "originalRef": "快捷入口",
            "$ref": "#/definitions/快捷入口"
          }
        },
        "todos": {
          "type": "object",
          "description": "待办汇总"
        },
        "trend": {
          "type": "array",
          "description": "数据趋势（按天）",
          "items": {
            "originalRef": "Map«string,object»",
            "$ref": "#/definitions/Map«string,object»"
          }
        },
        "upcomingTrips": {
          "type": "array",
          "description": "即将出行列表",
          "items": {
            "originalRef": "Map«string,object»",
            "$ref": "#/definitions/Map«string,object»"
          }
        }
      },
      "title": "定制师工作台VO（重构版）"
    },
    "客户统计": {
      "type": "object",
      "properties": {
        "customerAddCount": {
          "type": "integer",
          "format": "int32",
          "description": "新增客户数"
        },
        "customerLossCount": {
          "type": "integer",
          "format": "int32",
          "description": "客户流失数"
        }
      },
      "title": "客户统计"
    },
    "快捷入口": {
      "type": "object",
      "properties": {
        "icon": {
          "type": "string",
          "description": "图标"
        },
        "name": {
          "type": "string",
          "description": "名称"
        },
        "path": {
          "type": "string",
          "description": "路径"
        }
      },
      "title": "快捷入口"
    },
    "数据概览": {
      "type": "object",
      "properties": {
        "gmv": {
          "type": "number",
          "description": "当期GMV"
        },
        "gmvDiffRate": {
          "type": "number",
          "description": "与前一期GMV增长率"
        },
        "orderCount": {
          "type": "integer",
          "format": "int64",
          "description": "当期订单数"
        },
        "orderCountDiff": {
          "type": "integer",
          "format": "int64",
          "description": "与前一期订单数差值"
        },
        "period": {
          "type": "string",
          "description": "当期时间范围"
        }
      },
      "title": "数据概览"
    },
    "更新定制师个人资料请求": {
      "type": "object",
      "properties": {
        "certLevel": {
          "type": "string",
          "example": "gold",
          "description": "认证等级：none/bronze/silver/gold/diamond"
        },
        "certified": {
          "type": "boolean",
          "example": true,
          "description": "是否已认证"
        },
        "description": {
          "type": "string",
          "example": "10年+旅行定制师",
          "description": "个人简介"
        },
        "experience": {
          "type": "integer",
          "format": "int32",
          "example": 5,
          "description": "从业年限"
        },
        "isFeatured": {
          "type": "boolean",
          "example": false,
          "description": "是否推荐"
        },
        "motto": {
          "type": "string",
          "example": "让每一次旅行都值得回忆",
          "description": "座右铭"
        },
        "serviceAreas": {
          "type": "array",
          "example": [
            "西南地区",
            "华中地区"
          ],
          "description": "服务区域列表",
          "items": {
            "type": "string"
          }
        },
        "sortOrder": {
          "type": "integer",
          "format": "int32",
          "example": 0,
          "description": "展示排序"
        },
        "specialties": {
          "type": "array",
          "example": [
            "云南",
            "西藏"
          ],
          "description": "擅长领域列表",
          "items": {
            "type": "string"
          }
        }
      },
      "title": "更新定制师个人资料请求"
    },
    "统一响应结果«object»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "type": "object",
          "description": "响应数据"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«object»"
    },
    "统一响应结果«个人资料VO（角色感知）»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "个人资料VO（角色感知）",
          "$ref": "#/definitions/个人资料VO（角色感知）"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«个人资料VO（角色感知）»"
    },
    "统一响应结果«分页结果«Map«string,object»»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«Map«string,object»»",
          "$ref": "#/definitions/分页结果«Map«string,object»»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«Map«string,object»»»"
    },
    "统一响应结果«定制师个人资料VO»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "定制师个人资料VO",
          "$ref": "#/definitions/定制师个人资料VO"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«定制师个人资料VO»"
    },
    "统一响应结果«定制师工作台VO（重构版）»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "定制师工作台VO（重构版）",
          "$ref": "#/definitions/定制师工作台VO（重构版）"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«定制师工作台VO（重构版）»"
    },
    "评价统计": {
      "type": "object",
      "properties": {
        "averageRating": {
          "type": "number",
          "description": "平均评分(1-5)"
        },
        "goodRate": {
          "type": "number",
          "description": "好评率(%)"
        },
        "totalReviews": {
          "type": "integer",
          "format": "int32",
          "description": "评价总数"
        }
      },
      "title": "评价统计"
    },
    "分页结果«客户信息VO（管理端）»": {
      "type": "object",
      "properties": {
        "page": {
          "type": "integer",
          "format": "int32",
          "example": 1,
          "description": "当前页码"
        },
        "pageSize": {
          "type": "integer",
          "format": "int32",
          "example": 20,
          "description": "每页条数"
        },
        "records": {
          "type": "array",
          "description": "数据列表",
          "items": {
            "originalRef": "客户信息VO（管理端）",
            "$ref": "#/definitions/客户信息VO（管理端）"
          }
        },
        "total": {
          "type": "integer",
          "format": "int32",
          "example": 100,
          "description": "总记录数"
        }
      },
      "title": "分页结果«客户信息VO（管理端）»"
    },
    "客户信息VO（管理端）": {
      "type": "object",
      "properties": {
        "avatar": {
          "type": "string",
          "description": "头像URL"
        },
        "createdAt": {
          "type": "string",
          "format": "date-time",
          "description": "创建时间"
        },
        "nickname": {
          "type": "string",
          "description": "昵称"
        },
        "phone": {
          "type": "string",
          "description": "手机号（不脱敏）"
        },
        "status": {
          "type": "string",
          "description": "状态，关联字典user_status：ACTIVE=正常, BANNED=已封禁"
        },
        "updatedAt": {
          "type": "string",
          "format": "date-time",
          "description": "更新时间"
        },
        "userId": {
          "type": "integer",
          "format": "int64",
          "description": "用户ID"
        }
      },
      "title": "客户信息VO（管理端）"
    },
    "统一响应结果«分页结果«客户信息VO（管理端）»»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "分页结果«客户信息VO（管理端）»",
          "$ref": "#/definitions/分页结果«客户信息VO（管理端）»"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«分页结果«客户信息VO（管理端）»»"
    },
    "统一响应结果«客户信息VO（管理端）»": {
      "type": "object",
      "properties": {
        "code": {
          "type": "integer",
          "format": "int32",
          "example": 200,
          "description": "状态码"
        },
        "data": {
          "description": "响应数据",
          "originalRef": "客户信息VO（管理端）",
          "$ref": "#/definitions/客户信息VO（管理端）"
        },
        "message": {
          "type": "string",
          "example": "成功",
          "description": "响应消息"
        },
        "success": {
          "type": "boolean"
        }
      },
      "title": "统一响应结果«客户信息VO（管理端）»"
    }
  }
}