diff --git a/.swagger/hl-user-service.json b/.swagger/hl-user-service.json index e69de29..75a27b1 100644 --- a/.swagger/hl-user-service.json +++ b/.swagger/hl-user-service.json @@ -0,0 +1,14895 @@ +{ + "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": { + "$ref": "#/definitions/统一响应结果«List«字典VO»»", + "originalRef": "统一响应结果«List«字典VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«字典VO»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«Favorite»»", + "originalRef": "统一响应结果«分页结果«Favorite»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Favorite»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/收藏请求", + "originalRef": "收藏请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Favorite»", + "originalRef": "统一响应结果«Favorite»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Favorite»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«boolean»", + "originalRef": "统一响应结果«boolean»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«boolean»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«Footprint»»", + "originalRef": "统一响应结果«分页结果«Footprint»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Footprint»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/足迹请求", + "originalRef": "足迹请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Footprint»", + "originalRef": "统一响应结果«Footprint»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Footprint»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/微信小程序登录请求", + "originalRef": "微信小程序登录请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户登录响应»", + "originalRef": "统一响应结果«用户登录响应»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户登录响应»", + "originalRef": "统一响应结果«用户登录响应»" + } + }, + "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": { + "$ref": "#/definitions/短信验证码登录请求", + "originalRef": "短信验证码登录请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户登录响应»", + "originalRef": "统一响应结果«用户登录响应»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户登录响应»", + "originalRef": "统一响应结果«用户登录响应»" + } + }, + "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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«用户信息VO»", + "originalRef": "统一响应结果«用户信息VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户信息VO»", + "originalRef": "统一响应结果«用户信息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": { + "$ref": "#/definitions/更新用户资料请求", + "originalRef": "更新用户资料请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户信息VO»", + "originalRef": "统一响应结果«用户信息VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«用户信息VO»", + "originalRef": "统一响应结果«用户信息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": { + "$ref": "#/definitions/发送短信验证码请求", + "originalRef": "发送短信验证码请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«Traveler»»", + "originalRef": "统一响应结果«List«Traveler»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«Traveler»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/出行人请求", + "originalRef": "出行人请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Traveler»", + "originalRef": "统一响应结果«Traveler»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Traveler»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Traveler»", + "originalRef": "统一响应结果«Traveler»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Traveler»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/出行人请求", + "originalRef": "出行人请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Traveler»", + "originalRef": "统一响应结果«Traveler»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Traveler»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«AdminUser»»", + "originalRef": "统一响应结果«分页结果«AdminUser»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«AdminUser»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/创建管理员请求", + "originalRef": "创建管理员请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«AdminUser»", + "originalRef": "统一响应结果«AdminUser»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«AdminUser»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«旅行设计师VO»»", + "originalRef": "统一响应结果«List«旅行设计师VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«旅行设计师VO»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«AdminUser»", + "originalRef": "统一响应结果«AdminUser»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«AdminUser»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/更新管理员请求", + "originalRef": "更新管理员请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«AdminUser»", + "originalRef": "统一响应结果«AdminUser»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«AdminUser»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/企业微信绑定请求", + "originalRef": "企业微信绑定请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«Banner VO»»", + "originalRef": "统一响应结果«分页结果«Banner VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Banner VO»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/Banner请求", + "originalRef": "Banner请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Banner VO»", + "originalRef": "统一响应结果«Banner VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Banner VO»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Banner VO»", + "originalRef": "统一响应结果«Banner VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Banner VO»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/Banner请求", + "originalRef": "Banner请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Banner VO»", + "originalRef": "统一响应结果«Banner VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Banner VO»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«联系我们 VO»»", + "originalRef": "统一响应结果«分页结果«联系我们 VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«联系我们 VO»»", + "originalRef": "统一响应结果«分页结果«联系我们 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": { + "$ref": "#/definitions/联系我们请求", + "originalRef": "联系我们请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«联系我们 VO»", + "originalRef": "统一响应结果«联系我们 VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«联系我们 VO»", + "originalRef": "统一响应结果«联系我们 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": { + "$ref": "#/definitions/统一响应结果«联系我们 VO»", + "originalRef": "统一响应结果«联系我们 VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«联系我们 VO»", + "originalRef": "统一响应结果«联系我们 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": { + "$ref": "#/definitions/联系我们请求", + "originalRef": "联系我们请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«联系我们 VO»", + "originalRef": "统一响应结果«联系我们 VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«联系我们 VO»", + "originalRef": "统一响应结果«联系我们 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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«探索分类 VO»»", + "originalRef": "统一响应结果«分页结果«探索分类 VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«探索分类 VO»»", + "originalRef": "统一响应结果«分页结果«探索分类 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": { + "$ref": "#/definitions/探索分类请求", + "originalRef": "探索分类请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«探索分类详情 VO»", + "originalRef": "统一响应结果«探索分类详情 VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«探索分类详情 VO»", + "originalRef": "统一响应结果«探索分类详情 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": { + "$ref": "#/definitions/探索分类请求", + "originalRef": "探索分类请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«前端配置 VO»»", + "originalRef": "统一响应结果«分页结果«前端配置 VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«前端配置 VO»»", + "originalRef": "统一响应结果«分页结果«前端配置 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": { + "$ref": "#/definitions/前端配置请求", + "originalRef": "前端配置请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 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": { + "$ref": "#/definitions/统一响应结果«List«前端配置 VO»»", + "originalRef": "统一响应结果«List«前端配置 VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«前端配置 VO»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 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": { + "$ref": "#/definitions/统一响应结果«List«string»»", + "originalRef": "统一响应结果«List«string»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«string»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 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": { + "$ref": "#/definitions/前端配置请求", + "originalRef": "前端配置请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«前端配置 VO»", + "originalRef": "统一响应结果«前端配置 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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«常见问题分类VO»»", + "originalRef": "统一响应结果«List«常见问题分类VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«常见问题分类VO»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/常见问题分类请求", + "originalRef": "常见问题分类请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题分类VO»", + "originalRef": "统一响应结果«常见问题分类VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题分类VO»", + "originalRef": "统一响应结果«常见问题分类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": { + "$ref": "#/definitions/常见问题分类请求", + "originalRef": "常见问题分类请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题分类VO»", + "originalRef": "统一响应结果«常见问题分类VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题分类VO»", + "originalRef": "统一响应结果«常见问题分类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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«常见问题条目VO»»", + "originalRef": "统一响应结果«List«常见问题条目VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«常见问题条目VO»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/常见问题条目请求", + "originalRef": "常见问题条目请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题条目VO»", + "originalRef": "统一响应结果«常见问题条目VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题条目VO»", + "originalRef": "统一响应结果«常见问题条目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": { + "$ref": "#/definitions/常见问题条目请求", + "originalRef": "常见问题条目请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题条目VO»", + "originalRef": "统一响应结果«常见问题条目VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«常见问题条目VO»", + "originalRef": "统一响应结果«常见问题条目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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«协议 VO»»", + "originalRef": "统一响应结果«分页结果«协议 VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«协议 VO»»", + "originalRef": "统一响应结果«分页结果«协议 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": { + "$ref": "#/definitions/协议请求", + "originalRef": "协议请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«协议 VO»", + "originalRef": "统一响应结果«协议 VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«协议 VO»", + "originalRef": "统一响应结果«协议 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": { + "$ref": "#/definitions/统一响应结果«协议 VO»", + "originalRef": "统一响应结果«协议 VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«协议 VO»", + "originalRef": "统一响应结果«协议 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": { + "$ref": "#/definitions/协议请求", + "originalRef": "协议请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«协议 VO»", + "originalRef": "统一响应结果«协议 VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«协议 VO»", + "originalRef": "统一响应结果«协议 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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/头像更新请求", + "originalRef": "头像更新请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "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": { + "$ref": "#/definitions/管理员登录请求", + "originalRef": "管理员登录请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/修改密码请求", + "originalRef": "修改密码请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/角色切换请求", + "originalRef": "角色切换请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "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": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/二次验证请求", + "originalRef": "二次验证请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«管理员登录响应»", + "originalRef": "统一响应结果«管理员登录响应»" + } + }, + "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": { + "$ref": "#/definitions/统一响应结果«分页结果«SysRole»»", + "originalRef": "统一响应结果«分页结果«SysRole»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«SysRole»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/创建角色请求", + "originalRef": "创建角色请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysRole»", + "originalRef": "统一响应结果«SysRole»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysRole»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«SysRole»»", + "originalRef": "统一响应结果«List«SysRole»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«SysRole»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/更新角色请求", + "originalRef": "更新角色请求" + } + }, + { + "name": "roleId", + "in": "path", + "description": "角色ID", + "required": false, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysRole»", + "originalRef": "统一响应结果«SysRole»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysRole»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/分配菜单权限请求", + "originalRef": "分配菜单权限请求" + } + }, + { + "name": "roleId", + "in": "path", + "description": "角色ID", + "required": false, + "type": "integer", + "format": "int64" + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/创建菜单请求", + "originalRef": "创建菜单请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysMenu»", + "originalRef": "统一响应结果«SysMenu»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysMenu»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«SysMenu»»", + "originalRef": "统一响应结果«List«SysMenu»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«SysMenu»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«SysMenu»»", + "originalRef": "统一响应结果«List«SysMenu»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«SysMenu»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«SysMenu»»", + "originalRef": "统一响应结果«List«SysMenu»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«SysMenu»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«SysMenu»", + "originalRef": "统一响应结果«SysMenu»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysMenu»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/更新菜单请求", + "originalRef": "更新菜单请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysMenu»", + "originalRef": "统一响应结果«SysMenu»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysMenu»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«字典VO»»", + "originalRef": "统一响应结果«List«字典VO»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«字典VO»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/创建字典数据请求", + "originalRef": "创建字典数据请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictData»", + "originalRef": "统一响应结果«SysDictData»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictData»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«SysDictData»", + "originalRef": "统一响应结果«SysDictData»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictData»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«SysDictData»»", + "originalRef": "统一响应结果«List«SysDictData»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«SysDictData»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«SysDictData»»", + "originalRef": "统一响应结果«List«SysDictData»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«SysDictData»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/更新字典数据请求", + "originalRef": "更新字典数据请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictData»", + "originalRef": "统一响应结果«SysDictData»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictData»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«SysDictType»»", + "originalRef": "统一响应结果«分页结果«SysDictType»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«SysDictType»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/创建字典类型请求", + "originalRef": "创建字典类型请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictType»", + "originalRef": "统一响应结果«SysDictType»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictType»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«SysDictType»", + "originalRef": "统一响应结果«SysDictType»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictType»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/更新字典类型请求", + "originalRef": "更新字典类型请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictType»", + "originalRef": "统一响应结果«SysDictType»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«SysDictType»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«定时任务信息»»", + "originalRef": "统一响应结果«分页结果«定时任务信息»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«定时任务信息»»", + "originalRef": "统一响应结果«分页结果«定时任务信息»»" + } + }, + "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": { + "$ref": "#/definitions/创建定时任务请求", + "originalRef": "创建定时任务请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定时任务信息»", + "originalRef": "统一响应结果«定时任务信息»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定时任务信息»", + "originalRef": "统一响应结果«定时任务信息»" + } + }, + "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": { + "$ref": "#/definitions/更新定时任务请求", + "originalRef": "更新定时任务请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定时任务信息»", + "originalRef": "统一响应结果«定时任务信息»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定时任务信息»", + "originalRef": "统一响应结果«定时任务信息»" + } + }, + "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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "204": { + "description": "No Content" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«定时任务执行日志»»", + "originalRef": "统一响应结果«分页结果«定时任务执行日志»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«定时任务执行日志»»", + "originalRef": "统一响应结果«分页结果«定时任务执行日志»»" + } + }, + "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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«WechatDepartment»»", + "originalRef": "统一响应结果«List«WechatDepartment»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«WechatDepartment»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", + "originalRef": "统一响应结果«List«Map«string,object»»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«List«Map«string,object»»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«Map«string,object»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Map«string,object»»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«WechatUser»»", + "originalRef": "统一响应结果«分页结果«WechatUser»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«WechatUser»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/统一响应结果«定制师工作台VO(重构版)»", + "originalRef": "统一响应结果«定制师工作台VO(重构版)»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定制师工作台VO(重构版)»", + "originalRef": "统一响应结果«定制师工作台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": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«Map«string,object»»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«Map«string,object»»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/统一响应结果«定制师个人资料VO»", + "originalRef": "统一响应结果«定制师个人资料VO»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定制师个人资料VO»", + "originalRef": "统一响应结果«定制师个人资料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": { + "$ref": "#/definitions/更新定制师个人资料请求", + "originalRef": "更新定制师个人资料请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定制师个人资料VO»", + "originalRef": "统一响应结果«定制师个人资料VO»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«定制师个人资料VO»", + "originalRef": "统一响应结果«定制师个人资料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": { + "$ref": "#/definitions/统一响应结果«object»", + "originalRef": "统一响应结果«object»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«object»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«个人资料VO(角色感知)»", + "originalRef": "统一响应结果«个人资料VO(角色感知)»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«个人资料VO(角色感知)»", + "originalRef": "统一响应结果«个人资料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": { + "$ref": "#/definitions/更新定制师个人资料请求", + "originalRef": "更新定制师个人资料请求" + } + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«个人资料VO(角色感知)»", + "originalRef": "统一响应结果«个人资料VO(角色感知)»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«个人资料VO(角色感知)»", + "originalRef": "统一响应结果«个人资料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": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«Map«string,object»»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«Map«string,object»»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«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": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«Map«string,object»»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«Map«string,object»»»", + "originalRef": "统一响应结果«分页结果«Map«string,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": { + "$ref": "#/definitions/统一响应结果«分页结果«客户信息VO(管理端)»»", + "originalRef": "统一响应结果«分页结果«客户信息VO(管理端)»»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«分页结果«客户信息VO(管理端)»»", + "originalRef": "统一响应结果«分页结果«客户信息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": { + "$ref": "#/definitions/统一响应结果«客户信息VO(管理端)»", + "originalRef": "统一响应结果«客户信息VO(管理端)»" + } + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«客户信息VO(管理端)»", + "originalRef": "统一响应结果«客户信息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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«Void»" + } + }, + "201": { + "description": "Created" + }, + "401": { + "description": "Unauthorized" + }, + "403": { + "description": "Forbidden" + }, + "404": { + "description": "Not Found" + } + }, + "responsesObject": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/统一响应结果«Void»", + "originalRef": "统一响应结果«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": "integer", + "format": "int32" + }, + "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": [ + "birthday", + "name" + ], + "properties": { + "birthday": { + "type": "string", + "format": "date", + "example": "1990-01-01", + "description": "出生日期(必填,后端根据此字段自动判断人员类型)" + }, + "email": { + "type": "string", + "example": "zhangsan@example.com", + "description": "邮箱" + }, + "emergencyContact": { + "type": "string", + "example": "李四", + "description": "紧急联系人姓名" + }, + "emergencyPhone": { + "type": "string", + "example": 13900139000, + "description": "紧急联系人电话" + }, + "gender": { + "type": "integer", + "format": "int32", + "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": { + "$ref": "#/definitions/Favorite", + "originalRef": "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": { + "$ref": "#/definitions/Footprint", + "originalRef": "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": { + "$ref": "#/definitions/字典数据项VO", + "originalRef": "字典数据项VO" + } + }, + "dictName": { + "type": "string", + "description": "字典名称" + }, + "dictType": { + "type": "string", + "description": "字典类型标识" + } + }, + "title": "字典VO" + }, + "字典数据项VO": { + "type": "object", + "properties": { + "dictLabel": { + "type": "string", + "description": "字典标签" + }, + "dictValue": { + "type": "string", + "description": "字典值" + }, + "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": "响应数据", + "$ref": "#/definitions/Favorite", + "originalRef": "Favorite" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«Favorite»" + }, + "统一响应结果«Footprint»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/Footprint", + "originalRef": "Footprint" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«Footprint»" + }, + "统一响应结果«List«Traveler»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "array", + "description": "响应数据", + "items": { + "$ref": "#/definitions/Traveler", + "originalRef": "Traveler" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«Traveler»»" + }, + "统一响应结果«List«字典VO»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "array", + "description": "响应数据", + "items": { + "$ref": "#/definitions/字典VO", + "originalRef": "字典VO" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«字典VO»»" + }, + "统一响应结果«Traveler»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/Traveler", + "originalRef": "Traveler" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«Traveler»" + }, + "统一响应结果«Void»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«Void»" + }, + "统一响应结果«boolean»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "boolean", + "description": "响应数据" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«boolean»" + }, + "统一响应结果«分页结果«Favorite»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«Favorite»", + "originalRef": "分页结果«Favorite»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«Favorite»»" + }, + "统一响应结果«分页结果«Footprint»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«Footprint»", + "originalRef": "分页结果«Footprint»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«Footprint»»" + }, + "统一响应结果«用户信息VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/用户信息VO", + "originalRef": "用户信息VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«用户信息VO»" + }, + "统一响应结果«用户登录响应»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/用户登录响应", + "originalRef": "用户登录响应" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/SysRole", + "originalRef": "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": { + "$ref": "#/definitions/AdminUser", + "originalRef": "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": "响应数据", + "$ref": "#/definitions/AdminUser", + "originalRef": "AdminUser" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«AdminUser»" + }, + "统一响应结果«List«旅行设计师VO»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "array", + "description": "响应数据", + "items": { + "$ref": "#/definitions/旅行设计师VO", + "originalRef": "旅行设计师VO" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": "响应消息" + } + }, + "title": "统一响应结果«Map«string,object»»" + }, + "统一响应结果«分页结果«AdminUser»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«AdminUser»", + "originalRef": "分页结果«AdminUser»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/Banner VO", + "originalRef": "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": "响应数据", + "$ref": "#/definitions/Banner VO", + "originalRef": "Banner VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«Banner VO»" + }, + "统一响应结果«分页结果«Banner VO»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«Banner VO»", + "originalRef": "分页结果«Banner VO»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/联系我们 VO", + "originalRef": "联系我们 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": "响应数据", + "$ref": "#/definitions/分页结果«联系我们 VO»", + "originalRef": "分页结果«联系我们 VO»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«联系我们 VO»»" + }, + "统一响应结果«联系我们 VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/联系我们 VO", + "originalRef": "联系我们 VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/探索分类 VO", + "originalRef": "探索分类 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": { + "$ref": "#/definitions/探索分类关联资源项", + "originalRef": "探索分类关联资源项" + } + }, + "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": { + "$ref": "#/definitions/探索分类资源请求", + "originalRef": "探索分类资源请求" + } + }, + "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": "响应数据", + "$ref": "#/definitions/分页结果«探索分类 VO»", + "originalRef": "分页结果«探索分类 VO»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«探索分类 VO»»" + }, + "统一响应结果«探索分类详情 VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/探索分类详情 VO", + "originalRef": "探索分类详情 VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/前端配置 VO", + "originalRef": "前端配置 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": "响应消息" + } + }, + "title": "统一响应结果«List«string»»" + }, + "统一响应结果«List«前端配置 VO»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "array", + "description": "响应数据", + "items": { + "$ref": "#/definitions/前端配置 VO", + "originalRef": "前端配置 VO" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«前端配置 VO»»" + }, + "统一响应结果«分页结果«前端配置 VO»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«前端配置 VO»", + "originalRef": "分页结果«前端配置 VO»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«前端配置 VO»»" + }, + "统一响应结果«前端配置 VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/前端配置 VO", + "originalRef": "前端配置 VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/常见问题条目VO", + "originalRef": "常见问题条目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": { + "$ref": "#/definitions/常见问题分类VO", + "originalRef": "常见问题分类VO" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«常见问题分类VO»»" + }, + "统一响应结果«List«常见问题条目VO»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "array", + "description": "响应数据", + "items": { + "$ref": "#/definitions/常见问题条目VO", + "originalRef": "常见问题条目VO" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«常见问题条目VO»»" + }, + "统一响应结果«常见问题分类VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/常见问题分类VO", + "originalRef": "常见问题分类VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«常见问题分类VO»" + }, + "统一响应结果«常见问题条目VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/常见问题条目VO", + "originalRef": "常见问题条目VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/协议 VO", + "originalRef": "协议 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": "响应数据", + "$ref": "#/definitions/分页结果«协议 VO»", + "originalRef": "分页结果«协议 VO»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«协议 VO»»" + }, + "统一响应结果«协议 VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/协议 VO", + "originalRef": "协议 VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/角色信息", + "originalRef": "角色信息" + } + }, + "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": "响应数据", + "$ref": "#/definitions/管理员登录响应", + "originalRef": "管理员登录响应" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/SysRole", + "originalRef": "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": { + "$ref": "#/definitions/SysRole", + "originalRef": "SysRole" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«SysRole»»" + }, + "统一响应结果«SysRole»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/SysRole", + "originalRef": "SysRole" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«SysRole»" + }, + "统一响应结果«分页结果«SysRole»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«SysRole»", + "originalRef": "分页结果«SysRole»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«SysRole»»" + }, + "SysMenu": { + "type": "object", + "properties": { + "children": { + "type": "array", + "items": { + "$ref": "#/definitions/SysMenu", + "originalRef": "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": { + "$ref": "#/definitions/SysMenu", + "originalRef": "SysMenu" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«SysMenu»»" + }, + "统一响应结果«SysMenu»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/SysMenu", + "originalRef": "SysMenu" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/SysDictType", + "originalRef": "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": { + "$ref": "#/definitions/SysDictData", + "originalRef": "SysDictData" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«SysDictData»»" + }, + "统一响应结果«SysDictData»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/SysDictData", + "originalRef": "SysDictData" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«SysDictData»" + }, + "统一响应结果«SysDictType»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/SysDictType", + "originalRef": "SysDictType" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«SysDictType»" + }, + "统一响应结果«分页结果«SysDictType»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«SysDictType»", + "originalRef": "分页结果«SysDictType»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/定时任务信息", + "originalRef": "定时任务信息" + } + }, + "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": { + "$ref": "#/definitions/定时任务执行日志", + "originalRef": "定时任务执行日志" + } + }, + "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": "响应数据", + "$ref": "#/definitions/分页结果«定时任务信息»", + "originalRef": "分页结果«定时任务信息»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«定时任务信息»»" + }, + "统一响应结果«分页结果«定时任务执行日志»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«定时任务执行日志»", + "originalRef": "分页结果«定时任务执行日志»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«定时任务执行日志»»" + }, + "统一响应结果«定时任务信息»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/定时任务信息", + "originalRef": "定时任务信息" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/WechatUser", + "originalRef": "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": { + "$ref": "#/definitions/Map«string,object»", + "originalRef": "Map«string,object»" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«Map«string,object»»»" + }, + "统一响应结果«List«WechatDepartment»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "type": "array", + "description": "响应数据", + "items": { + "$ref": "#/definitions/WechatDepartment", + "originalRef": "WechatDepartment" + } + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«List«WechatDepartment»»" + }, + "统一响应结果«分页结果«WechatUser»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«WechatUser»", + "originalRef": "分页结果«WechatUser»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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" + } + }, + "Map«string,object»_5": { + "type": "object", + "title": "Map«string,object»_5", + "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": { + "$ref": "#/definitions/Map«string,object»", + "originalRef": "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": { + "$ref": "#/definitions/Map«string,object»", + "originalRef": "Map«string,object»" + } + }, + "customerStats": { + "description": "客户统计", + "$ref": "#/definitions/客户统计", + "originalRef": "客户统计" + }, + "funnel": { + "type": "object", + "description": "转化漏斗" + }, + "overview": { + "description": "数据概览", + "$ref": "#/definitions/数据概览", + "originalRef": "数据概览" + }, + "productStats": { + "description": "产品统计", + "$ref": "#/definitions/产品统计", + "originalRef": "产品统计" + }, + "ranking": { + "type": "array", + "description": "本月业绩排行", + "items": { + "$ref": "#/definitions/Map«string,object»", + "originalRef": "Map«string,object»" + } + }, + "reviewStats": { + "description": "评价统计", + "$ref": "#/definitions/评价统计", + "originalRef": "评价统计" + }, + "shortcuts": { + "type": "array", + "description": "快捷入口列表", + "items": { + "$ref": "#/definitions/快捷入口", + "originalRef": "快捷入口" + } + }, + "todos": { + "type": "object", + "description": "待办汇总" + }, + "trend": { + "type": "array", + "description": "数据趋势(按天)", + "items": { + "$ref": "#/definitions/Map«string,object»", + "originalRef": "Map«string,object»" + } + }, + "upcomingTrips": { + "type": "array", + "description": "即将出行列表", + "items": { + "$ref": "#/definitions/Map«string,object»", + "originalRef": "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": "响应消息" + } + }, + "title": "统一响应结果«object»" + }, + "统一响应结果«个人资料VO(角色感知)»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/个人资料VO(角色感知)", + "originalRef": "个人资料VO(角色感知)" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«个人资料VO(角色感知)»" + }, + "统一响应结果«分页结果«Map«string,object»»»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/分页结果«Map«string,object»»", + "originalRef": "分页结果«Map«string,object»»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«Map«string,object»»»" + }, + "统一响应结果«定制师个人资料VO»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/定制师个人资料VO", + "originalRef": "定制师个人资料VO" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«定制师个人资料VO»" + }, + "统一响应结果«定制师工作台VO(重构版)»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/定制师工作台VO(重构版)", + "originalRef": "定制师工作台VO(重构版)" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "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": { + "$ref": "#/definitions/客户信息VO(管理端)", + "originalRef": "客户信息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": "响应数据", + "$ref": "#/definitions/分页结果«客户信息VO(管理端)»", + "originalRef": "分页结果«客户信息VO(管理端)»" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«分页结果«客户信息VO(管理端)»»" + }, + "统一响应结果«客户信息VO(管理端)»": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32", + "example": 200, + "description": "状态码" + }, + "data": { + "description": "响应数据", + "$ref": "#/definitions/客户信息VO(管理端)", + "originalRef": "客户信息VO(管理端)" + }, + "message": { + "type": "string", + "example": "成功", + "description": "响应消息" + } + }, + "title": "统一响应结果«客户信息VO(管理端)»" + } + } +} \ No newline at end of file diff --git a/changelogs/2026-03/2026-03-18_1537_d8a2efc_feat.md b/changelogs/2026-03/2026-03-18_1537_d8a2efc_feat.md new file mode 100644 index 0000000..b36b34f --- /dev/null +++ b/changelogs/2026-03/2026-03-18_1537_d8a2efc_feat.md @@ -0,0 +1,34 @@ +# 接口变更记录 — 2026-03-18 15:37 + +> **提交** `d8a2efc` · **作者** wx · **时间** 2026-03-18 15:37:34 +0800 +> +> feat: 小蒙马产品列表直接包含团期数据,删除套餐/报价/日历独立接口 + +## 变更总览 + +- **小程序聚合服务** + - MpProduct (-3) + +--- + +## 小程序聚合服务 + +### MpProduct + +> 📖 **接口文档**: [http://192.168.100.236:8086/doc.html](http://192.168.100.236:8086/doc.html) → 标签 **「C端 - 产品接口」** + +### ❌ ~~`GET` /mp/product/{productId}/group-quote — GROUP报价~~ + +### ❌ ~~`GET` /mp/product/{productId}/batch-calendar — GROUP批次日历~~ + +### ❌ ~~`GET` /mp/product/batch/{batchId}/combos — GROUP批次套餐列表~~ + +--- + +
+📁 全部变更文件 (点击展开) + +``` +M hl-mp-service/src/main/java/com/hulalv/mp/controller/MpProductController.java +``` +
\ No newline at end of file