diff --git a/.env.development b/.env.development index f749840..2e63792 100644 --- a/.env.development +++ b/.env.development @@ -1,4 +1,3 @@ VITE_API_BASE_URL=http://192.168.0.222:8082 VITE_API_PROXY_TARGET=http://192.168.0.222:8082 -VITE_AGREEMENT_ID_SERVICE=0 -VITE_AGREEMENT_ID_PRIVACY=0 +VITE_API_CLIENT_ID=app diff --git a/.env.example b/.env.example index 41100fa..6b3e71f 100644 --- a/.env.example +++ b/.env.example @@ -4,6 +4,9 @@ VITE_API_BASE_URL=http://192.168.0.222:8082 # H5 开发:BASE_URL 留空时可走 vite 代理 /app VITE_API_PROXY_TARGET=http://192.168.0.222:8082 -# 协议详情 agreementId(POST /app/auth/agreement/detail) -VITE_AGREEMENT_ID_SERVICE=0 -VITE_AGREEMENT_ID_PRIVACY=0 +# RuoYi-Vue-Plus App 端 clientId(请求头 clientId) +VITE_API_CLIENT_ID=app + +# 可选:配置后详情页会通过 BLE 特征值读取设备运行数据(JSON) +# VITE_BLE_SERVICE_UUID= +# VITE_BLE_RUNTIME_CHARACTERISTIC_UUID= diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..a5db135 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,14 @@ +{ + "version" : "1.0", + "configurations" : [ + { + "customPlaygroundType" : "device", + "playground" : "standard", + "type" : "uni-app:app-ios" + }, + { + "playground" : "standard", + "type" : "uni-app:app-android" + } + ] +} diff --git a/.openapi-cache.json b/.openapi-cache.json new file mode 100644 index 0000000..1a8268e --- /dev/null +++ b/.openapi-cache.json @@ -0,0 +1 @@ +{"openapi":"3.1.0","info":{"title":"鏍囬锛歊uoYi-Vue-Plus鍚庡彴绠$悊绯荤粺_鎺ュ彛鏂囨。","description":"鎻忚堪锛氱敤浜庣鐞嗛泦鍥㈡棗涓嬪叕鍙哥殑浜哄憳淇℃伅,鍏蜂綋鍖呮嫭XXX,XXX妯″潡...","contact":{"name":"Lion Li","url":"https://gitee.com/dromara/RuoYi-Vue-Plus","email":"crazylionli@163.com"},"version":"鐗堟湰鍙? 6.0.0"},"servers":[{"url":"http://192.168.0.222:8082","description":"Generated server url"}],"tags":[{"name":"浼樺厛闃熷垪 婕旂ず妗堜緥","description":"浼樺厛闃熷垪 婕旂ず妗堜緥\n

\n 杞婚噺绾ч槦鍒?閲嶉噺绾ф暟鎹噺 璇蜂娇鐢?MQ\n

\n 闆嗙兢娴嬭瘯閫氳繃 鍚屼竴涓秷鎭彧浼氳娑堣垂涓€娆?鍋氬ソ浜嬪姟琛ュ伩\n 闆嗙兢娴嬭瘯娴佺▼ 鍦ㄥ叾涓竴鍙板彂閫佹暟鎹?涓ょ鍒嗗埆璋冪敤鑾峰彇鎺ュ彛 涓€娆¤幏鍙栦竴鏉?},{"name":"mqtt 婕旂ず妗堜緥","description":"mqtt 婕旂ず妗堜緥\n

\n 鐢ㄦ硶鏂囨。 ...\n 娴嬭瘯server鎼缓:\n 鍙墽琛屼笅杞藉叾浠杕qtt鏈嶅姟绔惌寤篭n 涔熷彲浣跨敤 mica鑷甫鐨剆erver鎼缓 ..."},{"name":"娴嬭瘯鍥介檯鍖?,"description":"娴嬭瘯鍥介檯鍖?},{"name":"宀椾綅淇℃伅鎿嶄綔澶勭悊","description":"宀椾綅淇℃伅鎿嶄綔澶勭悊"},{"name":"棣栭〉","description":"棣栭〉"},{"name":"浠诲姟绠$悊 鎺у埗灞?,"description":"浠诲姟绠$悊 鎺у埗灞?},{"name":"Redis 鍙戝竷璁㈤槄 婕旂ず妗堜緥","description":"Redis 鍙戝竷璁㈤槄 婕旂ず妗堜緥"},{"name":"MCP Client 婕旂ず妗堜緥銆?,"description":"MCP Client 婕旂ず妗堜緥銆俓n

\n 杩欎簺鎺ュ彛涓嶆槸 MCP 鍗忚鎺ュ彛锛屽彧鏄负浜嗗湪鍚庡彴绯荤粺涓墜鍔ㄨЕ鍙?MCP Client 璋冪敤銆俓n 鐪熷疄 MCP Server 鍏ュ彛鐢?Spring AI 鎸傝浇鍒?`/mcp`銆俓n

\n 璋冪敤绀轰緥锛歕n

\n 褰?`spring.ai.mcp.client.enabled=false` 鏃讹紝鎺ュ彛浼氳繑鍥炴彁绀猴紝涓嶅奖鍝嶅簲鐢ㄥ惎鍔ㄣ€?},{"name":"App 瀹跺涵绠$悊鎺у埗鍣?,"description":"App 瀹跺涵绠$悊鎺у埗鍣╘n

\n 鎻愪緵瀹跺涵鐨勫鍒犳煡鍙婇粯璁ゅ搴垏鎹㈠姛鑳斤紝鎵€鏈夋帴鍙e潎闇€鐧诲綍鎬併€?},{"name":"瑙掕壊淇℃伅","description":"瑙掕壊淇℃伅"},{"name":"鏁版嵁瀛楀吀淇℃伅","description":"鏁版嵁瀛楀吀淇℃伅"},{"name":"鏂囦欢涓婁紶 鎺у埗灞?,"description":"鏂囦欢涓婁紶 鎺у埗灞?},{"name":"App 鎴块棿浣嶇疆绠$悊鎺у埗鍣?,"description":"App 鎴块棿浣嶇疆绠$悊鎺у埗鍣╘n

\n 鎻愪緵鎴块棿鍐呮埧闂翠綅缃殑澧炲垹鏌ユ敼鍔熻兘锛屾墍鏈夋帴鍙e潎闇€鐧诲綍鎬併€俓n 浣嶇疆褰掑睘浜庡搴紝鎿嶄綔鏃朵細鑷姩鏍¢獙褰撳墠鐢ㄦ埛瀵硅瀹跺涵鐨勬墍鏈夋潈銆?},{"name":"閭欢鍙戦€佹渚?,"description":"閭欢鍙戦€佹渚?},{"name":"spring-cache 婕旂ず妗堜緥","description":"spring-cache 婕旂ず妗堜緥"},{"name":"WebSocket 婕旂ず妗堜緥","description":"WebSocket 婕旂ず妗堜緥"},{"name":"娴嬭瘯鏁版嵁搴撳姞瑙e瘑鍔熻兘","description":"娴嬭瘯鏁版嵁搴撳姞瑙e瘑鍔熻兘"},{"name":"璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?,"description":"璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?},{"name":"娴佺▼瀹氫箟绠$悊 鎺у埗灞?,"description":"娴佺▼瀹氫箟绠$悊 鎺у埗灞?},{"name":"娴嬭瘯鍗曡〃Controller","description":"娴嬭瘯鍗曡〃Controller"},{"name":"閮ㄩ棬淇℃伅","description":"閮ㄩ棬淇℃伅"},{"name":"鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊","description":"鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"},{"name":"App 璁惧鎺у埗鍣?,"description":"App 璁惧鎺у埗鍣╘n

\n 鎻愪緵璁惧缁戝畾绛夋帴鍙o紝鎵€鏈夋帴鍙e潎闇€鐧诲綍鎬併€?},{"name":"娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚?,"description":"娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚?},{"name":"娴嬭瘯鎵归噺鏂规硶","description":"娴嬭瘯鎵归噺鏂规硶"},{"name":"SSE 鎺у埗鍣?,"description":"SSE 鎺у埗鍣?},{"name":"App 鐢ㄦ埛璁よ瘉鎺у埗鍣?,"description":"App 鐢ㄦ埛璁よ瘉鎺у埗鍣╘n

\n 鍏紑鎺ュ彛浣跨敤 {@link SaIgnore SaIgnore} 鏀捐锛涢€€鍑烘帴鍙i渶瑕佺櫥褰曟€併€?},{"name":"楠岃瘉鐮佹搷浣滃鐞?,"description":"楠岃瘉鐮佹搷浣滃鐞?},{"name":"鐢ㄦ埛淇℃伅","description":"鐢ㄦ埛淇℃伅"},{"name":"瀵硅薄瀛樺偍閰嶇疆","description":"瀵硅薄瀛樺偍閰嶇疆"},{"name":"娴嬭瘯鏁版嵁鑴辨晱鎺у埗鍣?,"description":"娴嬭瘯鏁版嵁鑴辨晱鎺у埗鍣╘n

\n 榛樿绠$悊鍛樹笉杩囨护\n 闇€鑷鏍规嵁涓氬姟閲嶅啓瀹炵幇"},{"name":"涓汉淇℃伅 涓氬姟澶勭悊","description":"涓汉淇℃伅 涓氬姟澶勭悊"},{"name":"鍚庡彴璁惧绠$悊銆?,"description":"鍚庡彴璁惧绠$悊銆?},{"name":"娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?,"description":"娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?},{"name":"Snail AI OpenAPI 鎺у埗鍣?,"description":"Snail AI OpenAPI 鎺у埗鍣?},{"name":"鑿滃崟淇℃伅","description":"鑿滃崟淇℃伅"},{"name":"娴嬭瘯鏍戣〃Controller","description":"娴嬭瘯鏍戣〃Controller"},{"name":"娴佺▼瀹炰緥绠$悊 鎺у埗灞?,"description":"娴佺▼瀹炰緥绠$悊 鎺у埗灞?},{"name":"璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?,"description":"璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?},{"name":"绀句細鍖栧叧绯?,"description":"绀句細鍖栧叧绯?},{"name":"娴佺▼鍒嗙被","description":"娴佺▼鍒嗙被"},{"name":"绯荤粺璁块棶璁板綍","description":"绯荤粺璁块棶璁板綍"},{"name":"swagger3 鐢ㄦ硶绀轰緥","description":"swagger3 鐢ㄦ硶绀轰緥"},{"name":"App 鐢ㄦ埛璧勬枡鎺у埗鍣?,"description":"App 鐢ㄦ埛璧勬枡鎺у埗鍣?},{"name":"鍦ㄧ嚎鐢ㄦ埛鐩戞帶","description":"鍦ㄧ嚎鐢ㄦ埛鐩戞帶"},{"name":"鐭俊婕旂ず妗堜緥","description":"鐭俊婕旂ず妗堜緥\n 璇峰厛闃呰鏂囨。 鍚﹀垯鏃犳硶浣跨敤"},{"name":"SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯","description":"SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"},{"name":"娴嬭瘯Excel鍔熻兘","description":"娴嬭瘯Excel鍔熻兘"},{"name":"鎿嶄綔鏃ュ織璁板綍","description":"鎿嶄綔鏃ュ織璁板綍"},{"name":"缂撳瓨鐩戞帶","description":"缂撳瓨鐩戞帶"},{"name":"鍏憡 淇℃伅鎿嶄綔澶勭悊","description":"鍏憡 淇℃伅鎿嶄綔澶勭悊"},{"name":"娑堟伅璁板綍鎺у埗鍣?,"description":"娑堟伅璁板綍鎺у埗鍣?},{"name":"瀹㈡埛绔鐞?,"description":"瀹㈡埛绔鐞?},{"name":"娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚?,"description":"娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚?}],"paths":{"/workflow/task/updateAssignee/{userId}":{"put":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鎵归噺淇敼浠诲姟鍔炵悊浜恒€?,"description":"鎵归噺淇敼浠诲姟鍔炵悊浜恒€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:task:edit`

","operationId":"updateAssignee","parameters":[{"name":"userId","in":"path","description":"鍔炵悊浜篿d","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"浠诲姟id","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/spel":{"put":{"tags":["娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?],"summary":"淇敼娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夈€?,"description":"淇敼娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夈€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:spel:edit`

","operationId":"edit","requestBody":{"description":"琛ㄨ揪寮忎俊鎭?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowSpelBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?],"summary":"鏂板娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夈€?,"description":"鏂板娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夈€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:spel:add`

","operationId":"add","requestBody":{"description":"琛ㄨ揪寮忎俊鎭?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowSpelBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/leave":{"put":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"淇敼璇峰亣鍗曘€?,"description":"淇敼璇峰亣鍗曘€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:edit`

","operationId":"edit_1","requestBody":{"description":"璇峰亣淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"淇敼鍚庣殑璇峰亣鍗?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}},"post":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"鏂板璇峰亣鍗曘€?,"description":"鏂板璇峰亣鍗曘€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:add`

","operationId":"add_1","requestBody":{"description":"璇峰亣淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鏂板鍚庣殑璇峰亣鍗?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}}},"/workflow/instance/updateVariable":{"put":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"淇敼娴佺▼鍙橀噺銆?,"description":"淇敼娴佺▼鍙橀噺銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:variable`

","operationId":"updateVariable","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowVariableBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/cancelProcessApply":{"put":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鎾ら攢褰撳墠鐢宠浜哄彂璧风殑娴佺▼銆?,"description":"鎾ら攢褰撳墠鐢宠浜哄彂璧风殑娴佺▼銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:cancel`

","operationId":"cancelProcessApply","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowCancelBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/active/{id}":{"put":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"婵€娲绘垨鎸傝捣娴佺▼瀹炰緥銆?,"description":"婵€娲绘垨鎸傝捣娴佺▼瀹炰緥銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:active`

","operationId":"active","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹炰緥id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"active","in":"query","description":"婵€娲?鎸傝捣","required":true,"schema":{"type":"boolean"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"澶勭悊缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition":{"put":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"淇敼娴佺▼瀹氫箟銆?,"description":"淇敼娴佺▼瀹氫箟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:edit`

","operationId":"edit_2","requestBody":{"description":"娴佺▼瀹氫箟淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDefinition"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}},"post":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鏂板娴佺▼瀹氫箟骞舵墽琛屾牸寮忔牎楠屻€?,"description":"鏂板娴佺▼瀹氫箟骞舵墽琛屾牸寮忔牎楠屻€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:add`

","operationId":"add_2","requestBody":{"description":"娴佺▼瀹氫箟淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDefinition"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/unPublish/{id}":{"put":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鍙栨秷鍙戝竷娴佺▼瀹氫箟銆?,"description":"鍙栨秷鍙戝竷娴佺▼瀹氫箟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:publish`

","operationId":"unPublish","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/publish/{id}":{"put":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鍙戝竷娴佺▼瀹氫箟锛屼娇鍏惰繘鍏ュ彲鐢ㄧ姸鎬併€?,"description":"鍙戝竷娴佺▼瀹氫箟锛屼娇鍏惰繘鍏ュ彲鐢ㄧ姸鎬併€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:publish`

","operationId":"publish","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍙戝竷缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/active/{id}":{"put":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"婵€娲绘垨鎸傝捣娴佺▼瀹氫箟銆?,"description":"婵€娲绘垨鎸傝捣娴佺▼瀹氫箟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:active`

","operationId":"active_1","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"active","in":"query","description":"婵€娲?鎸傝捣","required":true,"schema":{"type":"boolean"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"澶勭悊缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/category":{"put":{"tags":["娴佺▼鍒嗙被"],"summary":"淇敼娴佺▼鍒嗙被锛屽苟鏍¢獙鍚嶇О鍞竴鍙婄埗瀛愬叧绯诲悎娉曟€с€?,"description":"淇敼娴佺▼鍒嗙被锛屽苟鏍¢獙鍚嶇О鍞竴鍙婄埗瀛愬叧绯诲悎娉曟€с€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:category:edit`

","operationId":"edit_3","requestBody":{"description":"鍒嗙被淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["娴佺▼鍒嗙被"],"summary":"鏂板娴佺▼鍒嗙被锛屽苟鏍¢獙鍒嗙被鍚嶇О鍞竴鎬с€?,"description":"鏂板娴佺▼鍒嗙被锛屽苟鏍¢獙鍒嗙被鍚嶇О鍞竴鎬с€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:category:add`

","operationId":"add_3","requestBody":{"description":"鍒嗙被淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user":{"put":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"淇敼鐢ㄦ埛銆?,"description":"淇敼鐢ㄦ埛銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:edit`

","operationId":"edit_4","requestBody":{"description":"鐢ㄦ埛缂栬緫鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鏂板鐢ㄦ埛銆?,"description":"鏂板鐢ㄦ埛銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:add`

","operationId":"add_4","requestBody":{"description":"鐢ㄦ埛鏂板鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/resetPwd":{"put":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"閲嶇疆鎸囧畾鐢ㄦ埛瀵嗙爜銆?,"description":"閲嶇疆鎸囧畾鐢ㄦ埛瀵嗙爜銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:resetPwd`

","operationId":"resetPwd","requestBody":{"description":"鐢ㄦ埛鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/profile":{"get":{"tags":["涓汉淇℃伅 涓氬姟澶勭悊"],"summary":"鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鐨勪釜浜轰腑蹇冧俊鎭€?,"description":"鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鐨勪釜浜轰腑蹇冧俊鎭€?,"operationId":"profile","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛淇℃伅銆佽鑹茬粍鍜屽矖浣嶇粍","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RProfileVo"}}}}}},"put":{"tags":["涓汉淇℃伅 涓氬姟澶勭悊"],"summary":"淇敼褰撳墠鐧诲綍鐢ㄦ埛鐨勪釜浜鸿祫鏂欍€?,"description":"淇敼褰撳墠鐧诲綍鐢ㄦ埛鐨勪釜浜鸿祫鏂欍€?,"operationId":"updateProfile","requestBody":{"description":"涓汉璧勬枡鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserProfileBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/profile/updatePwd":{"put":{"tags":["涓汉淇℃伅 涓氬姟澶勭悊"],"summary":"閲嶇疆瀵嗙爜","description":"閲嶇疆瀵嗙爜","operationId":"updatePwd","requestBody":{"description":"鏂版棫瀵嗙爜","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserPasswordBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/changeStatus":{"put":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"淇敼鐢ㄦ埛鐘舵€併€?,"description":"淇敼鐢ㄦ埛鐘舵€併€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:edit`

","operationId":"changeStatus","requestBody":{"description":"鐢ㄦ埛鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/authRole":{"put":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鐢ㄦ埛鎺堟潈瑙掕壊","description":"鐢ㄦ埛鎺堟潈瑙掕壊

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:edit`

","operationId":"insertAuthRole","parameters":[{"name":"userId","in":"query","description":"鐢ㄦ埛Id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"roleIds","in":"query","description":"瑙掕壊ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role":{"put":{"tags":["瑙掕壊淇℃伅"],"summary":"淇敼瑙掕壊鍩虹淇℃伅锛堜笉鍖呭惈鑿滃崟鏉冮檺銆佹暟鎹潈闄愶級銆?,"description":"淇敼瑙掕壊鍩虹淇℃伅锛堜笉鍖呭惈鑿滃崟鏉冮檺銆佹暟鎹潈闄愶級銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:edit`

","operationId":"edit_5","requestBody":{"description":"瑙掕壊鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["瑙掕壊淇℃伅"],"summary":"鏂板瑙掕壊銆?,"description":"鏂板瑙掕壊銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:add`

","operationId":"add_5","requestBody":{"description":"瑙掕壊鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/permission":{"put":{"tags":["瑙掕壊淇℃伅"],"summary":"淇敼瑙掕壊鏉冮檺淇℃伅锛堣彍鍗曟潈闄?+ 鏁版嵁鏉冮檺锛夈€?,"description":"淇敼瑙掕壊鏉冮檺淇℃伅锛堣彍鍗曟潈闄?+ 鏁版嵁鏉冮檺锛夈€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:edit`

","operationId":"editPermission","requestBody":{"description":"瑙掕壊鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/changeStatus":{"put":{"tags":["瑙掕壊淇℃伅"],"summary":"淇敼瑙掕壊鐘舵€併€?,"description":"淇敼瑙掕壊鐘舵€併€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:edit`

","operationId":"changeStatus_1","requestBody":{"description":"瑙掕壊鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/authUser/selectAll":{"put":{"tags":["瑙掕壊淇℃伅"],"summary":"鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈","description":"鎵归噺閫夋嫨鐢ㄦ埛鎺堟潈

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:edit`

","operationId":"selectAuthUserAll","parameters":[{"name":"roleId","in":"query","description":"瑙掕壊ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"userIds","in":"query","description":"鐢ㄦ埛ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/authUser/cancel":{"put":{"tags":["瑙掕壊淇℃伅"],"summary":"鍙栨秷鎺堟潈鐢ㄦ埛銆?,"description":"鍙栨秷鎺堟潈鐢ㄦ埛銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:edit`

","operationId":"cancelAuthUser","requestBody":{"description":"鐢ㄦ埛瑙掕壊鍏崇郴","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserRole"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/authUser/cancelAll":{"put":{"tags":["瑙掕壊淇℃伅"],"summary":"鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛","description":"鎵归噺鍙栨秷鎺堟潈鐢ㄦ埛

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:edit`

","operationId":"cancelAuthUserAll","parameters":[{"name":"roleId","in":"query","description":"瑙掕壊ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"userIds","in":"query","description":"鐢ㄦ埛ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/post":{"put":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"淇敼宀椾綅銆?,"description":"淇敼宀椾綅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:edit`

","operationId":"edit_6","requestBody":{"description":"宀椾綅鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysPostBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"鏂板宀椾綅銆?,"description":"鏂板宀椾綅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:add`

","operationId":"add_6","requestBody":{"description":"宀椾綅鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysPostBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/notice":{"put":{"tags":["鍏憡 淇℃伅鎿嶄綔澶勭悊"],"summary":"淇敼閫氱煡鍏憡銆?,"description":"淇敼閫氱煡鍏憡銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:notice:edit`

","operationId":"edit_7","requestBody":{"description":"鍏憡鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysNoticeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鍏憡 淇℃伅鎿嶄綔澶勭悊"],"summary":"鏂板閫氱煡鍏憡锛屽苟鍚戝湪绾跨敤鎴峰箍鎾叕鍛婃憳瑕併€?,"description":"鏂板閫氱煡鍏憡锛屽苟鍚戝湪绾跨敤鎴峰箍鎾叕鍛婃憳瑕併€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:notice:add`

","operationId":"add_7","requestBody":{"description":"鍏憡鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysNoticeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/menu":{"put":{"tags":["鑿滃崟淇℃伅"],"summary":"淇敼鑿滃崟銆?,"description":"淇敼鑿滃崟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:edit`

**瑙掕壊鏍¢獙锛?*

- `superadmin`
","operationId":"edit_8","requestBody":{"description":"鑿滃崟鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysMenuBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鑿滃崟淇℃伅"],"summary":"鏂板鑿滃崟銆?,"description":"鏂板鑿滃崟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:add`

**瑙掕壊鏍¢獙锛?*

- `superadmin`
","operationId":"add_8","requestBody":{"description":"鑿滃崟鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysMenuBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/type":{"put":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"淇敼瀛楀吀绫诲瀷銆?,"description":"淇敼瀛楀吀绫诲瀷銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:edit`

","operationId":"edit_9","requestBody":{"description":"瀛楀吀绫诲瀷鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鏂板瀛楀吀绫诲瀷銆?,"description":"鏂板瀛楀吀绫诲瀷銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:add`

","operationId":"add_9","requestBody":{"description":"瀛楀吀绫诲瀷鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/data":{"put":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"淇敼瀛楀吀鏁版嵁銆?,"description":"淇敼瀛楀吀鏁版嵁銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:edit`

","operationId":"edit_10","requestBody":{"description":"瀛楀吀鏁版嵁鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictDataBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鏂板瀛楀吀鏁版嵁銆?,"description":"鏂板瀛楀吀鏁版嵁銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:add`

","operationId":"add_10","requestBody":{"description":"瀛楀吀鏁版嵁鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictDataBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dept":{"put":{"tags":["閮ㄩ棬淇℃伅"],"summary":"淇敼閮ㄩ棬銆?,"description":"淇敼閮ㄩ棬銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:edit`

","operationId":"edit_11","requestBody":{"description":"閮ㄩ棬鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDeptBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["閮ㄩ棬淇℃伅"],"summary":"鏂板閮ㄩ棬銆?,"description":"鏂板閮ㄩ棬銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:add`

","operationId":"add_11","requestBody":{"description":"閮ㄩ棬鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDeptBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config":{"put":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"淇敼鍙傛暟閰嶇疆銆?,"description":"淇敼鍙傛暟閰嶇疆銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:edit`

","operationId":"edit_12","requestBody":{"description":"鍙傛暟閰嶇疆","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鏂板鍙傛暟閰嶇疆銆?,"description":"鏂板鍙傛暟閰嶇疆銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:add`

","operationId":"add_12","requestBody":{"description":"鍙傛暟閰嶇疆","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config/updateByKey":{"put":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鏍规嵁鍙傛暟閿悕淇敼鍙傛暟閰嶇疆銆?,"description":"鏍规嵁鍙傛暟閿悕淇敼鍙傛暟閰嶇疆銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:edit`

","operationId":"updateByKey","requestBody":{"description":"鍙傛暟閰嶇疆","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/client":{"put":{"tags":["瀹㈡埛绔鐞?],"summary":"淇敼瀹㈡埛绔厤缃紝閬垮厤閲嶅鍗犵敤鍚屼竴涓鎴风 key銆?,"description":"淇敼瀹㈡埛绔厤缃紝閬垮厤閲嶅鍗犵敤鍚屼竴涓鎴风 key銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:edit`

","operationId":"edit_13","requestBody":{"description":"瀹㈡埛绔俊鎭?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysClientBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["瀹㈡埛绔鐞?],"summary":"鏂板瀹㈡埛绔厤缃紝鍏ュ簱鍓嶅厛鏍¢獙瀹㈡埛绔?key 鏄惁鍞竴銆?,"description":"鏂板瀹㈡埛绔厤缃紝鍏ュ簱鍓嶅厛鏍¢獙瀹㈡埛绔?key 鏄惁鍞竴銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:add`

","operationId":"add_13","requestBody":{"description":"瀹㈡埛绔俊鎭?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysClientBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/client/changeStatus":{"put":{"tags":["瀹㈡埛绔鐞?],"summary":"淇敼瀹㈡埛绔惎鍋滅姸鎬併€?,"description":"淇敼瀹㈡埛绔惎鍋滅姸鎬併€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:edit`

","operationId":"changeStatus_2","requestBody":{"description":"瀹㈡埛绔姸鎬佷俊鎭?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysClientBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/config":{"put":{"tags":["瀵硅薄瀛樺偍閰嶇疆"],"summary":"淇敼瀵硅薄瀛樺偍閰嶇疆銆?,"description":"淇敼瀵硅薄瀛樺偍閰嶇疆銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:ossConfig:edit`

","operationId":"edit_14","requestBody":{"description":"閰嶇疆淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["瀵硅薄瀛樺偍閰嶇疆"],"summary":"鏂板瀵硅薄瀛樺偍閰嶇疆銆?,"description":"鏂板瀵硅薄瀛樺偍閰嶇疆銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:ossConfig:add`

","operationId":"add_14","requestBody":{"description":"閰嶇疆淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/config/changeStatus":{"put":{"tags":["瀵硅薄瀛樺偍閰嶇疆"],"summary":"鍒囨崲瀵硅薄瀛樺偍閰嶇疆鍚敤鐘舵€侊紝骞跺悓姝ユ洿鏂板綋鍓嶇敓鏁堥厤缃€?,"description":"鍒囨崲瀵硅薄瀛樺偍閰嶇疆鍚敤鐘舵€侊紝骞跺悓姝ユ洿鏂板綋鍓嶇敓鏁堥厤缃€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:ossConfig:edit`

","operationId":"changeStatus_3","requestBody":{"description":"鐘舵€佸彉鏇翠俊鎭?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/device/device":{"put":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"淇敼璁惧鍚嶇О銆佹埧闂村拰澶囨敞銆?,"description":"淇敼璁惧鍚嶇О銆佹埧闂村拰澶囨敞銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:edit`

","operationId":"edit_15","requestBody":{"description":"璁惧妗f","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CzDeviceBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"鏂板璁惧妗f銆?,"description":"鏂板璁惧妗f銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:add`

","operationId":"add_15","requestBody":{"description":"璁惧妗f","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CzDeviceBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/tree":{"put":{"tags":["娴嬭瘯鏍戣〃Controller"],"summary":"淇敼娴嬭瘯鏍戣〃","description":"淇敼娴嬭瘯鏍戣〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:tree:edit`

","operationId":"edit_16","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestTreeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["娴嬭瘯鏍戣〃Controller"],"summary":"鏂板娴嬭瘯鏍戣〃","description":"鏂板娴嬭瘯鏍戣〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:tree:add`

","operationId":"add_16","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestTreeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/demo":{"put":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"淇敼娴嬭瘯鍗曡〃","description":"淇敼娴嬭瘯鍗曡〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:edit`

","operationId":"edit_17","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDemoBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"鏂板娴嬭瘯鍗曡〃","description":"鏂板娴嬭瘯鍗曡〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:add`

","operationId":"add_17","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDemoBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/home/setDefault/{homeId}":{"put":{"tags":["App 瀹跺涵绠$悊鎺у埗鍣?],"summary":"鍒囨崲榛樿瀹跺涵\n ","description":"鍒囨崲榛樿瀹跺涵\n

\n 灏嗘寚瀹氬搴涓洪粯璁わ紝鍚屾椂鍙栨秷鍏朵粬瀹跺涵鐨勯粯璁ゆ爣璇嗐€?,"operationId":"setDefaultHome","parameters":[{"name":"homeId","in":"path","description":"瑕佽涓洪粯璁ょ殑瀹跺涵ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/api/snail/chat/conversations":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"listConversations","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":50}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResultListOpenApiConversationVO"}}}}}},"put":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"updateConversationTitle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiConversationUpdateTitleRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}},"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"createConversation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiCreateConversationRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiConversationVO"}}}}}},"delete":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"deleteConversation","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"conversationId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/workflow/task/urgeTask":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鍌姙浠诲姟銆?,"description":"鍌姙浠诲姟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:task:edit`

","operationId":"urgeTask","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowUrgeTaskBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/task/terminationTask":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"缁堟娴佺▼浠诲姟銆?,"description":"缁堟娴佺▼浠诲姟銆?,"operationId":"terminationTask","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowTerminationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"澶勭悊缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/task/taskOperation/{taskOperation}":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鎵ц浠诲姟鎿嶄綔锛屼緥濡傚娲俱€佽浆鍔炪€佸姞绛炬垨鍑忕銆?,"description":"鎵ц浠诲姟鎿嶄綔锛屼緥濡傚娲俱€佽浆鍔炪€佸姞绛炬垨鍑忕銆?,"operationId":"taskOperation","parameters":[{"name":"taskOperation","in":"path","description":"鎿嶄綔绫诲瀷锛屽娲?delegateTask銆佽浆鍔?transferTask銆佸姞绛?addSignature銆佸噺绛?reductionSignature","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskOperationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/task/startWorkFlow":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鍚姩娴佺▼浠诲姟銆?,"description":"鍚姩娴佺▼浠诲姟銆?,"operationId":"startWorkFlow","requestBody":{"description":"鍚姩娴佺▼鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartProcessBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍚姩缁撴灉鍙婂悗缁祦绋嬩俊鎭?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RStartProcessReturnDTO"}}}}}}},"/workflow/task/getNextNodeList":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鑾峰彇娴佺▼涓嬩竴鑺傜偣淇℃伅銆?,"description":"鑾峰彇娴佺▼涓嬩竴鑺傜偣淇℃伅銆?,"operationId":"getNextNodeList","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowNextNodeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"涓嬩竴鑺傜偣鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListFlowNode"}}}}}}},"/workflow/task/completeTask":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鍔炵悊褰撳墠浠诲姟鑺傜偣銆?,"description":"鍔炵悊褰撳墠浠诲姟鑺傜偣銆?,"operationId":"completeTask","requestBody":{"description":"鍔炵悊浠诲姟鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteTaskBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/task/backProcess":{"post":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"椹冲洖瀹℃壒鍒板墠缃妭鐐广€?,"description":"椹冲洖瀹℃壒鍒板墠缃妭鐐广€?,"operationId":"backProcess","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackProcessBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/leave/submitAndFlowStart":{"post":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"鎻愪氦璇峰亣鍗曞苟鍚屾鍙戣捣娴佺▼銆?,"description":"鎻愪氦璇峰亣鍗曞苟鍚屾鍙戣捣娴佺▼銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:add`

","operationId":"submitAndFlowStart","requestBody":{"description":"璇峰亣淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎻愪氦鍚庣殑璇峰亣鍗?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}}},"/workflow/leave/export":{"post":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"瀵煎嚭璇峰亣鍒楄〃銆?,"description":"瀵煎嚭璇峰亣鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:export`

","operationId":"export","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/workflow/instance/invalid":{"post":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"浣滃簾娴佺▼瀹炰緥銆?,"description":"浣滃簾娴佺▼瀹炰緥銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:invalid`

","operationId":"invalid","requestBody":{"description":"鍙傛暟","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowInvalidBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"澶勭悊缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/importDef":{"post":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"閫氳繃鏂囦欢瀵煎叆娴佺▼瀹氫箟銆?,"description":"閫氳繃鏂囦欢瀵煎叆娴佺▼瀹氫箟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:import`

","operationId":"importDef","parameters":[{"name":"file","in":"query","description":"鏂囦欢","required":true,"schema":{"type":"string","format":"binary"}},{"name":"category","in":"query","description":"鍒嗙被","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀵煎叆缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/exportDef/{id}":{"post":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"瀵煎嚭娴佺▼瀹氫箟鏂囦欢銆?,"description":"瀵煎嚭娴佺▼瀹氫箟鏂囦欢銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:export`

","operationId":"exportDef","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK"}}}},"/workflow/definition/copy/{id}":{"post":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"澶嶅埗涓€浠芥祦绋嬪畾涔夛紝渚夸簬蹇€熷垱寤虹浉浼兼祦绋嬨€?,"description":"澶嶅埗涓€浠芥祦绋嬪畾涔夛紝渚夸簬蹇€熷垱寤虹浉浼兼祦绋嬨€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:copy`

","operationId":"copy","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"澶嶅埗缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/category/export":{"post":{"tags":["娴佺▼鍒嗙被"],"summary":"瀵煎嚭娴佺▼鍒嗙被鍒楄〃銆?,"description":"瀵煎嚭娴佺▼鍒嗙被鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:category:export`

","operationId":"export_1","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/warm-flow/save-json":{"post":{"tags":["warm-flow-controller"],"operationId":"saveJson","parameters":[{"name":"onlyNodeSkip","in":"header","required":true,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefJson"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/warm-flow/form-content":{"post":{"tags":["warm-flow-controller"],"operationId":"saveFormContent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDto"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/warm-flow/execute/handle":{"post":{"tags":["warm-flow-controller"],"operationId":"handle","parameters":[{"name":"taskId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"skipType","in":"query","required":true,"schema":{"type":"string"}},{"name":"message","in":"query","required":true,"schema":{"type":"string"}},{"name":"nodeCode","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultInstance"}}}}}}},"/system/user/importTemplate":{"post":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"瀵煎嚭鐢ㄦ埛瀵煎叆妯℃澘銆?,"description":"瀵煎嚭鐢ㄦ埛瀵煎叆妯℃澘銆?,"operationId":"importTemplate","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/user/importData":{"post":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"瀵煎叆鏁版嵁","description":"瀵煎叆鏁版嵁

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:import`

","operationId":"importData","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"瀵煎叆鏂囦欢"},"updateSupport":{"type":"boolean","description":"鏄惁鏇存柊宸插瓨鍦ㄦ暟鎹?}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/export":{"post":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"瀵煎嚭绗﹀悎鏉′欢鐨勭敤鎴峰垪琛ㄣ€?,"description":"瀵煎嚭绗﹀悎鏉′欢鐨勭敤鎴峰垪琛ㄣ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:export`

","operationId":"export_2","parameters":[{"name":"user","in":"query","description":"鐢ㄦ埛鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/role/export":{"post":{"tags":["瑙掕壊淇℃伅"],"summary":"瀵煎嚭瑙掕壊淇℃伅鍒楄〃銆?,"description":"瀵煎嚭瑙掕壊淇℃伅鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:export`

","operationId":"export_3","parameters":[{"name":"role","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysRoleBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/post/export":{"post":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"瀵煎嚭宀椾綅鍒楄〃銆?,"description":"瀵煎嚭宀椾綅鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:export`

","operationId":"export_4","parameters":[{"name":"post","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysPostBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/dict/type/export":{"post":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"瀵煎嚭瀛楀吀绫诲瀷鍒楄〃銆?,"description":"瀵煎嚭瀛楀吀绫诲瀷鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:export`

","operationId":"export_5","parameters":[{"name":"dictType","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/dict/data/export":{"post":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"瀵煎嚭瀛楀吀鏁版嵁鍒楄〃銆?,"description":"瀵煎嚭瀛楀吀鏁版嵁鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:export`

","operationId":"export_6","parameters":[{"name":"dictData","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDictDataBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/config/export":{"post":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"瀵煎嚭鍙傛暟閰嶇疆鍒楄〃銆?,"description":"瀵煎嚭鍙傛暟閰嶇疆鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:export`

","operationId":"export_7","parameters":[{"name":"config","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysConfigBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/client/export":{"post":{"tags":["瀹㈡埛绔鐞?],"summary":"瀵煎嚭瀹㈡埛绔鐞嗗垪琛紝渚夸簬绂荤嚎瀹¤涓庨厤缃牳鏌ャ€?,"description":"瀵煎嚭瀹㈡埛绔鐞嗗垪琛紝渚夸簬绂荤嚎瀹¤涓庨厤缃牳鏌ャ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:export`

","operationId":"export_8","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysClientBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/swagger/demo/upload":{"post":{"tags":["swagger3 鐢ㄦ硶绀轰緥"],"summary":"涓婁紶璇锋眰\n 蹇呴』浣跨敤 @RequestPart 娉ㄨВ鏍囨敞涓烘枃浠?,"description":"涓婁紶璇锋眰\n 蹇呴』浣跨敤 @RequestPart 娉ㄨВ鏍囨敞涓烘枃浠?,"operationId":"upload","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"瀵煎叆鏂囦欢"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/snail-ai/user/register":{"post":{"tags":["Snail AI OpenAPI 鎺у埗鍣?],"summary":"娉ㄥ唽褰撳墠鐧诲綍鐢ㄦ埛骞惰繑鍥?OpenAPI 鐢ㄦ埛淇℃伅銆?,"description":"娉ㄥ唽褰撳墠鐧诲綍鐢ㄦ埛骞惰繑鍥?OpenAPI 鐢ㄦ埛淇℃伅銆?,"operationId":"registerCurrentUser","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ROpenApiUserVO"}}}}}}},"/resource/oss/upload":{"post":{"tags":["鏂囦欢涓婁紶 鎺у埗灞?],"summary":"涓婁紶OSS瀵硅薄瀛樺偍","description":"涓婁紶OSS瀵硅薄瀛樺偍

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:oss:upload`

","operationId":"upload_1","parameters":[{"name":"ossExt","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"瀵煎叆鏂囦欢"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"涓婁紶缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysOssUploadVo"}}}}}}},"/monitor/operlog/export":{"post":{"tags":["鎿嶄綔鏃ュ織璁板綍"],"summary":"瀵煎嚭鎿嶄綔鏃ュ織璁板綍鍒楄〃銆?,"description":"瀵煎嚭鎿嶄綔鏃ュ織璁板綍鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:operlog:export`

","operationId":"export_9","parameters":[{"name":"operLog","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysOperLogBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/monitor/loginInfo/export":{"post":{"tags":["绯荤粺璁块棶璁板綍"],"summary":"瀵煎嚭绯荤粺璁块棶璁板綍鍒楄〃銆?,"description":"瀵煎嚭绯荤粺璁块棶璁板綍鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:logininfo:export`

","operationId":"export_10","parameters":[{"name":"loginInfo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysLoginInfoBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/device/device/export":{"post":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"瀵煎嚭璁惧銆?,"description":"瀵煎嚭璁惧銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:export`

","operationId":"export_11","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/CzDeviceBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/importWithOptions":{"post":{"tags":["娴嬭瘯Excel鍔熻兘"],"summary":"瀵煎叆琛ㄦ牸","description":"瀵煎叆琛ㄦ牸","operationId":"importWithOptions","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"瀵煎叆鏂囦欢"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExportDemoVo"}}}}}}}},"/demo/demo/importData":{"post":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"瀵煎叆鏁版嵁","description":"瀵煎叆鏁版嵁

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:import`

","operationId":"importData_1","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"瀵煎叆鏂囦欢"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/demo/export":{"post":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃","description":"瀵煎嚭娴嬭瘯鍗曡〃鍒楄〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:export`

","operationId":"export_12","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestDemoBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/batch/add":{"post":{"tags":["娴嬭瘯鎵归噺鏂规硶"],"summary":"鏂板鎵归噺鏂规硶 鍙畬缇庢浛浠?saveBatch 绉掔骇鎻掑叆涓婁竾鏁版嵁 (瀵筸ysql璐熻嵎杈冨ぇ)\n ","description":"鏂板鎵归噺鏂规硶 鍙畬缇庢浛浠?saveBatch 绉掔骇鎻掑叆涓婁竾鏁版嵁 (瀵筸ysql璐熻嵎杈冨ぇ)\n

\n 3.5.0 鐗堟湰 澧炲姞 rewriteBatchedStatements=true 鎵瑰鐞嗗弬鏁?浣?MP 鍘熺敓鎵瑰鐞嗗彲浠ヨ揪鍒板悓鏍风殑閫熷害","operationId":"add_18","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/batch/addOrUpdate":{"post":{"tags":["娴嬭瘯鎵归噺鏂规硶"],"summary":"鏂板鎴栨洿鏂?鍙畬缇庢浛浠?saveOrUpdateBatch 楂樻€ц兘\n ","description":"鏂板鎴栨洿鏂?鍙畬缇庢浛浠?saveOrUpdateBatch 楂樻€ц兘\n

\n 3.5.0 鐗堟湰 澧炲姞 rewriteBatchedStatements=true 鎵瑰鐞嗗弬鏁?浣?MP 鍘熺敓鎵瑰鐞嗗彲浠ヨ揪鍒板悓鏍风殑閫熷害","operationId":"addOrUpdate","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/social/callback":{"post":{"tags":["璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?],"summary":"澶勭悊鍓嶇鍥炶皟鍚庣殑绀句氦璐﹀彿缁戝畾銆?,"description":"澶勭悊鍓嶇鍥炶皟鍚庣殑绀句氦璐﹀彿缁戝畾銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"socialCallback","requestBody":{"description":"璇锋眰浣?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialLoginBody"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/register":{"post":{"tags":["璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?],"summary":"鐢ㄦ埛娉ㄥ唽銆?,"description":"鐢ㄦ埛娉ㄥ唽銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"register","requestBody":{"description":"娉ㄥ唽淇℃伅","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterBody"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/logout":{"post":{"tags":["璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?],"summary":"閫€鍑虹櫥褰?,"description":"閫€鍑虹櫥褰?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"logout","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/login":{"post":{"tags":["璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?],"summary":"鐧诲綍鏂规硶","description":"鐧诲綍鏂规硶

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"login","requestBody":{"description":"鐧诲綍淇℃伅","content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RLoginVo"}}}}}}},"/app/profile/update":{"post":{"tags":["App 鐢ㄦ埛璧勬枡鎺у埗鍣?],"summary":"淇敼鐢ㄦ埛璧勬枡","description":"淇敼鐢ㄦ埛璧勬枡","operationId":"updateProfile_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/profile/avatar":{"post":{"tags":["App 鐢ㄦ埛璧勬枡鎺у埗鍣?],"summary":"涓婁紶鐢ㄦ埛澶村儚鍒?OSS","description":"涓婁紶鐢ㄦ埛澶村儚鍒?OSS","operationId":"uploadAvatar","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"瀵煎叆鏂囦欢"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAvatarUploadVo"}}}}}}},"/app/location/update":{"post":{"tags":["App 鎴块棿浣嶇疆绠$悊鎺у埗鍣?],"summary":"淇敼鎴块棿浣嶇疆鍚嶇О\n ","description":"淇敼鎴块棿浣嶇疆鍚嶇О\n

\n 鏀寔淇敼浣嶇疆鍚嶇О銆佸浘鏍囧拰鎺掑簭鍊硷紝鍚屼竴瀹跺涵涓嬩綅缃悕绉颁笉鍙噸澶嶃€?,"operationId":"updateLocation","requestBody":{"description":"淇敼浣嶇疆璇锋眰鍙傛暟锛堜綅缃甀D銆佷綅缃悕绉?1-10 涓瓧绗︺€佸彲閫夊浘鏍囦笌鎺掑簭锛?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLocationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/location/create":{"post":{"tags":["App 鎴块棿浣嶇疆绠$悊鎺у埗鍣?],"summary":"鍒涘缓鏂扮殑鎴块棿浣嶇疆\n ","description":"鍒涘缓鏂扮殑鎴块棿浣嶇疆\n

\n 鍦ㄥ悓涓€瀹跺涵涓嬩綅缃悕绉颁笉鍙噸澶嶃€?,"operationId":"createLocation","requestBody":{"description":"鍒涘缓浣嶇疆璇锋眰鍙傛暟锛堝搴璉D銆佷綅缃悕绉?1-10 涓瓧绗︺€佸彲閫夊浘鏍囦笌鎺掑簭锛?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLocationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/home/create":{"post":{"tags":["App 瀹跺涵绠$悊鎺у埗鍣?],"summary":"鍒涘缓鏂板搴璡n ","description":"鍒涘缓鏂板搴璡n

\n 鍒涘缓鍚庤嚜鍔ㄥ垵濮嬪寲涓€涓猏"瀹㈠巺\"浣嶇疆锛屽搴悕绉板湪鍚屼竴鐢ㄦ埛涓嬩笉鍙噸澶嶃€?,"operationId":"createHome","requestBody":{"description":"鍒涘缓瀹跺涵璇锋眰鍙傛暟锛堝搴悕绉帮紝2-10涓瓧绗︼級","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateHomeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/device/updateRuntime":{"post":{"tags":["App 璁惧鎺у埗鍣?],"summary":"鏇存柊璁惧杩愯鏁版嵁\n ","description":"鏇存柊璁惧杩愯鏁版嵁\n

\n 鍓嶇閫氳繃钃濈墮鍚屾璁惧杩愯鐘舵€侊紝鏇存柊璁惧鍩虹鐘舵€佸拰鍑€鍖栧櫒杩愯鏁版嵁銆?,"operationId":"updateDeviceRuntime","requestBody":{"description":"鏇存柊鍙傛暟锛堣澶嘔D蹇呭~锛屽叾浣欏瓧娈垫寜闇€浼犲叆锛?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceRuntimeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/device/runtime":{"post":{"tags":["App 璁惧鎺у埗鍣?],"summary":"鏌ヨ璁惧杩愯鏁版嵁\n ","description":"鏌ヨ璁惧杩愯鏁版嵁\n

\n 鏍规嵁璁惧ID鏌ヨ璁惧杩愯鐘舵€佸強鍑€鍖栧櫒鏁版嵁銆?,"operationId":"getDeviceRuntime","requestBody":{"description":"鏌ヨ鍙傛暟锛堣澶嘔D锛?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRuntimeQueryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璁惧杩愯鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppDeviceRuntimeVo"}}}}}}},"/app/device/list":{"post":{"tags":["App 璁惧鎺у埗鍣?],"summary":"鏌ヨ褰撳墠鐢ㄦ埛鐨勮澶囧垪琛╘n ","description":"鏌ヨ褰撳墠鐢ㄦ埛鐨勮澶囧垪琛╘n

\n 鏀寔鎸夊搴璉D鍜屼綅缃甀D杩囨护锛岃繑鍥炶澶囦俊鎭強鍑€鍖栧櫒杩愯鏁版嵁銆?,"operationId":"listDevices","requestBody":{"description":"鏌ヨ鍙傛暟锛堝搴璉D銆佷綅缃甀D锛屽潎鍙€夛級","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceQueryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璁惧鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAppDeviceVo"}}}}}}},"/app/device/bind":{"post":{"tags":["App 璁惧鎺у埗鍣?],"summary":"缁戝畾璁惧\n ","description":"缁戝畾璁惧\n

\n 鍓嶇閫氳繃钃濈墮閰嶅璁惧鍚庯紝鏍规嵁璁惧缂栧彿缁戝畾褰撳墠鐢ㄦ埛銆俓n 鑻ヨ澶囧凡瀛樺湪鍒欑洿鎺ョ粦瀹氾紝涓嶅瓨鍦ㄥ垯鍏堟柊澧炶澶囧啀缁戝畾銆?,"operationId":"bindDevice","requestBody":{"description":"缁戝畾璇锋眰鍙傛暟锛堣澶囩紪鍙峰強钃濈墮閰嶅淇℃伅锛?,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceBindBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/sendSmsCode":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"鍙戦€佺煭淇¢獙璇佺爜","description":"鍙戦€佺煭淇¢獙璇佺爜

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"sendSmsCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSmsCodeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/register":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"娉ㄥ唽锛堟墜鏈哄彿銆侀獙璇佺爜銆佸瘑鐮併€佺‘璁ゅ瘑鐮侊級","description":"娉ㄥ唽锛堟墜鏈哄彿銆侀獙璇佺爜銆佸瘑鐮併€佺‘璁ゅ瘑鐮侊級

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"register_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppLoginVo"}}}}}}},"/app/auth/logout":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"閫€鍑虹櫥褰?,"description":"閫€鍑虹櫥褰?,"operationId":"logout_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/login/sms":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"鐭俊楠岃瘉鐮佺櫥褰?,"description":"鐭俊楠岃瘉鐮佺櫥褰?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"loginBySms","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginSmsBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppLoginVo"}}}}}}},"/app/auth/login/password":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"璐﹀彿瀵嗙爜鐧诲綍锛堣处鍙锋敮鎸佺敤鎴峰悕鎴栨墜鏈哄彿锛?,"description":"璐﹀彿瀵嗙爜鐧诲綍锛堣处鍙锋敮鎸佺敤鎴峰悕鎴栨墜鏈哄彿锛?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"loginByPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginPasswordBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppLoginVo"}}}}}}},"/app/auth/forgetPassword/verifyCode":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"蹇樿瀵嗙爜绗竴姝ワ細鏍¢獙鎵嬫満鍙峰拰鐭俊楠岃瘉鐮侊紝杩斿洖閲嶇疆浠ょ墝","description":"蹇樿瀵嗙爜绗竴姝ワ細鏍¢獙鎵嬫満鍙峰拰鐭俊楠岃瘉鐮侊紝杩斿洖閲嶇疆浠ょ墝

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"verifyResetCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyResetSmsCodeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/app/auth/forgetPassword/doReset":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"蹇樿瀵嗙爜绗簩姝ワ細鍑噸缃护鐗屽拰涓ゆ鏂板瘑鐮佸畬鎴愰噸缃?,"description":"蹇樿瀵嗙爜绗簩姝ワ細鍑噸缃护鐗屽拰涓ゆ鏂板瘑鐮佸畬鎴愰噸缃?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"doResetPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoResetPasswordBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/changePhone/verifyOld":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"鎹㈢粦鎵嬫満鍙风涓€姝ワ細鏍¢獙鍘熸墜鏈哄彿楠岃瘉鐮?,"description":"鎹㈢粦鎵嬫満鍙风涓€姝ワ細鏍¢獙鍘熸墜鏈哄彿楠岃瘉鐮?,"operationId":"verifyOldPhoneNumber","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOldPhoneBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/app/auth/changePhone/verifyNew":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"鎹㈢粦鎵嬫満鍙风浜屾锛氭牎楠屾柊鎵嬫満鍙烽獙璇佺爜骞舵洿鏂?,"description":"鎹㈢粦鎵嬫満鍙风浜屾锛氭牎楠屾柊鎵嬫満鍙烽獙璇佺爜骞舵洿鏂?,"operationId":"verifyNewPhoneNumberAndUpdate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyNewPhoneBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/cancelAccount":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"娉ㄩ攢璐﹀彿","description":"娉ㄩ攢璐﹀彿","operationId":"cancelAccount","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/agreements":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"鑾峰彇鐢熸晥鐨勫崗璁厤缃垪琛╘n ","description":"鑾峰彇鐢熸晥鐨勫崗璁厤缃垪琛╘n

\n 鏃犻渶鐧诲綍锛岃繑鍥炴墍鏈夊凡鐢熸晥鍗忚鐨勫熀鏈俊鎭紙ID銆佺被鍨嬨€佺紪鍙枫€佺増鏈彿銆佸悕绉帮級銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"listActiveAgreements","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢熸晥鐨勫崗璁垪琛?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAgreementVo"}}}}}}},"/app/auth/agreement/detail":{"post":{"tags":["App 鐢ㄦ埛璁よ瘉鎺у埗鍣?],"summary":"鑾峰彇鍗忚璇︽儏\n ","description":"鑾峰彇鍗忚璇︽儏\n

\n 鏃犻渶鐧诲綍锛屾牴鎹崗璁甀D杩斿洖鍗忚缂栧彿銆佸悕绉般€佺増鏈彿銆佸崗璁鏂囧強鐢熸晥鏃堕棿銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"getAgreementDetail","requestBody":{"description":"鍗忚ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgreementIdBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍗忚璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAgreementDetailVo"}}}}}}},"/api/snail/chat/session":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"session","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiEmbedTokenRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiEmbedTokenResponse"}}}}}}},"/api/snail/chat/resource/upload":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"uploadResource","parameters":[{"name":"bizType","in":"query","required":false,"schema":{"type":"string"}},{"name":"bizId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiResourceResponse"}}}}}}},"/api/snail/chat/completions":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"completions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiChatRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"text/event-stream":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServerSentEventString"}}}}}}}},"/api/snail/chat/agent/subscribe":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"subscribeAgent","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}},"delete":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"unsubscribeAgent","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/workflow/task/pageByTaskWait":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鏌ヨ褰撳墠鐢ㄦ埛鐨勫緟鍔炰换鍔°€?,"description":"鏌ヨ褰撳墠鐢ㄦ埛鐨勫緟鍔炰换鍔°€?,"operationId":"pageByTaskWait","parameters":[{"name":"flowTaskBo","in":"query","description":"鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"寰呭姙浠诲姟鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowTaskVo"}}}}}}},"/workflow/task/pageByTaskFinish":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鏌ヨ褰撳墠鐢ㄦ埛鐨勫凡鍔炰换鍔°€?,"description":"鏌ヨ褰撳墠鐢ㄦ埛鐨勫凡鍔炰换鍔°€?,"operationId":"pageByTaskFinish","parameters":[{"name":"flowTaskBo","in":"query","description":"鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"宸插姙浠诲姟鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowHisTaskVo"}}}}}}},"/workflow/task/pageByTaskCopy":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鏌ヨ褰撳墠鐢ㄦ埛鏀跺埌鐨勬妱閫佷换鍔°€?,"description":"鏌ヨ褰撳墠鐢ㄦ埛鏀跺埌鐨勬妱閫佷换鍔°€?,"operationId":"pageByTaskCopy","parameters":[{"name":"flowTaskBo","in":"query","description":"鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎶勯€佷换鍔″垎椤垫暟鎹?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowTaskVo"}}}}}}},"/workflow/task/pageByAllTaskWait":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鏌ヨ鍏ㄩ儴寰呭姙浠诲姟銆?,"description":"鏌ヨ鍏ㄩ儴寰呭姙浠诲姟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:task:list`

","operationId":"pageByAllTaskWait","parameters":[{"name":"flowTaskBo","in":"query","description":"鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"寰呭姙浠诲姟鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowTaskVo"}}}}}}},"/workflow/task/pageByAllTaskFinish":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鏌ヨ鍏ㄩ儴宸插姙浠诲姟銆?,"description":"鏌ヨ鍏ㄩ儴宸插姙浠诲姟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:task:list`

","operationId":"pageByAllTaskFinish","parameters":[{"name":"flowTaskBo","in":"query","description":"鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"宸插姙浠诲姟鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowHisTaskVo"}}}}}}},"/workflow/task/getTask/{taskId}":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鏍规嵁浠诲姟 id 鏌ヨ浠诲姟璇︽儏銆?,"description":"鏍规嵁浠诲姟 id 鏌ヨ浠诲姟璇︽儏銆?,"operationId":"getTask","parameters":[{"name":"taskId","in":"path","description":"浠诲姟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"浠诲姟璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowTaskVo"}}}}}}},"/workflow/task/getBackTaskNode/{taskId}/{nowNodeCode}":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鑾峰彇褰撳墠浠诲姟鍙┏鍥炵殑鍓嶇疆鑺傜偣銆?,"description":"鑾峰彇褰撳墠浠诲姟鍙┏鍥炵殑鍓嶇疆鑺傜偣銆?,"operationId":"getBackTaskNode","parameters":[{"name":"taskId","in":"path","description":"浠诲姟id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"nowNodeCode","in":"path","description":"褰撳墠鑺傜偣","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍙┏鍥炶妭鐐瑰垪琛?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListNode"}}}}}}},"/workflow/task/currentTaskAllUser/{taskId}":{"get":{"tags":["浠诲姟绠$悊 鎺у埗灞?],"summary":"鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊姙鐞嗕汉銆?,"description":"鑾峰彇褰撳墠浠诲姟鐨勬墍鏈夊姙鐞嗕汉銆?,"operationId":"currentTaskAllUser","parameters":[{"name":"taskId","in":"path","description":"浠诲姟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍔炵悊浜哄垪琛?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListUserDTO"}}}}}}},"/workflow/spel/{id}":{"get":{"tags":["娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?],"summary":"鑾峰彇娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夎鎯呫€?,"description":"鑾峰彇娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夎鎯呫€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:spel:query`

","operationId":"getInfo","parameters":[{"name":"id","in":"path","description":"涓婚敭","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"琛ㄨ揪寮忚鎯?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowSpelVo"}}}}}}},"/workflow/spel/list":{"get":{"tags":["娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?],"summary":"鍒嗛〉鏌ヨ娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夊垪琛ㄣ€?,"description":"鍒嗛〉鏌ヨ娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夊垪琛ㄣ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:spel:list`

","operationId":"list","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/FlowSpelBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"琛ㄨ揪寮忓垎椤垫暟鎹?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowSpelVo"}}}}}}},"/workflow/leave/{id}":{"get":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"鑾峰彇璇峰亣鍗曡鎯呫€?,"description":"鑾峰彇璇峰亣鍗曡鎯呫€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:query`

","operationId":"getInfo_1","parameters":[{"name":"id","in":"path","description":"涓婚敭","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璇峰亣璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}}},"/workflow/leave/list":{"get":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"鍒嗛〉鏌ヨ璇峰亣鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ璇峰亣鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:list`

","operationId":"list_1","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/TestLeaveBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璇峰亣鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultTestLeaveVo"}}}}}}},"/workflow/instance/pageByRunning":{"get":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鍒嗛〉鏌ヨ姝e湪杩愯鐨勬祦绋嬪疄渚嬨€?,"description":"鍒嗛〉鏌ヨ姝e湪杩愯鐨勬祦绋嬪疄渚嬨€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:list`

","operationId":"selectRunningInstanceList","parameters":[{"name":"flowInstanceBo","in":"query","description":"娴佺▼瀹炰緥","required":true,"schema":{"$ref":"#/components/schemas/FlowInstanceBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"姝e湪杩愯鐨勬祦绋嬪疄渚嬪垎椤垫暟鎹?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowInstanceVo"}}}}}}},"/workflow/instance/pageByFinish":{"get":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鍒嗛〉鏌ヨ宸茬粨鏉熺殑娴佺▼瀹炰緥銆?,"description":"鍒嗛〉鏌ヨ宸茬粨鏉熺殑娴佺▼瀹炰緥銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:list`

","operationId":"selectFinishInstanceList","parameters":[{"name":"flowInstanceBo","in":"query","description":"娴佺▼瀹炰緥","required":true,"schema":{"$ref":"#/components/schemas/FlowInstanceBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"宸茬粨鏉熺殑娴佺▼瀹炰緥鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowInstanceVo"}}}}}}},"/workflow/instance/pageByCurrent":{"get":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鑾峰彇褰撳墠鐧诲綍浜哄彂璧风殑娴佺▼瀹炰緥鍒楄〃銆?,"description":"鑾峰彇褰撳墠鐧诲綍浜哄彂璧风殑娴佺▼瀹炰緥鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:currentList`

","operationId":"selectCurrentInstanceList","parameters":[{"name":"flowInstanceBo","in":"query","description":"鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/FlowInstanceBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"褰撳墠鐢ㄦ埛鍙戣捣鐨勬祦绋嬪疄渚嬪垎椤垫暟鎹?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowInstanceVo"}}}}}}},"/workflow/instance/instanceVariable/{instanceId}":{"get":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鑾峰彇娴佺▼鍙橀噺銆?,"description":"鑾峰彇娴佺▼鍙橀噺銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:variableQuery`

","operationId":"instanceVariable","parameters":[{"name":"instanceId","in":"path","description":"娴佺▼瀹炰緥id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼鍙橀噺","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringObject"}}}}}}},"/workflow/instance/getInfo/{businessId}":{"get":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鏍规嵁涓氬姟 id 鏌ヨ娴佺▼瀹炰緥璇︾粏淇℃伅銆?,"description":"鏍规嵁涓氬姟 id 鏌ヨ娴佺▼瀹炰緥璇︾粏淇℃伅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:query`

","operationId":"getInfo_2","parameters":[{"name":"businessId","in":"path","description":"涓氬姟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼瀹炰緥璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowInstanceVo"}}}}}}},"/workflow/instance/flowHisTaskList/{businessId}":{"get":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鑾峰彇娴佺▼鍥惧拰娴佺▼璁板綍锛岀敤浜庡睍绀哄疄渚嬫祦杞建杩广€?,"description":"鑾峰彇娴佺▼鍥惧拰娴佺▼璁板綍锛岀敤浜庡睍绀哄疄渚嬫祦杞建杩广€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:query`

","operationId":"flowHisTaskList","parameters":[{"name":"businessId","in":"path","description":"涓氬姟id","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼鍥句笌鍘嗗彶鑺傜偣淇℃伅","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringObject"}}}}}}},"/workflow/definition/{id}":{"get":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鑾峰彇娴佺▼瀹氫箟璇︾粏淇℃伅銆?,"description":"鑾峰彇娴佺▼瀹氫箟璇︾粏淇℃伅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:query`

","operationId":"getInfo_3","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼瀹氫箟璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RDefinition"}}}}}}},"/workflow/definition/xmlString/{id}":{"get":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鑾峰彇娴佺▼瀹氫箟 JSON 瀛楃涓层€?,"description":"鑾峰彇娴佺▼瀹氫箟 JSON 瀛楃涓层€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:query`

","operationId":"xmlString","parameters":[{"name":"id","in":"path","description":"娴佺▼瀹氫箟id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼瀹氫箟 JSON","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/workflow/definition/unPublishList":{"get":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鍒嗛〉鏌ヨ鏈彂甯冪殑娴佺▼瀹氫箟鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ鏈彂甯冪殑娴佺▼瀹氫箟鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:list`

","operationId":"unPublishList","parameters":[{"name":"flowDefinition","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/FlowDefinition"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鏈彂甯冩祦绋嬪畾涔夊垎椤垫暟鎹?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowDefinitionVo"}}}}}}},"/workflow/definition/list":{"get":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鍒嗛〉鏌ヨ娴佺▼瀹氫箟鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ娴佺▼瀹氫箟鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:list`

","operationId":"list_2","parameters":[{"name":"flowDefinition","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/FlowDefinition"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼瀹氫箟鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowDefinitionVo"}}}}}}},"/workflow/category/{categoryId}":{"get":{"tags":["娴佺▼鍒嗙被"],"summary":"鑾峰彇鍗曚釜娴佺▼鍒嗙被璇︽儏銆?,"description":"鑾峰彇鍗曚釜娴佺▼鍒嗙被璇︽儏銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:category:query`

","operationId":"getInfo_4","parameters":[{"name":"categoryId","in":"path","description":"涓婚敭","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼鍒嗙被璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowCategoryVo"}}}}}},"delete":{"tags":["娴佺▼鍒嗙被"],"summary":"鍒犻櫎娴佺▼鍒嗙被锛屽垹闄ゅ墠鏍¢獙榛樿鍒嗙被銆佸瓙鑺傜偣鍜岀粦瀹氭祦绋嬪畾涔夈€?,"description":"鍒犻櫎娴佺▼鍒嗙被锛屽垹闄ゅ墠鏍¢獙榛樿鍒嗙被銆佸瓙鑺傜偣鍜岀粦瀹氭祦绋嬪畾涔夈€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:category:remove`

","operationId":"remove","parameters":[{"name":"categoryId","in":"path","description":"涓婚敭","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/category/list":{"get":{"tags":["娴佺▼鍒嗙被"],"summary":"鏌ヨ娴佺▼鍒嗙被鍒楄〃銆?,"description":"鏌ヨ娴佺▼鍒嗙被鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:category:list`

","operationId":"list_3","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼鍒嗙被鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListFlowCategoryVo"}}}}}}},"/workflow/category/categoryTree":{"get":{"tags":["娴佺▼鍒嗙被"],"summary":"鑾峰彇娴佺▼鍒嗙被鏍戝垪琛紝鐢ㄤ簬娴佺▼瀹氫箟閫夋嫨鍒嗙被鑺傜偣銆?,"description":"鑾峰彇娴佺▼鍒嗙被鏍戝垪琛紝鐢ㄤ簬娴佺▼瀹氫箟閫夋嫨鍒嗙被鑺傜偣銆?,"operationId":"categoryTree","parameters":[{"name":"categoryBo","in":"query","description":"娴佺▼鍒嗙被","required":true,"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娴佺▼鍒嗙被鏍?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/warm-flow/query-flow-chart/{id}":{"get":{"tags":["warm-flow-controller"],"operationId":"queryFlowChart","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultDefJson"}}}}}}},"/warm-flow/query-def/{id}":{"get":{"tags":["warm-flow-controller"],"operationId":"queryDef","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultDefJson"}}}}}}},"/warm-flow/query-def":{"get":{"tags":["warm-flow-controller"],"operationId":"queryDef_1","parameters":[],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultDefJson"}}}}}}},"/warm-flow/published-form":{"get":{"tags":["warm-flow-controller"],"operationId":"publishedForm","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListForm"}}}}}}},"/warm-flow/node-ext":{"get":{"tags":["warm-flow-controller"],"operationId":"nodeExt","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListNodeExt"}}}}}}},"/warm-flow/listener-list":{"get":{"tags":["warm-flow-controller"],"operationId":"listenerList","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListListenerVo"}}}}}}},"/warm-flow/handler-type":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerType","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListString"}}}}}}},"/warm-flow/handler-result":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerResult","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/HandlerQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultHandlerSelectVo"}}}}}}},"/warm-flow/handler-feedback":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerFeedback","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/HandlerFeedBackDto"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListHandlerFeedBackVo"}}}}}}},"/warm-flow/handler-dict":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerDict","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListDict"}}}}}}},"/warm-flow/form-content/{id}":{"get":{"tags":["warm-flow-controller"],"operationId":"getFormContent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultString"}}}}}}},"/warm-flow/execute/load/{taskId}":{"get":{"tags":["warm-flow-controller"],"operationId":"load","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFlowDto"}}}}}}},"/warm-flow/execute/hisLoad/{taskId}":{"get":{"tags":["warm-flow-controller"],"operationId":"hisLoad","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFlowDto"}}}}}}},"/warm-flow-ui/config":{"get":{"tags":["warm-flow-ui-controller"],"operationId":"config","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultWarmFlowVo"}}}}}}},"/system/user/unlock/{userId}":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"瑙i攣鐢ㄦ埛","description":"瑙i攣鐢ㄦ埛

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:edit`

","operationId":"unlock","parameters":[{"name":"userId","in":"path","description":"鐢ㄦ埛ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/optionselect":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鏍规嵁鐢ㄦ埛ID涓叉壒閲忚幏鍙栫敤鎴峰熀纭€淇℃伅","description":"鏍规嵁鐢ㄦ埛ID涓叉壒閲忚幏鍙栫敤鎴峰熀纭€淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:query`

","operationId":"optionselect","parameters":[{"name":"userIds","in":"query","description":"鐢ㄦ埛ID涓?,"required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"deptId","in":"query","description":"閮ㄩ棬ID","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛鍩虹淇℃伅鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysUserVo"}}}}}}},"/system/user/list":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ鐢ㄦ埛鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:list`

","operationId":"list_4","parameters":[{"name":"user","in":"query","description":"鐢ㄦ埛鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛鍒嗛〉鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserVo"}}}}}}},"/system/user/list/dept/{deptId}":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鑾峰彇鎸囧畾閮ㄩ棬涓嬬殑鍏ㄩ儴鐢ㄦ埛淇℃伅銆?,"description":"鑾峰彇鎸囧畾閮ㄩ棬涓嬬殑鍏ㄩ儴鐢ㄦ埛淇℃伅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:list`

","operationId":"listByDept","parameters":[{"name":"deptId","in":"path","description":"閮ㄩ棬ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysUserVo"}}}}}}},"/system/user/getInfo":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鑾峰彇鐢ㄦ埛淇℃伅","description":"鑾峰彇鐢ㄦ埛淇℃伅","operationId":"getInfo_5","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"褰撳墠鐧诲綍鐢ㄦ埛淇℃伅銆佽鑹蹭笌鏉冮檺闆嗗悎","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RUserInfoVo"}}}}}}},"/system/user/deptTree":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鑾峰彇鐢ㄦ埛绛涢€夌敤鐨勯儴闂ㄦ爲銆?,"description":"鑾峰彇鐢ㄦ埛绛涢€夌敤鐨勯儴闂ㄦ爲銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:list`

","operationId":"deptTree","parameters":[{"name":"dept","in":"query","description":"閮ㄩ棬鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDeptBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閮ㄩ棬鏍戝垪琛?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/system/user/authRole/{userId}":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊","description":"鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇鎺堟潈瑙掕壊

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:query`

","operationId":"authRole","parameters":[{"name":"userId","in":"path","description":"鐢ㄦ埛ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛鍙婂叾鍙巿鏉冭鑹蹭俊鎭?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysUserInfoVo"}}}}}}},"/system/user/{userId}":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:query`

","operationId":"getInfo_6","parameters":[{"name":"userId","in":"path","description":"鐢ㄦ埛ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛璇︽儏銆佽鑹蹭笌宀椾綅淇℃伅","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysUserInfoVo"}}}}}}},"/system/user/":{"get":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁鐢ㄦ埛缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:query`

","operationId":"getInfo_7","parameters":[],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛璇︽儏銆佽鑹蹭笌宀椾綅淇℃伅","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysUserInfoVo"}}}}}}},"/system/social/list":{"get":{"tags":["绀句細鍖栧叧绯?],"summary":"鏌ヨ褰撳墠鐧诲綍鐢ㄦ埛鐨勭ぞ浼氬寲璐﹀彿缁戝畾鍒楄〃銆?,"description":"鏌ヨ褰撳墠鐧诲綍鐢ㄦ埛鐨勭ぞ浼氬寲璐﹀彿缁戝畾鍒楄〃銆?,"operationId":"list_5","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"缁戝畾鍏崇郴鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysSocialVo"}}}}}}},"/system/role/{roleId}":{"get":{"tags":["瑙掕壊淇℃伅"],"summary":"鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁瑙掕壊缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:query`

","operationId":"getInfo_8","parameters":[{"name":"roleId","in":"path","description":"瑙掕壊ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瑙掕壊璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysRoleVo"}}}}}}},"/system/role/optionselect":{"get":{"tags":["瑙掕壊淇℃伅"],"summary":"鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛?,"description":"鑾峰彇瑙掕壊閫夋嫨妗嗗垪琛?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:query`

","operationId":"optionselect_1","parameters":[{"name":"roleIds","in":"query","description":"瑙掕壊ID涓?,"required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瑙掕壊鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysRoleVo"}}}}}}},"/system/role/list":{"get":{"tags":["瑙掕壊淇℃伅"],"summary":"鍒嗛〉鏌ヨ瑙掕壊鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ瑙掕壊鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:list`

","operationId":"list_6","parameters":[{"name":"role","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysRoleBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瑙掕壊鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysRoleVo"}}}}}}},"/system/role/deptTree/{roleId}":{"get":{"tags":["瑙掕壊淇℃伅"],"summary":"鑾峰彇瀵瑰簲瑙掕壊閮ㄩ棬鏍戝垪琛?,"description":"鑾峰彇瀵瑰簲瑙掕壊閮ㄩ棬鏍戝垪琛?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:list`

","operationId":"roleDeptTreeselect","parameters":[{"name":"roleId","in":"path","description":"瑙掕壊ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瑙掕壊閮ㄩ棬鏍戜俊鎭?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RDeptTreeSelectVo"}}}}}}},"/system/role/authUser/unallocatedList":{"get":{"tags":["瑙掕壊淇℃伅"],"summary":"鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛ㄣ€?,"description":"鏌ヨ鏈垎閰嶇敤鎴疯鑹插垪琛ㄣ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:list`

","operationId":"unallocatedList","parameters":[{"name":"user","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserVo"}}}}}}},"/system/role/authUser/allocatedList":{"get":{"tags":["瑙掕壊淇℃伅"],"summary":"鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛ㄣ€?,"description":"鏌ヨ宸插垎閰嶇敤鎴疯鑹插垪琛ㄣ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:list`

","operationId":"allocatedList","parameters":[{"name":"user","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐢ㄦ埛鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserVo"}}}}}}},"/system/post/{postId}":{"get":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁宀椾綅缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:query`

","operationId":"getInfo_9","parameters":[{"name":"postId","in":"path","description":"宀椾綅ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"宀椾綅璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysPostVo"}}}}}}},"/system/post/optionselect":{"get":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"鑾峰彇宀椾綅閫夋嫨妗嗗垪琛?,"description":"鑾峰彇宀椾綅閫夋嫨妗嗗垪琛?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:query`

","operationId":"optionselect_2","parameters":[{"name":"postIds","in":"query","description":"宀椾綅ID涓?,"required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"deptId","in":"query","description":"閮ㄩ棬id","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"宀椾綅鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysPostVo"}}}}}}},"/system/post/list":{"get":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒嗛〉鏌ヨ宀椾綅鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ宀椾綅鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:list`

","operationId":"list_7","parameters":[{"name":"post","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysPostBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"宀椾綅鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysPostVo"}}}}}}},"/system/post/deptTree":{"get":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"鑾峰彇宀椾綅绛涢€夌敤鐨勯儴闂ㄦ爲銆?,"description":"鑾峰彇宀椾綅绛涢€夌敤鐨勯儴闂ㄦ爲銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:list`

","operationId":"deptTree_1","parameters":[{"name":"dept","in":"query","description":"閮ㄩ棬鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDeptBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閮ㄩ棬鏍戝垪琛?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/system/notice/{noticeId}":{"get":{"tags":["鍏憡 淇℃伅鎿嶄綔澶勭悊"],"summary":"鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁閫氱煡鍏憡缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:notice:query`

","operationId":"getInfo_10","parameters":[{"name":"noticeId","in":"path","description":"鍏憡ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍏憡璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysNoticeVo"}}}}}}},"/system/notice/list":{"get":{"tags":["鍏憡 淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒嗛〉鏌ヨ閫氱煡鍏憡鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ閫氱煡鍏憡鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:notice:list`

","operationId":"list_8","parameters":[{"name":"notice","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysNoticeBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍏憡鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysNoticeVo"}}}}}}},"/system/menu/{menuId}":{"get":{"tags":["鑿滃崟淇℃伅"],"summary":"鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁鑿滃崟缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:query`

**瑙掕壊鏍¢獙锛?*

- `superadmin`
","operationId":"getInfo_11","parameters":[{"name":"menuId","in":"path","description":"鑿滃崟ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鑿滃崟璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysMenuVo"}}}}}},"delete":{"tags":["鑿滃崟淇℃伅"],"summary":"鍒犻櫎鑿滃崟","description":"鍒犻櫎鑿滃崟

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:remove`

**瑙掕壊鏍¢獙锛?*

- `superadmin`
","operationId":"remove_1","parameters":[{"name":"menuId","in":"path","description":"鑿滃崟ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/menu/treeselect":{"get":{"tags":["鑿滃崟淇℃伅"],"summary":"鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛ㄣ€?,"description":"鑾峰彇鑿滃崟涓嬫媺鏍戝垪琛ㄣ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:query`

","operationId":"treeselect","parameters":[{"name":"menu","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysMenuBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鑿滃崟鏍?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/system/menu/roleMenuTreeselect/{roleId}":{"get":{"tags":["鑿滃崟淇℃伅"],"summary":"鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍?,"description":"鍔犺浇瀵瑰簲瑙掕壊鑿滃崟鍒楄〃鏍?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:query`

","operationId":"roleMenuTreeselect","parameters":[{"name":"roleId","in":"path","description":"瑙掕壊ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瑙掕壊鑿滃崟鏍戝強閫変腑鑺傜偣","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMenuTreeSelectVo"}}}}}}},"/system/menu/list":{"get":{"tags":["鑿滃崟淇℃伅"],"summary":"鏌ヨ鑿滃崟鍒楄〃銆?,"description":"鏌ヨ鑿滃崟鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:list`

**瑙掕壊鏍¢獙锛?*

- `superadmin`
","operationId":"list_9","parameters":[{"name":"menu","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysMenuBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鑿滃崟鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysMenuVo"}}}}}}},"/system/menu/getRouters":{"get":{"tags":["鑿滃崟淇℃伅"],"summary":"鑾峰彇璺敱淇℃伅","description":"鑾峰彇璺敱淇℃伅","operationId":"getRouters","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"褰撳墠鐢ㄦ埛鍙闂殑璺敱淇℃伅","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListRouterVo"}}}}}}},"/system/dict/type/{dictId}":{"get":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鏌ヨ瀛楀吀绫诲瀷璇︾粏","description":"鏌ヨ瀛楀吀绫诲瀷璇︾粏

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:query`

","operationId":"getInfo_12","parameters":[{"name":"dictId","in":"path","description":"瀛楀吀ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀛楀吀绫诲瀷璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysDictTypeVo"}}}}}}},"/system/dict/type/optionselect":{"get":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鑾峰彇瀛楀吀绫诲瀷涓嬫媺閫夋嫨鍒楄〃銆?,"description":"鑾峰彇瀛楀吀绫诲瀷涓嬫媺閫夋嫨鍒楄〃銆?,"operationId":"optionselect_3","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀛楀吀绫诲瀷鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDictTypeVo"}}}}}}},"/system/dict/type/list":{"get":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鍒嗛〉鏌ヨ瀛楀吀绫诲瀷鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ瀛楀吀绫诲瀷鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:list`

","operationId":"list_10","parameters":[{"name":"dictType","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀛楀吀绫诲瀷鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysDictTypeVo"}}}}}}},"/system/dict/data/{dictCode}":{"get":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鏌ヨ瀛楀吀鏁版嵁璇︾粏","description":"鏌ヨ瀛楀吀鏁版嵁璇︾粏

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:query`

","operationId":"getInfo_13","parameters":[{"name":"dictCode","in":"path","description":"瀛楀吀code","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀛楀吀鏁版嵁璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysDictDataVo"}}}}}}},"/system/dict/data/type/{dictType}":{"get":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅","description":"鏍规嵁瀛楀吀绫诲瀷鏌ヨ瀛楀吀鏁版嵁淇℃伅","operationId":"dictType","parameters":[{"name":"dictType","in":"path","description":"瀛楀吀绫诲瀷","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀛楀吀鏁版嵁鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDictDataVo"}}}}}}},"/system/dict/data/list":{"get":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鍒嗛〉鏌ヨ瀛楀吀鏁版嵁鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ瀛楀吀鏁版嵁鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:list`

","operationId":"list_11","parameters":[{"name":"dictData","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDictDataBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀛楀吀鏁版嵁鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysDictDataVo"}}}}}}},"/system/dept/{deptId}":{"get":{"tags":["閮ㄩ棬淇℃伅"],"summary":"鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁閮ㄩ棬缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:query`

","operationId":"getInfo_14","parameters":[{"name":"deptId","in":"path","description":"閮ㄩ棬ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閮ㄩ棬璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysDeptVo"}}}}}},"delete":{"tags":["閮ㄩ棬淇℃伅"],"summary":"鍒犻櫎閮ㄩ棬","description":"鍒犻櫎閮ㄩ棬

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:remove`

","operationId":"remove_2","parameters":[{"name":"deptId","in":"path","description":"閮ㄩ棬ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dept/optionselect":{"get":{"tags":["閮ㄩ棬淇℃伅"],"summary":"鑾峰彇閮ㄩ棬閫夋嫨妗嗗垪琛?,"description":"鑾峰彇閮ㄩ棬閫夋嫨妗嗗垪琛?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:query`

","operationId":"optionselect_4","parameters":[{"name":"deptIds","in":"query","description":"閮ㄩ棬ID涓?,"required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閮ㄩ棬鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDeptVo"}}}}}}},"/system/dept/list":{"get":{"tags":["閮ㄩ棬淇℃伅"],"summary":"鏌ヨ閮ㄩ棬鍒楄〃銆?,"description":"鏌ヨ閮ㄩ棬鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:list`

","operationId":"list_12","parameters":[{"name":"dept","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysDeptBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閮ㄩ棬鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDeptVo"}}}}}}},"/system/dept/list/exclude/{deptId}":{"get":{"tags":["閮ㄩ棬淇℃伅"],"summary":"鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級","description":"鏌ヨ閮ㄩ棬鍒楄〃锛堟帓闄よ妭鐐癸級

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dept:list`

","operationId":"excludeChild","parameters":[{"name":"deptId","in":"path","description":"閮ㄩ棬ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"杩囨护鍚庣殑閮ㄩ棬鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDeptVo"}}}}}}},"/system/config/{configId}":{"get":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅","description":"鏍规嵁鍙傛暟缂栧彿鑾峰彇璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:query`

","operationId":"getInfo_15","parameters":[{"name":"configId","in":"path","description":"鍙傛暟ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍙傛暟閰嶇疆璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysConfigVo"}}}}}}},"/system/config/list":{"get":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒嗛〉鏌ヨ鍙傛暟閰嶇疆鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ鍙傛暟閰嶇疆鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:list`

","operationId":"list_13","parameters":[{"name":"config","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysConfigBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍙傛暟閰嶇疆鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysConfigVo"}}}}}}},"/system/config/configKey/{configKey}":{"get":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊?,"description":"鏍规嵁鍙傛暟閿悕鏌ヨ鍙傛暟鍊?,"operationId":"getConfigKey","parameters":[{"name":"configKey","in":"path","description":"鍙傛暟Key","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍙傛暟鍊?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/system/client/{id}":{"get":{"tags":["瀹㈡埛绔鐞?],"summary":"鑾峰彇鍗曚釜瀹㈡埛绔殑璇︾粏閰嶇疆淇℃伅銆?,"description":"鑾峰彇鍗曚釜瀹㈡埛绔殑璇︾粏閰嶇疆淇℃伅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:query`

","operationId":"getInfo_16","parameters":[{"name":"id","in":"path","description":"涓婚敭","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀹㈡埛绔鎯?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysClientVo"}}}}}}},"/system/client/list":{"get":{"tags":["瀹㈡埛绔鐞?],"summary":"鍒嗛〉鏌ヨ瀹㈡埛绔鐞嗗垪琛ㄣ€?,"description":"鍒嗛〉鏌ヨ瀹㈡埛绔鐞嗗垪琛ㄣ€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:list`

","operationId":"list_14","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysClientBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀹㈡埛绔垎椤垫暟鎹?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysClientVo"}}}}}}},"/resource/sms/code":{"get":{"tags":["楠岃瘉鐮佹搷浣滃鐞?],"summary":"鍙戦€佺煭淇¢獙璇佺爜銆?,"description":"鍙戦€佺煭淇¢獙璇佺爜銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"smsCode","parameters":[{"name":"phoneNumber","in":"query","description":"鐢ㄦ埛鎵嬫満鍙?,"required":true,"schema":{"type":"string","minLength":1}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/list":{"get":{"tags":["鏂囦欢涓婁紶 鎺у埗灞?],"summary":"鍒嗛〉鏌ヨ OSS 瀵硅薄瀛樺偍鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ OSS 瀵硅薄瀛樺偍鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:oss:list`

","operationId":"list_15","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysOssBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OSS 鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysOssVo"}}}}}}},"/resource/oss/listByIds/{ossIds}":{"get":{"tags":["鏂囦欢涓婁紶 鎺у埗灞?],"summary":"鏌ヨOSS瀵硅薄鍩轰簬id涓?,"description":"鏌ヨOSS瀵硅薄鍩轰簬id涓?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:oss:query`

","operationId":"listByIds","parameters":[{"name":"ossIds","in":"path","description":"OSS瀵硅薄ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OSS 瀵硅薄鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysOssVo"}}}}}}},"/resource/oss/download/{ossId}":{"get":{"tags":["鏂囦欢涓婁紶 鎺у埗灞?],"summary":"涓嬭浇OSS瀵硅薄","description":"涓嬭浇OSS瀵硅薄

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:oss:download`

","operationId":"download","parameters":[{"name":"ossId","in":"path","description":"OSS瀵硅薄ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/resource/oss/config/{ossConfigId}":{"get":{"tags":["瀵硅薄瀛樺偍閰嶇疆"],"summary":"鑾峰彇鍗曚釜瀵硅薄瀛樺偍閰嶇疆璇︽儏銆?,"description":"鑾峰彇鍗曚釜瀵硅薄瀛樺偍閰嶇疆璇︽儏銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:ossConfig:list`

","operationId":"getInfo_17","parameters":[{"name":"ossConfigId","in":"path","description":"OSS閰嶇疆ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閰嶇疆璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysOssConfigVo"}}}}}}},"/resource/oss/config/list":{"get":{"tags":["瀵硅薄瀛樺偍閰嶇疆"],"summary":"鍒嗛〉鏌ヨ瀵硅薄瀛樺偍閰嶇疆鍒楄〃銆?,"description":"鍒嗛〉鏌ヨ瀵硅薄瀛樺偍閰嶇疆鍒楄〃銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:ossConfig:list`

","operationId":"list_16","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"閰嶇疆鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysOssConfigVo"}}}}}}},"/resource/message":{"get":{"tags":["SSE 鎺у埗鍣?],"summary":"寤虹珛褰撳墠鐧诲綍鐢ㄦ埛鐨?SSE 杩炴帴銆?,"description":"寤虹珛褰撳墠鐧诲綍鐢ㄦ埛鐨?SSE 杩炴帴銆?,"operationId":"connect","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"SSE 鍙戝皠鍣?,"content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/resource/message/close":{"get":{"tags":["SSE 鎺у埗鍣?],"summary":"鍏抽棴褰撳墠鐧诲綍鐢ㄦ埛鐨?SSE 杩炴帴銆?,"description":"鍏抽棴褰撳墠鐧诲綍鐢ㄦ埛鐨?SSE 杩炴帴銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"close","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/message/box":{"get":{"tags":["娑堟伅璁板綍鎺у埗鍣?],"summary":"鏌ヨ褰撳墠鐢ㄦ埛娑堟伅鐩掑瓙鏁版嵁","description":"鏌ヨ褰撳墠鐢ㄦ埛娑堟伅鐩掑瓙鏁版嵁","operationId":"getBox","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"娑堟伅鐩掑瓙鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysMessageBoxVo"}}}}}}},"/resource/email/code":{"get":{"tags":["楠岃瘉鐮佹搷浣滃鐞?],"summary":"鍙戦€侀偖绠遍獙璇佺爜","description":"鍙戦€侀偖绠遍獙璇佺爜

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"emailCode","parameters":[{"name":"email","in":"query","description":"閭","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/operlog/list":{"get":{"tags":["鎿嶄綔鏃ュ織璁板綍"],"summary":"鍒嗛〉鏌ヨ鎿嶄綔鏃ュ織璁板綍銆?,"description":"鍒嗛〉鏌ヨ鎿嶄綔鏃ュ織璁板綍銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:operlog:list`

","operationId":"list_17","parameters":[{"name":"operLog","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysOperLogBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔鏃ュ織鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysOperLogVo"}}}}}}},"/monitor/online":{"get":{"tags":["鍦ㄧ嚎鐢ㄦ埛鐩戞帶"],"summary":"鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鐨勫湪绾胯澶囧垪琛紝浠呰繑鍥炲綋鍓嶈处鍙蜂粛鏈夋晥鐨?token 浼氳瘽銆?,"description":"鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛鐨勫湪绾胯澶囧垪琛紝浠呰繑鍥炲綋鍓嶈处鍙蜂粛鏈夋晥鐨?token 浼氳瘽銆?,"operationId":"getInfo_18","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"褰撳墠鐢ㄦ埛鍦ㄧ嚎璁惧鍒楄〃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserOnline"}}}}}}},"/monitor/online/list":{"get":{"tags":["鍦ㄧ嚎鐢ㄦ埛鐩戞帶"],"summary":"鑾峰彇鍦ㄧ嚎鐢ㄦ埛鐩戞帶鍒楄〃锛屽苟鎸?IP 鎴栫敤鎴峰悕鏉′欢杩囨护褰撳墠鏈夋晥浼氳瘽銆?,"description":"鑾峰彇鍦ㄧ嚎鐢ㄦ埛鐩戞帶鍒楄〃锛屽苟鎸?IP 鎴栫敤鎴峰悕鏉′欢杩囨护褰撳墠鏈夋晥浼氳瘽銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:online:list`

","operationId":"list_18","parameters":[{"name":"ipaddr","in":"query","description":"IP鍦板潃","required":true,"schema":{"type":"string"}},{"name":"userName","in":"query","description":"鐢ㄦ埛鍚?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鍦ㄧ嚎鐢ㄦ埛鍒嗛〉鏁版嵁","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserOnline"}}}}}}},"/monitor/loginInfo/unlock/{userName}":{"get":{"tags":["绯荤粺璁块棶璁板綍"],"summary":"娓呴櫎鎸囧畾鐢ㄦ埛鐨勭櫥褰曞け璐ラ攣瀹氱姸鎬併€?,"description":"娓呴櫎鎸囧畾鐢ㄦ埛鐨勭櫥褰曞け璐ラ攣瀹氱姸鎬併€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:logininfo:unlock`

","operationId":"unlock_1","parameters":[{"name":"userName","in":"path","description":"鐢ㄦ埛鍚?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/loginInfo/list":{"get":{"tags":["绯荤粺璁块棶璁板綍"],"summary":"鍒嗛〉鏌ヨ绯荤粺璁块棶璁板綍銆?,"description":"鍒嗛〉鏌ヨ绯荤粺璁块棶璁板綍銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:logininfo:list`

","operationId":"list_19","parameters":[{"name":"loginInfo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/SysLoginInfoBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鐧诲綍鏃ュ織鍒嗛〉缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysLoginInfoVo"}}}}}}},"/monitor/cache":{"get":{"tags":["缂撳瓨鐩戞帶"],"summary":"鑾峰彇 Redis 缂撳瓨鐩戞帶淇℃伅銆?,"description":"鑾峰彇 Redis 缂撳瓨鐩戞帶淇℃伅銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:cache:list`

","operationId":"getInfo_19","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"Redis 淇℃伅銆佸簱澶у皬涓庡懡浠ょ粺璁?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RCacheListInfoVo"}}}}}}},"/device/device/{deviceId}":{"get":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"鏌ヨ璁惧璇︽儏銆傝繍琛屾暟鎹彧璇汇€?,"description":"鏌ヨ璁惧璇︽儏銆傝繍琛屾暟鎹彧璇汇€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:query`

","operationId":"getInfo_20","parameters":[{"name":"deviceId","in":"path","description":"璁惧涓婚敭","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璁惧璇︽儏","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RCzDeviceVo"}}}}}}},"/device/device/productOptions":{"get":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"鏌ヨ鍙坊鍔犵殑浜у搧妯℃澘銆?,"description":"鏌ヨ鍙坊鍔犵殑浜у搧妯℃澘銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:query` | `device:device:add`

","operationId":"productOptions","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"浜у搧妯℃澘","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListCzProductOptionVo"}}}}}}},"/device/device/locationOptions":{"get":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"鏌ヨ鍙€夋嫨鐨勬埧闂淬€?,"description":"鏌ヨ鍙€夋嫨鐨勬埧闂淬€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:query` | `device:device:add` | `device:device:edit`

","operationId":"locationOptions","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎴块棿","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListCzLocationOptionVo"}}}}}}},"/device/device/list":{"get":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"鍒嗛〉鏌ヨ璁惧銆?,"description":"鍒嗛〉鏌ヨ璁惧銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:list`

","operationId":"list_20","parameters":[{"name":"bo","in":"query","description":"鏌ヨ鏉′欢","required":true,"schema":{"$ref":"#/components/schemas/CzDeviceBo"}},{"name":"pageQuery","in":"query","description":"鍒嗛〉鍙傛暟","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璁惧鍒嗛〉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultCzDeviceVo"}}}}}}},"/demo/websocket/send":{"get":{"tags":["WebSocket 婕旂ず妗堜緥"],"summary":"鍙戝竷娑堟伅","description":"鍙戝竷娑堟伅","operationId":"send","parameters":[{"name":"userId","in":"query","description":"鐩爣鐢ㄦ埛","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"message","in":"query","description":"鍙戦€佸唴瀹?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/tree/{id}":{"get":{"tags":["娴嬭瘯鏍戣〃Controller"],"summary":"鑾峰彇娴嬭瘯鏍戣〃璇︾粏淇℃伅","description":"鑾峰彇娴嬭瘯鏍戣〃璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:tree:query`

","operationId":"getInfo_21","parameters":[{"name":"id","in":"path","description":"娴嬭瘯鏍慖D","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestTreeVo"}}}}}}},"/demo/tree/list":{"get":{"tags":["娴嬭瘯鏍戣〃Controller"],"summary":"鏌ヨ娴嬭瘯鏍戣〃鍒楄〃","description":"鏌ヨ娴嬭瘯鏍戣〃鍒楄〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:tree:list`

","operationId":"list_21","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestTreeBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTestTreeVo"}}}}}}},"/demo/tree/export":{"get":{"tags":["娴嬭瘯鏍戣〃Controller"],"summary":"瀵煎嚭娴嬭瘯鏍戣〃鍒楄〃","description":"瀵煎嚭娴嬭瘯鏍戣〃鍒楄〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:tree:export`

","operationId":"export_13","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestTreeBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/sms/sendTencent":{"get":{"tags":["鐭俊婕旂ず妗堜緥"],"summary":"鍙戦€佺煭淇encent","description":"鍙戦€佺煭淇encent","operationId":"sendTencent","parameters":[{"name":"phones","in":"query","description":"鐢佃瘽鍙?,"required":true,"schema":{"type":"string"}},{"name":"templateId","in":"query","description":"妯℃澘ID","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sms/sendAliyun":{"get":{"tags":["鐭俊婕旂ず妗堜緥"],"summary":"鍙戦€佺煭淇liyun","description":"鍙戦€佺煭淇liyun","operationId":"sendAliyun","parameters":[{"name":"phones","in":"query","description":"鐢佃瘽鍙?,"required":true,"schema":{"type":"string"}},{"name":"templateId","in":"query","description":"妯℃澘ID","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sms/removeBlacklist":{"get":{"tags":["鐭俊婕旂ず妗堜緥"],"summary":"绉婚櫎榛戝悕鍗?,"description":"绉婚櫎榛戝悕鍗?,"operationId":"removeBlacklist","parameters":[{"name":"phone","in":"query","description":"鎵嬫満鍙?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sms/addBlacklist":{"get":{"tags":["鐭俊婕旂ず妗堜緥"],"summary":"娣诲姞榛戝悕鍗?,"description":"娣诲姞榛戝悕鍗?,"operationId":"addBlacklist","parameters":[{"name":"phone","in":"query","description":"鎵嬫満鍙?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sensitive/test":{"get":{"tags":["娴嬭瘯鏁版嵁鑴辨晱鎺у埗鍣?],"summary":"娴嬭瘯鏁版嵁鑴辨晱","description":"娴嬭瘯鏁版嵁鑴辨晱","operationId":"test","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestSensitive"}}}}}}},"/demo/saTokenDoc/special/tempPermission":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙15锛氫复鏃舵潈闄愭牎楠岋紙SaCheckPermission閫昏緫锛氫复鏃舵潈闄?姘镐箙鏉冮檺锛塡n 娉細涓存椂鏉冮檺闇€閫氳繃SaToken API鎵嬪姩璁剧疆锛屽 SaHolder.getStpLogic().setTempPermission(\"system:temp:test\")","description":"鍦烘櫙15锛氫复鏃舵潈闄愭牎楠岋紙SaCheckPermission閫昏緫锛氫复鏃舵潈闄?姘镐箙鏉冮檺锛塡n 娉細涓存椂鏉冮檺闇€閫氳繃SaToken API鎵嬪姩璁剧疆锛屽 SaHolder.getStpLogic().setTempPermission(\"system:temp:test\")

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:temp:test`

","operationId":"tempPermission","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/special/loginTypeSpecify":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙16锛氱櫥褰曠被鍨嬫寚瀹氾紙澶氱鐧诲綍鍦烘櫙锛屽PC/APP/灏忕▼搴忥級\n 娉細闇€閰嶅悎SaToken澶氳处鍙蜂綋绯婚厤缃?,"description":"鍦烘櫙16锛氱櫥褰曠被鍨嬫寚瀹氾紙澶氱鐧诲綍鍦烘櫙锛屽PC/APP/灏忕▼搴忥級\n 娉細闇€閰嶅悎SaToken澶氳处鍙蜂綋绯婚厤缃?,"operationId":"loginTypeSpecify","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/special/ignoreOverride":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙14锛歋aIgnore灞€閮ㄨ鐩栵紙鏂规硶娉ㄨВ瑕嗙洊绫绘敞瑙o紝鑻ユ湁锛塡n 鍋囪绫讳笂鏈堾SaCheckLogin锛屾柟娉曚笂@SaIgnore浼氳鐩?,"description":"鍦烘櫙14锛歋aIgnore灞€閮ㄨ鐩栵紙鏂规硶娉ㄨВ瑕嗙洊绫绘敞瑙o紝鑻ユ湁锛塡n 鍋囪绫讳笂鏈堾SaCheckLogin锛屾柟娉曚笂@SaIgnore浼氳鐩?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"ignoreOverride","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/singleRole":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙2锛氬崟涓€瑙掕壊鏍¢獙锛圓ND妯″紡锛岄粯璁わ級","description":"鍦烘櫙2锛氬崟涓€瑙掕壊鏍¢獙锛圓ND妯″紡锛岄粯璁わ級

璁块棶鏉冮檺


**瑙掕壊鏍¢獙锛?*

- `admin`
","operationId":"singleRole","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/singlePermission":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙3锛氬崟涓€鏉冮檺鏍¢獙锛圓ND妯″紡锛岄粯璁わ級","description":"鍦烘櫙3锛氬崟涓€鏉冮檺鏍¢獙锛圓ND妯″紡锛岄粯璁わ級

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:view`

","operationId":"singlePermission","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/loginOnly":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙1锛氫粎鐧诲綍鏍¢獙锛堟棤瑙掕壊/鏉冮檺闄愬埗锛屽彧闇€鐧诲綍鎬侊級","description":"鍦烘櫙1锛氫粎鐧诲綍鏍¢獙锛堟棤瑙掕壊/鏉冮檺闄愬埗锛屽彧闇€鐧诲綍鎬侊級","operationId":"loginOnly","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/ignoreAll":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙4锛氬拷鐣ユ墍鏈夋潈闄愭牎楠岋紙SaIgnore浼樺厛绾ф渶楂橈級","description":"鍦烘櫙4锛氬拷鐣ユ墍鏈夋潈闄愭牎楠岋紙SaIgnore浼樺厛绾ф渶楂橈級

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"ignoreAll","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/roleWildcardPrefix":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙10锛氳鑹查€氶厤绗﹀尮閰嶏紙鍓嶇紑鍖归厤锛塡n 鎷ユ湁admin_* 鍗冲彲鍖归厤鎵€鏈塧dmin寮€澶寸殑瑙掕壊","description":"鍦烘櫙10锛氳鑹查€氶厤绗﹀尮閰嶏紙鍓嶇紑鍖归厤锛塡n 鎷ユ湁admin_* 鍗冲彲鍖归厤鎵€鏈塧dmin寮€澶寸殑瑙掕壊

璁块棶鏉冮檺


**瑙掕壊鏍¢獙锛?*

- `admin_*`
","operationId":"roleWildcardPrefix","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/permWithOrRole":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙13锛歰rRole鍙傛暟锛堟潈闄愭牎楠屽け璐ユ椂锛屽厹搴曡鑹叉牎楠岋級\n 鏍稿績閫昏緫锛氭棤system:user:export鏉冮檺鏃讹紝妫€鏌ユ槸鍚︽湁admin/operator瑙掕壊","description":"鍦烘櫙13锛歰rRole鍙傛暟锛堟潈闄愭牎楠屽け璐ユ椂锛屽厹搴曡鑹叉牎楠岋級\n 鏍稿績閫昏緫锛氭棤system:user:export鏉冮檺鏃讹紝妫€鏌ユ槸鍚︽湁admin/operator瑙掕壊

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:export`
- 鎴栬鑹诧細`admin` & `operator`

","operationId":"permWithOrRole","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/permWildcardPrefix":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙9锛氭潈闄愰€氶厤绗﹀尮閰嶏紙鍓嶇紑鍖归厤锛塡n 鎷ユ湁system:user:* 鍗冲彲鍖归厤鎵€鏈夌敤鎴锋ā鍧楁潈闄?,"description":"鍦烘櫙9锛氭潈闄愰€氶厤绗﹀尮閰嶏紙鍓嶇紑鍖归厤锛塡n 鎷ユ湁system:user:* 鍗冲彲鍖归厤鎵€鏈夌敤鎴锋ā鍧楁潈闄?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:*`

","operationId":"permWildcardPrefix","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/mixRolePermOr":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙12锛氭潈闄?瑙掕壊娣峰悎OR妯″紡锛堜换涓€鏉′欢婊¤冻鍗冲彲锛塡n 婊¤冻浠讳竴锛氭嫢鏈塻uper_admin瑙掕壊 | 鎷ユ湁system:manage鏉冮檺","description":"鍦烘櫙12锛氭潈闄?瑙掕壊娣峰悎OR妯″紡锛堜换涓€鏉′欢婊¤冻鍗冲彲锛塡n 婊¤冻浠讳竴锛氭嫢鏈塻uper_admin瑙掕壊 | 鎷ユ湁system:manage鏉冮檺

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:manage`

**瑙掕壊鏍¢獙锛?*

- `super_admin`
","operationId":"mixRolePermOr","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/mixRolePermAnd":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙11锛氭潈闄?瑙掕壊娣峰悎AND妯″紡锛堟墍鏈夋潯浠跺繀椤绘弧瓒筹級\n 闇€鍚屾椂婊¤冻锛氭嫢鏈塧dmin瑙掕壊 + 鎷ユ湁system:user:all鏉冮檺","description":"鍦烘櫙11锛氭潈闄?瑙掕壊娣峰悎AND妯″紡锛堟墍鏈夋潯浠跺繀椤绘弧瓒筹級\n 闇€鍚屾椂婊¤冻锛氭嫢鏈塧dmin瑙掕壊 + 鎷ユ湁system:user:all鏉冮檺

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:all`

**瑙掕壊鏍¢獙锛?*

- `admin`
","operationId":"mixRolePermAnd","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiRoleOr":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙6锛氬瑙掕壊OR妯″紡锛堟嫢鏈変换涓€瑙掕壊鍗冲彲锛?,"description":"鍦烘櫙6锛氬瑙掕壊OR妯″紡锛堟嫢鏈変换涓€瑙掕壊鍗冲彲锛?br>

璁块棶鏉冮檺


**瑙掕壊鏍¢獙锛?*

- `admin` | `test`
","operationId":"multiRoleOr","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiRoleAnd":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙5锛氬瑙掕壊AND妯″紡锛堝繀椤诲悓鏃舵嫢鏈夋墍鏈夎鑹诧級","description":"鍦烘櫙5锛氬瑙掕壊AND妯″紡锛堝繀椤诲悓鏃舵嫢鏈夋墍鏈夎鑹诧級

璁块棶鏉冮檺


**瑙掕壊鏍¢獙锛?*

- `admin` & `operator`
","operationId":"multiRoleAnd","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiPermOr":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙8锛氬鏉冮檺OR妯″紡锛堟嫢鏈変换涓€鏉冮檺鍗冲彲锛?,"description":"鍦烘櫙8锛氬鏉冮檺OR妯″紡锛堟嫢鏈変换涓€鏉冮檺鍗冲彲锛?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:add` | `system:user:delete`

","operationId":"multiPermOr","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiPermAnd":{"get":{"tags":["SaToken 鏉冮檺娴嬭瘯 鎺ュ彛鏂囨。杈撳嚭娴嬭瘯"],"summary":"鍦烘櫙7锛氬鏉冮檺AND妯″紡锛堝繀椤诲悓鏃舵嫢鏈夋墍鏈夋潈闄愶級","description":"鍦烘櫙7锛氬鏉冮檺AND妯″紡锛堝繀椤诲悓鏃舵嫢鏈夋墍鏈夋潈闄愶級

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:edit` & `system:log:view`

","operationId":"multiPermAnd","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/redisLock/testLock4j":{"get":{"tags":["娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚?],"summary":"娴嬭瘯lock4j 娉ㄨВ","description":"娴嬭瘯lock4j 娉ㄨВ","operationId":"testLock4j","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/redisLock/testLock4jLockTemplate":{"get":{"tags":["娴嬭瘯鍒嗗竷寮忛攣鐨勬牱渚?],"summary":"娴嬭瘯lock4j 宸ュ叿","description":"娴嬭瘯lock4j 宸ュ叿","operationId":"testLock4jLockTemplate","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/redis/pubsub/sub":{"get":{"tags":["Redis 鍙戝竷璁㈤槄 婕旂ず妗堜緥"],"summary":"璁㈤槄娑堟伅","description":"璁㈤槄娑堟伅","operationId":"sub","parameters":[{"name":"key","in":"query","description":"閫氶亾Key","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/redis/pubsub/pub":{"get":{"tags":["Redis 鍙戝竷璁㈤槄 婕旂ず妗堜緥"],"summary":"鍙戝竷娑堟伅","description":"鍙戝竷娑堟伅","operationId":"pub","parameters":[{"name":"key","in":"query","description":"閫氶亾Key","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","description":"鍙戦€佸唴瀹?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/rateLimiter/testip":{"get":{"tags":["娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚?],"summary":"娴嬭瘯璇锋眰IP闄愭祦\n 鍚屼竴IP璇锋眰鍙楀奖鍝?,"description":"娴嬭瘯璇锋眰IP闄愭祦\n 鍚屼竴IP璇锋眰鍙楀奖鍝?,"operationId":"testip","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/rateLimiter/testcluster":{"get":{"tags":["娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚?],"summary":"娴嬭瘯闆嗙兢瀹炰緥闄愭祦\n 鍚姩涓や釜鍚庣鏈嶅姟浜掍笉褰卞搷","description":"娴嬭瘯闆嗙兢瀹炰緥闄愭祦\n 鍚姩涓や釜鍚庣鏈嶅姟浜掍笉褰卞搷","operationId":"testcluster","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/rateLimiter/test":{"get":{"tags":["娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚?],"summary":"娴嬭瘯鍏ㄥ眬闄愭祦\n 鍏ㄥ眬褰卞搷","description":"娴嬭瘯鍏ㄥ眬闄愭祦\n 鍏ㄥ眬褰卞搷","operationId":"test_1","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/rateLimiter/testObj":{"get":{"tags":["娴嬭瘯鍒嗗竷寮忛檺娴佹牱渚?],"summary":"娴嬭瘯璇锋眰IP闄愭祦(key鍩轰簬鍙傛暟鑾峰彇)\n 鍚屼竴IP璇锋眰鍙楀奖鍝峔n ","description":"娴嬭瘯璇锋眰IP闄愭祦(key鍩轰簬鍙傛暟鑾峰彇)\n 鍚屼竴IP璇锋眰鍙楀奖鍝峔n

\n 绠€鍗曞彉閲忚幏鍙?#鍙橀噺 澶嶆潅琛ㄨ揪寮?#{#鍙橀噺 != 1 ? 1 : 0}","operationId":"testObj","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/queue/priority/remove":{"get":{"tags":["浼樺厛闃熷垪 婕旂ず妗堜緥"],"summary":"鍒犻櫎闃熷垪鏁版嵁","description":"鍒犻櫎闃熷垪鏁版嵁","operationId":"remove_3","parameters":[{"name":"queueName","in":"query","description":"闃熷垪鍚?,"required":true,"schema":{"type":"string"}},{"name":"name","in":"query","description":"瀵硅薄鍚?,"required":true,"schema":{"type":"string"}},{"name":"orderNum","in":"query","description":"鎺掑簭鍙?,"required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/queue/priority/get":{"get":{"tags":["浼樺厛闃熷垪 婕旂ず妗堜緥"],"summary":"鑾峰彇闃熷垪鏁版嵁","description":"鑾峰彇闃熷垪鏁版嵁","operationId":"get","parameters":[{"name":"queueName","in":"query","description":"闃熷垪鍚?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/queue/priority/add":{"get":{"tags":["浼樺厛闃熷垪 婕旂ず妗堜緥"],"summary":"娣诲姞闃熷垪鏁版嵁","description":"娣诲姞闃熷垪鏁版嵁","operationId":"add_19","parameters":[{"name":"queueName","in":"query","description":"闃熷垪鍚?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/mqtt/send":{"get":{"tags":["mqtt 婕旂ず妗堜緥"],"summary":"鍙戝竷涓€鏉?MQTT 娴嬭瘯娑堟伅銆?,"description":"鍙戝竷涓€鏉?MQTT 娴嬭瘯娑堟伅銆?,"operationId":"send_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鏄惁鍙戦€佹垚鍔?,"content":{"*/*":{"schema":{"type":"boolean","description":"鏄惁鏇存柊宸插瓨鍦ㄦ暟鎹?}}}}}}},"/demo/mcp/tools":{"get":{"tags":["MCP Client 婕旂ず妗堜緥銆?],"summary":"鏌ヨ澶栭儴 MCP Server 宸ュ叿鍒楄〃銆?,"description":"鏌ヨ澶栭儴 MCP Server 宸ュ叿鍒楄〃銆?,"operationId":"tools","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringListString"}}}}}}},"/demo/mcp/resource":{"get":{"tags":["MCP Client 婕旂ず妗堜緥銆?],"summary":"璇诲彇澶栭儴 MCP 璧勬簮銆?,"description":"璇诲彇澶栭儴 MCP 璧勬簮銆?,"operationId":"resource","parameters":[{"name":"uri","in":"query","required":false,"schema":{"type":"string","default":"demo://summary"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringMcpResourceReadResult"}}}}}}},"/demo/mcp/receive":{"get":{"tags":["MCP Client 婕旂ず妗堜緥銆?],"summary":"璋冪敤澶栭儴 MCP 宸ュ叿骞舵ā鎷熶笟鍔″鐞嗐€?,"description":"璋冪敤澶栭儴 MCP 宸ュ叿骞舵ā鎷熶笟鍔″鐞嗐€?,"operationId":"receive","parameters":[{"name":"toolName","in":"query","required":false,"schema":{"type":"string","default":"demo_get_data"}},{"name":"id","in":"query","required":false,"schema":{"type":"string","default":"1"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMcpDemoHandleResult"}}}}}}},"/demo/mail/sendSimpleMessage":{"get":{"tags":["閭欢鍙戦€佹渚?],"summary":"鍙戦€侀偖浠?,"description":"鍙戦€侀偖浠?,"operationId":"sendSimpleMessage","parameters":[{"name":"to","in":"query","description":"鎺ユ敹浜?,"required":true,"schema":{"type":"string"}},{"name":"subject","in":"query","description":"鏍囬","required":true,"schema":{"type":"string"}},{"name":"text","in":"query","description":"鍐呭","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/mail/sendMessageWithAttachments":{"get":{"tags":["閭欢鍙戦€佹渚?],"summary":"鍙戦€侀偖浠讹紙澶氶檮浠讹級","description":"鍙戦€侀偖浠讹紙澶氶檮浠讹級","operationId":"sendMessageWithAttachments","parameters":[{"name":"to","in":"query","description":"鎺ユ敹浜?,"required":true,"schema":{"type":"string"}},{"name":"subject","in":"query","description":"鏍囬","required":true,"schema":{"type":"string"}},{"name":"text","in":"query","description":"鍐呭","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/mail/sendMessageWithAttachment":{"get":{"tags":["閭欢鍙戦€佹渚?],"summary":"鍙戦€侀偖浠讹紙甯﹂檮浠讹級","description":"鍙戦€侀偖浠讹紙甯﹂檮浠讹級","operationId":"sendMessageWithAttachment","parameters":[{"name":"to","in":"query","description":"鎺ユ敹浜?,"required":true,"schema":{"type":"string"}},{"name":"subject","in":"query","description":"鏍囬","required":true,"schema":{"type":"string"}},{"name":"text","in":"query","description":"鍐呭","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/i18n":{"get":{"tags":["娴嬭瘯鍥介檯鍖?],"summary":"閫氳繃code鑾峰彇鍥介檯鍖栧唴瀹筡n code涓?messages","description":"閫氳繃code鑾峰彇鍥介檯鍖栧唴瀹筡n code涓?messages.properties 涓殑 key\n

\n 娴嬭瘯浣跨敤 user.register.success","operationId":"get_1","parameters":[{"name":"code","in":"query","description":"鍥介檯鍖朿ode","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/i18n/test2":{"get":{"tags":["娴嬭瘯鍥介檯鍖?],"summary":"Bean 鏍¢獙鍥介檯鍖朶n 涓嶄紶鍊?鍒嗗埆鏌ョ湅寮傚父杩斿洖\n ","description":"Bean 鏍¢獙鍥介檯鍖朶n 涓嶄紶鍊?鍒嗗埆鏌ョ湅寮傚父杩斿洖\n

\n 娴嬭瘯浣跨敤 not.null","operationId":"test2","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestI18nBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestI18nBo"}}}}}}},"/demo/i18n/test1":{"get":{"tags":["娴嬭瘯鍥介檯鍖?],"summary":"Validator 鏍¢獙鍥介檯鍖朶n 涓嶄紶鍊?鍒嗗埆鏌ョ湅寮傚父杩斿洖\n ","description":"Validator 鏍¢獙鍥介檯鍖朶n 涓嶄紶鍊?鍒嗗埆鏌ョ湅寮傚父杩斿洖\n

\n 娴嬭瘯浣跨敤 not.null","operationId":"test1","parameters":[{"name":"str","in":"query","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/excel/exportWithOptions":{"get":{"tags":["娴嬭瘯Excel鍔熻兘"],"summary":"瀵煎嚭涓嬫媺妗?,"description":"瀵煎嚭涓嬫媺妗?,"operationId":"exportWithOptions","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/exportTemplateOne":{"get":{"tags":["娴嬭瘯Excel鍔熻兘"],"summary":"鍗曞垪琛ㄥ鏁版嵁","description":"鍗曞垪琛ㄥ鏁版嵁","operationId":"exportTemplateOne","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/exportTemplateMultiSheet":{"get":{"tags":["娴嬭瘯Excel鍔熻兘"],"summary":"澶氫釜sheet瀵煎嚭","description":"澶氫釜sheet瀵煎嚭","operationId":"exportTemplateMultiSheet","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/exportTemplateMuliti":{"get":{"tags":["娴嬭瘯Excel鍔熻兘"],"summary":"澶氬垪琛ㄥ鏁版嵁","description":"澶氬垪琛ㄥ鏁版嵁","operationId":"exportTemplateMuliti","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/customExport":{"get":{"tags":["娴嬭瘯Excel鍔熻兘"],"summary":"鑷畾涔夊鍑?,"description":"鑷畾涔夊鍑?,"operationId":"customExport","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/encrypt":{"get":{"tags":["娴嬭瘯鏁版嵁搴撳姞瑙e瘑鍔熻兘"],"summary":"娴嬭瘯鏁版嵁搴撳姞瑙e瘑","description":"娴嬭瘯鏁版嵁搴撳姞瑙e瘑","operationId":"test_2","parameters":[{"name":"key","in":"query","description":"娴嬭瘯key","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","description":"娴嬭瘯value","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringTestDemoEncrypt"}}}}}}},"/demo/demo/{id}":{"get":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅","description":"鑾峰彇娴嬭瘯鍗曡〃璇︾粏淇℃伅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:query`

","operationId":"getInfo_22","parameters":[{"name":"id","in":"path","description":"娴嬭瘯ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestDemoVo"}}}}}}},"/demo/demo/page":{"get":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"鑷畾涔夊垎椤垫煡璇?,"description":"鑷畾涔夊垎椤垫煡璇?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:list`

","operationId":"page","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestDemoBo"}},{"name":"pageQuery","in":"query","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultTestDemoVo"}}}}}}},"/demo/demo/list":{"get":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"鏌ヨ娴嬭瘯鍗曡〃鍒楄〃","description":"鏌ヨ娴嬭瘯鍗曡〃鍒楄〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:list`

","operationId":"list_22","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestDemoBo"}},{"name":"pageQuery","in":"query","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultTestDemoVo"}}}}}}},"/demo/cache/test6":{"get":{"tags":["spring-cache 婕旂ず妗堜緥"],"summary":"娴嬭瘯璁剧疆杩囨湡鏃堕棿\n 鎵嬪姩璁剧疆杩囨湡鏃堕棿10绉抃n 11绉掑悗鑾峰彇 鍒ゆ柇鏄惁鐩哥瓑","description":"娴嬭瘯璁剧疆杩囨湡鏃堕棿\n 鎵嬪姩璁剧疆杩囨湡鏃堕棿10绉抃n 11绉掑悗鑾峰彇 鍒ゆ柇鏄惁鐩哥瓑","operationId":"test6","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/demo/cache/test3":{"get":{"tags":["spring-cache 婕旂ず妗堜緥"],"summary":"娴嬭瘯 @CacheEvict\n ","description":"娴嬭瘯 @CacheEvict\n

\n 浣跨敤浜咰acheEvict娉ㄨВ鐨勬柟娉?浼氭竻绌烘寚瀹氱紦瀛榎n 銆屼竴鑸敤鍦ㄥ垹闄ょ殑鏂规硶涓娿€峔n

\n cacheNames 鍛藉悕瑙勫垯 鏌ョ湅 {@link CacheNames CacheNames} 娉ㄩ噴 鏀寔澶氬弬鏁?,"operationId":"test3","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/cache/test2":{"get":{"tags":["spring-cache 婕旂ず妗堜緥"],"summary":"娴嬭瘯 @CachePut\n ","description":"娴嬭瘯 @CachePut\n

\n 鍔犱簡@CachePut娉ㄨВ鐨勬柟娉?浼氭妸鏂规硶鐨勮繑鍥炲€紁ut鍒扮紦瀛橀噷闈㈢紦瀛樿捣鏉?渚涘叾瀹冨湴鏂逛娇鐢╘n 瀹冦€岄€氬父鐢ㄥ湪鏂板鎴栬€呭疄鏃舵洿鏂版柟娉曚笂銆峔n

\n cacheNames 鍛藉悕瑙勫垯 鏌ョ湅 {@link CacheNames CacheNames} 娉ㄩ噴 鏀寔澶氬弬鏁?,"operationId":"test2_1","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/cache/test1":{"get":{"tags":["spring-cache 婕旂ず妗堜緥"],"summary":"娴嬭瘯 @Cacheable\n ","description":"娴嬭瘯 @Cacheable\n

\n 琛ㄧず杩欎釜鏂规硶鏈変簡缂撳瓨鐨勫姛鑳?鏂规硶鐨勮繑鍥炲€间細琚紦瀛樹笅鏉n 涓嬩竴娆¤皟鐢ㄨ鏂规硶鍓?浼氬幓妫€鏌ユ槸鍚︾紦瀛樹腑宸茬粡鏈夊€糪n 濡傛灉鏈夊氨鐩存帴杩斿洖,涓嶈皟鐢ㄦ柟娉昞n 濡傛灉娌℃湁,灏辫皟鐢ㄦ柟娉?鐒跺悗鎶婄粨鏋滅紦瀛樿捣鏉n 杩欎釜娉ㄨВ銆屼竴鑸敤鍦ㄦ煡璇㈡柟娉曚笂銆峔n

\n 閲嶇偣璇存槑: 缂撳瓨娉ㄨВ涓ヨ皑涓庡叾浠栫瓫閫夋暟鎹姛鑳戒竴璧蜂娇鐢╘n 渚嬪: 鏁版嵁鏉冮檺娉ㄨВ 浼氶€犳垚 缂撳瓨鍑荤┛ 涓?鏁版嵁涓嶄竴鑷撮棶棰榎n

\n cacheNames 鍛藉悕瑙勫垯 鏌ョ湅 {@link CacheNames CacheNames} 娉ㄩ噴 鏀寔澶氬弬鏁?,"operationId":"test1_1","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/auth/code":{"get":{"tags":["楠岃瘉鐮佹搷浣滃鐞?],"summary":"鑾峰彇鍥剧墖楠岃瘉鐮併€?,"description":"鑾峰彇鍥剧墖楠岃瘉鐮併€?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"getCode","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"楠岃瘉鐮佷俊鎭?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RCaptchaVo"}}}}}}},"/auth/binding/{source}":{"get":{"tags":["璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?],"summary":"鑾峰彇绗笁鏂圭粦瀹氳烦杞湴鍧€銆?,"description":"鑾峰彇绗笁鏂圭粦瀹氳烦杞湴鍧€銆?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"authBinding","parameters":[{"name":"source","in":"path","description":"鐧诲綍鏉ユ簮","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"璺宠浆鍦板潃","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/app/profile":{"get":{"tags":["App 鐢ㄦ埛璧勬枡鎺у埗鍣?],"summary":"鑾峰彇褰撳墠鐢ㄦ埛璧勬枡","description":"鑾峰彇褰撳墠鐢ㄦ埛璧勬枡","operationId":"getProfile","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppUserProfileVo"}}}}}}},"/app/location/list/{homeId}":{"get":{"tags":["App 鎴块棿浣嶇疆绠$悊鎺у埗鍣?],"summary":"鏌ヨ鎸囧畾瀹跺涵鐨勬墍鏈夋埧闂翠綅缃垪琛?,"description":"鏌ヨ鎸囧畾瀹跺涵鐨勬墍鏈夋埧闂翠綅缃垪琛?,"operationId":"listLocations","parameters":[{"name":"homeId","in":"path","description":"瀹跺涵ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"浣嶇疆鍒楄〃锛堟寜鎺掑簭鍊煎崌搴忋€佸垱寤烘椂闂村崌搴忔帓鍒楋級","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAppLocationVo"}}}}}}},"/app/home/list":{"get":{"tags":["App 瀹跺涵绠$悊鎺у埗鍣?],"summary":"鏌ヨ褰撳墠鐢ㄦ埛鐨勬墍鏈夊搴垪琛?,"description":"鏌ヨ褰撳墠鐢ㄦ埛鐨勬墍鏈夊搴垪琛?,"operationId":"listHomes","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"瀹跺涵鍒楄〃锛堟寜鏄惁榛樿闄嶅簭銆佸垱寤烘椂闂村崌搴忔帓鍒楋紝鍖呭惈浣嶇疆鏁伴噺缁熻锛?,"content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAppHomeVo"}}}}}}},"/api/snail/chat/my-agents":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"myAgents","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListOpenApiAgentVO"}}}}}}},"/api/snail/chat/conversations/messages":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"getMessages","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"conversationId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListOpenApiMessageVO"}}}}}}},"/api/snail/chat/messages":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"getMessages_1","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"conversationId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListOpenApiMessageVO"}}}}}}},"/api/snail/chat/config":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"config_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/snail/chat/agents":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"listAgents","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OpenApiAgentQueryRequest"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResultListOpenApiAgentVO"}}}}}}},"/api/snail/chat/agent":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"getAgent","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OpenApiAgentIdentityRequest"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiAgentVO"}}}}}}},"/":{"get":{"tags":["棣栭〉"],"summary":"璁块棶棣栭〉鏃惰繑鍥炲紩瀵兼彁绀恒€?,"description":"璁块棶棣栭〉鏃惰繑鍥炲紩瀵兼彁绀恒€?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"index","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"棣栭〉鎻愮ず璇?,"content":{"*/*":{"schema":{"type":"string"}}}}}}},"/workflow/spel/{ids}":{"delete":{"tags":["娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夋帶鍒跺櫒锛岃礋璐h〃杈惧紡瑙勫垯鐨勫鍒犳敼鏌ャ€?],"summary":"鎵归噺鍒犻櫎娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夈€?,"description":"鎵归噺鍒犻櫎娴佺▼ SpEL 琛ㄨ揪寮忓畾涔夈€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:spel:remove`

","operationId":"remove_4","parameters":[{"name":"ids","in":"path","description":"涓婚敭涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/leave/{ids}":{"delete":{"tags":["璇峰亣绀轰緥鎺у埗鍣紝婕旂ず涓氬姟鍗曟嵁涓庢祦绋嬪紩鎿庤仈鍔ㄧ殑鍏稿瀷鐢ㄦ硶銆?],"summary":"鎵归噺鍒犻櫎璇峰亣鍗曘€?,"description":"鎵归噺鍒犻櫎璇峰亣鍗曘€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:leave:remove`

","operationId":"remove_5","parameters":[{"name":"ids","in":"path","description":"涓婚敭涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/deleteHisByInstanceIds/{instanceIds}":{"delete":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鎸夊疄渚?id 鎵归噺鍒犻櫎宸插畬鎴愮殑娴佺▼瀹炰緥銆?,"description":"鎸夊疄渚?id 鎵归噺鍒犻櫎宸插畬鎴愮殑娴佺▼瀹炰緥銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:remove`

","operationId":"deleteHisByInstanceIds","parameters":[{"name":"instanceIds","in":"path","description":"瀹炰緥id","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/deleteByInstanceIds/{instanceIds}":{"delete":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鎸夊疄渚?id 鎵归噺鍒犻櫎娴佺▼瀹炰緥銆?,"description":"鎸夊疄渚?id 鎵归噺鍒犻櫎娴佺▼瀹炰緥銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:remove`

","operationId":"deleteByInstanceIds","parameters":[{"name":"instanceIds","in":"path","description":"瀹炰緥id","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/deleteByBusinessIds/{businessIds}":{"delete":{"tags":["娴佺▼瀹炰緥绠$悊 鎺у埗灞?],"summary":"鎸変笟鍔?id 鎵归噺鍒犻櫎娴佺▼瀹炰緥銆?,"description":"鎸変笟鍔?id 鎵归噺鍒犻櫎娴佺▼瀹炰緥銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:instance:remove`

","operationId":"deleteByBusinessIds","parameters":[{"name":"businessIds","in":"path","description":"涓氬姟id","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/definition/{ids}":{"delete":{"tags":["娴佺▼瀹氫箟绠$悊 鎺у埗灞?],"summary":"鎵归噺鍒犻櫎娴佺▼瀹氫箟銆?,"description":"鎵归噺鍒犻櫎娴佺▼瀹氫箟銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `workflow:definition:remove`

","operationId":"remove_6","parameters":[{"name":"ids","in":"path","description":"娴佺▼瀹氫箟ID闆嗗悎","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/{userIds}":{"delete":{"tags":["鐢ㄦ埛淇℃伅"],"summary":"鍒犻櫎鐢ㄦ埛","description":"鍒犻櫎鐢ㄦ埛

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:user:remove`

","operationId":"remove_7","parameters":[{"name":"userIds","in":"path","description":"鐢ㄦ埛ID鏁扮粍","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/{roleIds}":{"delete":{"tags":["瑙掕壊淇℃伅"],"summary":"鍒犻櫎瑙掕壊","description":"鍒犻櫎瑙掕壊

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:role:remove`

","operationId":"remove_8","parameters":[{"name":"roleIds","in":"path","description":"瑙掕壊ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/post/{postIds}":{"delete":{"tags":["宀椾綅淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒犻櫎宀椾綅","description":"鍒犻櫎宀椾綅

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:post:remove`

","operationId":"remove_9","parameters":[{"name":"postIds","in":"path","description":"宀椾綅ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/notice/{noticeIds}":{"delete":{"tags":["鍏憡 淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒犻櫎閫氱煡鍏憡","description":"鍒犻櫎閫氱煡鍏憡

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:notice:remove`

","operationId":"remove_10","parameters":[{"name":"noticeIds","in":"path","description":"鍏憡ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/menu/cascade/{menuIds}":{"delete":{"tags":["鑿滃崟淇℃伅"],"summary":"鎵归噺绾ц仈鍒犻櫎鑿滃崟","description":"鎵归噺绾ц仈鍒犻櫎鑿滃崟

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:menu:remove`

**瑙掕壊鏍¢獙锛?*

- `superadmin`
","operationId":"remove_11","parameters":[{"name":"menuIds","in":"path","description":"鑿滃崟ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/type/{dictIds}":{"delete":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鍒犻櫎瀛楀吀绫诲瀷","description":"鍒犻櫎瀛楀吀绫诲瀷

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:remove`

","operationId":"remove_12","parameters":[{"name":"dictIds","in":"path","description":"瀛楀吀ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/type/refreshCache":{"delete":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鍒锋柊瀛楀吀缂撳瓨銆?,"description":"鍒锋柊瀛楀吀缂撳瓨銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:remove`

","operationId":"refreshCache","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/data/{dictCodes}":{"delete":{"tags":["鏁版嵁瀛楀吀淇℃伅"],"summary":"鍒犻櫎瀛楀吀鏁版嵁","description":"鍒犻櫎瀛楀吀鏁版嵁

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:dict:remove`

","operationId":"remove_13","parameters":[{"name":"dictCodes","in":"path","description":"瀛楀吀code涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config/{configIds}":{"delete":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒犻櫎鍙傛暟閰嶇疆","description":"鍒犻櫎鍙傛暟閰嶇疆

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:remove`

","operationId":"remove_14","parameters":[{"name":"configIds","in":"path","description":"鍙傛暟ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config/refreshCache":{"delete":{"tags":["鍙傛暟閰嶇疆 淇℃伅鎿嶄綔澶勭悊"],"summary":"鍒锋柊鍙傛暟缂撳瓨銆?,"description":"鍒锋柊鍙傛暟缂撳瓨銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:config:remove`

","operationId":"refreshCache_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/client/{ids}":{"delete":{"tags":["瀹㈡埛绔鐞?],"summary":"鎵归噺鍒犻櫎瀹㈡埛绔厤缃€?,"description":"鎵归噺鍒犻櫎瀹㈡埛绔厤缃€?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:client:remove`

","operationId":"remove_15","parameters":[{"name":"ids","in":"path","description":"涓婚敭涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/{ossIds}":{"delete":{"tags":["鏂囦欢涓婁紶 鎺у埗灞?],"summary":"鍒犻櫎OSS瀵硅薄瀛樺偍","description":"鍒犻櫎OSS瀵硅薄瀛樺偍

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:oss:remove`

","operationId":"remove_16","parameters":[{"name":"ossIds","in":"path","description":"OSS瀵硅薄ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/config/{ossConfigIds}":{"delete":{"tags":["瀵硅薄瀛樺偍閰嶇疆"],"summary":"鎵归噺鍒犻櫎瀵硅薄瀛樺偍閰嶇疆銆?,"description":"鎵归噺鍒犻櫎瀵硅薄瀛樺偍閰嶇疆銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `system:ossConfig:remove`

","operationId":"remove_17","parameters":[{"name":"ossConfigIds","in":"path","description":"OSS閰嶇疆ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/operlog/{operIds}":{"delete":{"tags":["鎿嶄綔鏃ュ織璁板綍"],"summary":"鎵归噺鍒犻櫎鎿嶄綔鏃ュ織璁板綍","description":"鎵归噺鍒犻櫎鎿嶄綔鏃ュ織璁板綍

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:operlog:remove`

","operationId":"remove_18","parameters":[{"name":"operIds","in":"path","description":"鏃ュ織ids","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/operlog/clean":{"delete":{"tags":["鎿嶄綔鏃ュ織璁板綍"],"summary":"娓呯┖鎿嶄綔鏃ュ織璁板綍銆?,"description":"娓呯┖鎿嶄綔鏃ュ織璁板綍銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:operlog:remove`

","operationId":"clean","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/online/{tokenId}":{"delete":{"tags":["鍦ㄧ嚎鐢ㄦ埛鐩戞帶"],"summary":"鎸?token 寮哄埗鐢ㄦ埛涓嬬嚎锛岄€傜敤浜庣鐞嗗憳韪㈤櫎寮傚父浼氳瘽銆?,"description":"鎸?token 寮哄埗鐢ㄦ埛涓嬬嚎锛岄€傜敤浜庣鐞嗗憳韪㈤櫎寮傚父浼氳瘽銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:online:forceLogout`

","operationId":"forceLogout","parameters":[{"name":"tokenId","in":"path","description":"token鍊?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/online/myself/{tokenId}":{"delete":{"tags":["鍦ㄧ嚎鐢ㄦ埛鐩戞帶"],"summary":"寮洪€€褰撳墠璐﹀彿涓嬫寚瀹氬湪绾胯澶囷紝閬垮厤璇涪鍏朵粬璐﹀彿鐨勪細璇濄€?,"description":"寮洪€€褰撳墠璐﹀彿涓嬫寚瀹氬湪绾胯澶囷紝閬垮厤璇涪鍏朵粬璐﹀彿鐨勪細璇濄€?,"operationId":"remove_19","parameters":[{"name":"tokenId","in":"path","description":"token鍊?,"required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/loginInfo/{infoIds}":{"delete":{"tags":["绯荤粺璁块棶璁板綍"],"summary":"鎵归噺鍒犻櫎鐧诲綍鏃ュ織","description":"鎵归噺鍒犻櫎鐧诲綍鏃ュ織

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:logininfo:remove`

","operationId":"remove_20","parameters":[{"name":"infoIds","in":"path","description":"鏃ュ織ids","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/loginInfo/clean":{"delete":{"tags":["绯荤粺璁块棶璁板綍"],"summary":"娓呯┖绯荤粺璁块棶璁板綍銆?,"description":"娓呯┖绯荤粺璁块棶璁板綍銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `monitor:logininfo:remove`

","operationId":"clean_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/device/device/{deviceIds}":{"delete":{"tags":["鍚庡彴璁惧绠$悊銆?],"summary":"鍒犻櫎璁惧銆?,"description":"鍒犻櫎璁惧銆?br>

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `device:device:remove`

","operationId":"remove_21","parameters":[{"name":"deviceIds","in":"path","description":"璁惧涓婚敭","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/tree/{ids}":{"delete":{"tags":["娴嬭瘯鏍戣〃Controller"],"summary":"鍒犻櫎娴嬭瘯鏍戣〃","description":"鍒犻櫎娴嬭瘯鏍戣〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:tree:remove`

","operationId":"remove_22","parameters":[{"name":"ids","in":"path","description":"娴嬭瘯鏍慖D涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/demo/{ids}":{"delete":{"tags":["娴嬭瘯鍗曡〃Controller"],"summary":"鍒犻櫎娴嬭瘯鍗曡〃","description":"鍒犻櫎娴嬭瘯鍗曡〃

璁块棶鏉冮檺


**鏉冮檺鏍¢獙锛?*

- `demo:demo:remove`

","operationId":"remove_23","parameters":[{"name":"ids","in":"path","description":"娴嬭瘯ID涓?,"required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/batch":{"delete":{"tags":["娴嬭瘯鎵归噺鏂规硶"],"summary":"鍒犻櫎鎵归噺鏂规硶","description":"鍒犻櫎鎵归噺鏂规硶","operationId":"remove_24","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/unlock/{socialId}":{"delete":{"tags":["璁よ瘉鎺у埗鍣紝鎻愪緵鐧诲綍銆佹敞鍐屻€佺ぞ浜ょ粦瀹氬拰閫€鍑鸿兘鍔涖€?],"summary":"鍙栨秷褰撳墠鐢ㄦ埛鐨勭ぞ浜よ处鍙锋巿鏉冦€?,"description":"鍙栨秷褰撳墠鐢ㄦ埛鐨勭ぞ浜よ处鍙锋巿鏉冦€?br>

璁块棶鏉冮檺


> **鏉冮檺绛栫暐**锛氬拷鐣ユ潈闄愭鏌?br>","operationId":"unlockSocial","parameters":[{"name":"socialId","in":"path","description":"socialId","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/location/{locationId}":{"delete":{"tags":["App 鎴块棿浣嶇疆绠$悊鎺у埗鍣?],"summary":"鍒犻櫎鎴块棿浣嶇疆锛堣蒋鍒犻櫎锛?,"description":"鍒犻櫎鎴块棿浣嶇疆锛堣蒋鍒犻櫎锛?,"operationId":"deleteLocation","parameters":[{"name":"locationId","in":"path","description":"瑕佸垹闄ょ殑浣嶇疆ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/home/{homeId}":{"delete":{"tags":["App 瀹跺涵绠$悊鎺у埗鍣?],"summary":"鍒犻櫎瀹跺涵\n ","description":"鍒犻櫎瀹跺涵\n

\n 杞垹闄ゆ寚瀹氬搴強鍏朵笅鎵€鏈変綅缃紝榛樿瀹跺涵涓嶅厑璁稿垹闄ゃ€?,"operationId":"deleteHome","parameters":[{"name":"homeId","in":"path","description":"瑕佸垹闄ょ殑瀹跺涵ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"鎿嶄綔缁撴灉","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}}},"components":{"schemas":{"RVoid":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"description":"鍝嶅簲涓氬姟鏁版嵁"}}},"FlowSpelBo":{"type":"object","description":"娴佺▼spel琛ㄨ揪寮忓畾涔変笟鍔″璞?flow_spel","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭id"},"componentName":{"type":"string","description":"缁勪欢鍚嶇О"},"methodName":{"type":"string","description":"鏂规硶鍚?},"methodParams":{"type":"string","description":"鍙傛暟"},"viewSpel":{"type":"string","description":"棰勮spel鍊?,"minLength":1},"status":{"type":"string","description":"鐘舵€侊紙0姝e父 1鍋滅敤锛?,"minLength":1},"remark":{"type":"string","description":"澶囨敞"},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}},"required":["status","viewSpel"]},"TestLeaveBo":{"type":"object","description":"璇峰亣涓氬姟瀵硅薄 test_leave","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"flowCode":{"type":"string","description":"娴佺▼code"},"applyCode":{"type":"string","description":"鐢宠缂栧彿"},"leaveType":{"type":"string","description":"璇峰亣绫诲瀷","minLength":1},"startDate":{"type":"string","format":"date-time","description":"寮€濮嬫椂闂?},"endDate":{"type":"string","format":"date-time","description":"缁撴潫鏃堕棿"},"leaveDays":{"type":"integer","format":"int32","description":"璇峰亣澶╂暟"},"startLeaveDays":{"type":"integer","format":"int32","description":"寮€濮嬫椂闂?},"endLeaveDays":{"type":"integer","format":"int32","description":"缁撴潫鏃堕棿"},"remark":{"type":"string","description":"璇峰亣鍘熷洜"},"status":{"type":"string","description":"鐘舵€?},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}},"required":["endDate","id","leaveType","startDate"]},"RTestLeaveVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/TestLeaveVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"TestLeaveVo":{"type":"object","description":"璇峰亣瑙嗗浘瀵硅薄 test_leave","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"applyCode":{"type":"string","description":"鐢宠缂栧彿"},"leaveType":{"type":"string","description":"璇峰亣绫诲瀷"},"startDate":{"type":"string","format":"date-time","description":"寮€濮嬫椂闂?},"endDate":{"type":"string","format":"date-time","description":"缁撴潫鏃堕棿"},"leaveDays":{"type":"integer","format":"int32","description":"璇峰亣澶╂暟"},"remark":{"type":"string","description":"澶囨敞"},"status":{"type":"string","description":"鐘舵€?}}},"FlowVariableBo":{"type":"object","description":"娴佺▼鍙橀噺鍙傛暟","properties":{"instanceId":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥 ID"},"key":{"type":"string","description":"鍙橀噺閿?},"value":{"type":"string","description":"鍙橀噺鍊?}}},"FlowCancelBo":{"type":"object","description":"鎾ら攢娴佺▼璇锋眰瀵硅薄銆?,"properties":{"businessId":{"type":"string","description":"涓氬姟 ID"},"message":{"type":"string","description":"鎾ら攢璇存槑"}}},"RBoolean":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"boolean","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"FlowDefinition":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"createTime":{"type":"string","format":"date-time"},"updateTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateBy":{"type":"string"},"tenantId":{"type":"string"},"delFlag":{"type":"string"},"flowCode":{"type":"string"},"flowName":{"type":"string"},"modelValue":{"type":"string"},"category":{"type":"string"},"version":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"activityStatus":{"type":"integer","format":"int32"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"ext":{"type":"string"},"nodeList":{"type":"array","items":{"$ref":"#/components/schemas/Node"}},"userList":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}},"Node":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"version":{"type":"string","deprecated":true},"tenantId":{"type":"string"},"listenerPath":{"type":"string"},"definitionId":{"type":"integer","format":"int64"},"anyNodeSkip":{"type":"string"},"coordinate":{"type":"string"},"skipList":{"type":"array","items":{"$ref":"#/components/schemas/Skip"}},"listenerType":{"type":"string"},"updateBy":{"type":"string"},"nodeType":{"type":"integer","format":"int32"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"nodeName":{"type":"string"},"nodeCode":{"type":"string"},"nodeRatio":{"type":"string"},"updateTime":{"type":"string","format":"date-time"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"permissionFlag":{"type":"string"}}},"Skip":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nextNodeType":{"type":"integer","format":"int32"},"nowNodeType":{"type":"integer","format":"int32"},"tenantId":{"type":"string"},"definitionId":{"type":"integer","format":"int64"},"coordinate":{"type":"string"},"skipCondition":{"type":"string"},"nowNodeCode":{"type":"string"},"skipName":{"type":"string"},"nextNodeCode":{"type":"string"},"skipType":{"type":"string"},"nodeId":{"type":"integer","format":"int64"},"updateBy":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateTime":{"type":"string","format":"date-time"}}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string"},"tenantId":{"type":"string"},"updateBy":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"processedBy":{"type":"string"},"associated":{"type":"integer","format":"int64"},"updateTime":{"type":"string","format":"date-time"}}},"FlowCategoryBo":{"type":"object","description":"娴佺▼鍒嗙被涓氬姟瀵硅薄 wf_category","properties":{"categoryId":{"type":"integer","format":"int64","description":"娴佺▼鍒嗙被ID"},"parentId":{"type":"integer","format":"int64","description":"鐖舵祦绋嬪垎绫籭d"},"categoryName":{"type":"string","description":"娴佺▼鍒嗙被鍚嶇О","minLength":1},"orderNum":{"type":"integer","format":"int64","description":"鏄剧ず椤哄簭"}},"required":["categoryId","categoryName","parentId"]},"SysUserBo":{"type":"object","description":"鐢ㄦ埛淇℃伅涓氬姟瀵硅薄 sys_user","properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿","maxLength":30,"minLength":2},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О","maxLength":30,"minLength":0},"userType":{"type":"string","description":"鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛?},"email":{"type":"string","format":"email","description":"鐢ㄦ埛閭","maxLength":50,"minLength":0},"phoneNumber":{"type":"string","description":"鎵嬫満鍙风爜"},"gender":{"type":"string","description":"鐢ㄦ埛鎬у埆锛?鐢?1濂?2鏈煡锛?},"avatar":{"type":"integer","format":"int64","description":"澶村儚 OSS ID"},"password":{"type":"string","description":"瀵嗙爜"},"status":{"type":"string","description":"璐﹀彿鐘舵€侊紙0姝e父 1鍋滅敤锛?},"remark":{"type":"string","description":"澶囨敞"},"roleIds":{"type":"array","description":"瑙掕壊缁?,"items":{"type":"integer","format":"int64"},"maxItems":2147483647,"minItems":1},"postIds":{"type":"array","description":"宀椾綅缁?,"items":{"type":"integer","format":"int64"}},"roleId":{"type":"integer","format":"int64","description":"鏁版嵁鏉冮檺 褰撳墠瑙掕壊ID"},"userIds":{"type":"string","description":"鐢ㄦ埛ID"},"excludeUserIds":{"type":"string","description":"鎺掗櫎涓嶆煡璇㈢殑鐢ㄦ埛(宸ヤ綔娴佺敤)"},"createBy":{"type":"integer","format":"int64","description":"鍒涘缓鑰?},"updateBy":{"type":"integer","format":"int64","description":"鏇存柊鑰?},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"},"superAdmin":{"type":"boolean","description":"鍒ゆ柇褰撳墠鐢ㄦ埛鏄惁涓鸿秴绾х鐞嗗憳銆?}},"required":["nickName","userName"]},"SysUserProfileBo":{"type":"object","description":"涓汉淇℃伅涓氬姟澶勭悊","properties":{"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О","maxLength":30,"minLength":0},"email":{"type":"string","format":"email","description":"鐢ㄦ埛閭","maxLength":50,"minLength":0},"phoneNumber":{"type":"string","description":"鎵嬫満鍙风爜","pattern":"(?:0|86|\\+86)?1[3-9]\\d{9}"},"gender":{"type":"string","description":"鐢ㄦ埛鎬у埆锛?鐢?1濂?2鏈煡锛?},"avatar":{"type":"integer","format":"int64","description":"澶村儚 OSS ID"}}},"SysUserPasswordBo":{"type":"object","description":"鐢ㄦ埛瀵嗙爜淇敼","properties":{"oldPassword":{"type":"string","description":"鏃у瘑鐮?,"minLength":1},"newPassword":{"type":"string","description":"鏂板瘑鐮?,"minLength":1}},"required":["newPassword","oldPassword"]},"SysRoleBo":{"type":"object","description":"瑙掕壊淇℃伅涓氬姟瀵硅薄 sys_role","properties":{"roleId":{"type":"integer","format":"int64","description":"瑙掕壊ID"},"roleName":{"type":"string","description":"瑙掕壊鍚嶇О","maxLength":30,"minLength":0},"roleKey":{"type":"string","description":"瑙掕壊鏉冮檺瀛楃涓?,"maxLength":100,"minLength":0},"roleSort":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"dataScope":{"type":"string","description":"鏁版嵁鑼冨洿锛?锛氬叏閮ㄦ暟鎹潈闄?2锛氳嚜瀹氭暟鎹潈闄?3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺 4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄?5锛氫粎鏈汉鏁版嵁鏉冮檺 6锛氶儴闂ㄥ強浠ヤ笅鎴栨湰浜烘暟鎹潈闄愶級"},"menuCheckStrictly":{"type":"boolean","description":"鑿滃崟鏍戦€夋嫨椤规槸鍚﹀叧鑱旀樉绀?},"deptCheckStrictly":{"type":"boolean","description":"閮ㄩ棬鏍戦€夋嫨椤规槸鍚﹀叧鑱旀樉绀?},"status":{"type":"string","description":"瑙掕壊鐘舵€侊紙0姝e父 1鍋滅敤锛?},"remark":{"type":"string","description":"澶囨敞"},"menuIds":{"type":"array","description":"鑿滃崟缁?,"items":{"type":"integer","format":"int64"}},"deptIds":{"type":"array","description":"閮ㄩ棬缁勶紙鏁版嵁鏉冮檺锛?,"items":{"type":"integer","format":"int64"}},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"},"superAdmin":{"type":"boolean","description":"鍒ゆ柇褰撳墠瑙掕壊鏄惁涓鸿秴绾х鐞嗗憳瑙掕壊銆?}},"required":["roleKey","roleName","roleSort"]},"SysUserRole":{"type":"object","description":"鐢ㄦ埛鍜岃鑹插叧鑱?sys_user_role","properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"roleId":{"type":"integer","format":"int64","description":"瑙掕壊ID"}}},"SysPostBo":{"type":"object","description":"宀椾綅淇℃伅涓氬姟瀵硅薄 sys_post","properties":{"postId":{"type":"integer","format":"int64","description":"宀椾綅ID"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id锛堝崟閮ㄩ棬锛?},"belongDeptId":{"type":"integer","format":"int64","description":"褰掑睘閮ㄩ棬id锛堥儴闂ㄦ爲锛?},"postCode":{"type":"string","description":"宀椾綅缂栫爜","maxLength":64,"minLength":0},"postName":{"type":"string","description":"宀椾綅鍚嶇О","maxLength":50,"minLength":0},"postCategory":{"type":"string","description":"宀椾綅绫诲埆缂栫爜","maxLength":100,"minLength":0},"postSort":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"status":{"type":"string","description":"鐘舵€侊紙0姝e父 1鍋滅敤锛?},"remark":{"type":"string","description":"澶囨敞"},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}},"required":["deptId","postCode","postName","postSort"]},"SysNoticeBo":{"type":"object","description":"閫氱煡鍏憡涓氬姟瀵硅薄 sys_notice","properties":{"noticeId":{"type":"integer","format":"int64","description":"鍏憡ID"},"noticeTitle":{"type":"string","description":"鍏憡鏍囬","maxLength":50,"minLength":0},"noticeType":{"type":"string","description":"鍏憡绫诲瀷锛?閫氱煡 2鍏憡锛?},"noticeContent":{"type":"string","description":"鍏憡鍐呭"},"status":{"type":"string","description":"鍏憡鐘舵€侊紙0姝e父 1鍏抽棴锛?},"remark":{"type":"string","description":"澶囨敞"},"createByName":{"type":"string","description":"鍒涘缓浜哄悕绉?}},"required":["noticeTitle"]},"SysMenuBo":{"type":"object","description":"鑿滃崟鏉冮檺涓氬姟瀵硅薄 sys_menu","properties":{"menuId":{"type":"integer","format":"int64","description":"鑿滃崟ID"},"parentId":{"type":"integer","format":"int64","description":"鐖惰彍鍗旾D"},"menuName":{"type":"string","description":"鑿滃崟鍚嶇О","maxLength":50,"minLength":0},"orderNum":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"path":{"type":"string","description":"璺敱鍦板潃","maxLength":200,"minLength":0},"component":{"type":"string","description":"缁勪欢璺緞","maxLength":200,"minLength":0},"queryParam":{"type":"string","description":"璺敱鍙傛暟"},"isFrame":{"type":"string","description":"鏄惁涓哄閾撅紙Y鏄?N鍚︼級"},"isCache":{"type":"string","description":"鏄惁缂撳瓨锛圷缂撳瓨 N涓嶇紦瀛橈級"},"menuType":{"type":"string","description":"鑿滃崟绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛?,"minLength":1},"visible":{"type":"string","description":"鏄剧ず鐘舵€侊紙0鏄剧ず 1闅愯棌锛?},"status":{"type":"string","description":"鑿滃崟鐘舵€侊紙0姝e父 1鍋滅敤锛?},"perms":{"type":"string","description":"鏉冮檺鏍囪瘑","maxLength":100,"minLength":0,"pattern":"^$|^[a-zA-Z0-9_]+:[a-zA-Z0-9_*]+:[a-zA-Z0-9_*]+$"},"icon":{"type":"string","description":"鑿滃崟鍥炬爣"},"activeMenu":{"type":"string","description":"婵€娲昏彍鍗曡矾寰?,"maxLength":255,"minLength":0},"ext":{"type":"string","description":"鎵╁睍瀛楁","maxLength":2000,"minLength":0},"remark":{"type":"string","description":"澶囨敞"}},"required":["menuName","menuType","orderNum"]},"SysDictTypeBo":{"type":"object","description":"瀛楀吀绫诲瀷涓氬姟瀵硅薄 sys_dict_type","properties":{"dictId":{"type":"integer","format":"int64","description":"瀛楀吀涓婚敭"},"dictName":{"type":"string","description":"瀛楀吀鍚嶇О","maxLength":100,"minLength":0},"dictType":{"type":"string","description":"瀛楀吀绫诲瀷","maxLength":100,"minLength":0,"pattern":"^[a-z][a-z0-9_]*$"},"remark":{"type":"string","description":"澶囨敞"}},"required":["dictName","dictType"]},"SysDictDataBo":{"type":"object","description":"瀛楀吀鏁版嵁涓氬姟瀵硅薄 sys_dict_data","properties":{"dictCode":{"type":"integer","format":"int64","description":"瀛楀吀缂栫爜"},"dictSort":{"type":"integer","format":"int32","description":"瀛楀吀鎺掑簭"},"dictLabel":{"type":"string","description":"瀛楀吀鏍囩","maxLength":100,"minLength":0},"dictValue":{"type":"string","description":"瀛楀吀閿€?,"maxLength":100,"minLength":0},"dictType":{"type":"string","description":"瀛楀吀绫诲瀷","maxLength":100,"minLength":0},"cssClass":{"type":"string","description":"鏍峰紡灞炴€э紙鍏朵粬鏍峰紡鎵╁睍锛?,"maxLength":100,"minLength":0},"listClass":{"type":"string","description":"琛ㄦ牸鍥炴樉鏍峰紡"},"isDefault":{"type":"string","description":"鏄惁榛樿锛圷鏄?N鍚︼級"},"createDept":{"type":"integer","format":"int64","description":"鍒涘缓閮ㄩ棬"},"remark":{"type":"string","description":"澶囨敞"}},"required":["dictLabel","dictType","dictValue"]},"SysDeptBo":{"type":"object","description":"閮ㄩ棬涓氬姟瀵硅薄 sys_dept","properties":{"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"parentId":{"type":"integer","format":"int64","description":"鐖堕儴闂↖D"},"deptName":{"type":"string","description":"閮ㄩ棬鍚嶇О","maxLength":30,"minLength":0},"deptCategory":{"type":"string","description":"閮ㄩ棬绫诲埆缂栫爜","maxLength":100,"minLength":0},"orderNum":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"leader":{"type":"integer","format":"int64","description":"璐熻矗浜?},"phone":{"type":"string","description":"鑱旂郴鐢佃瘽","maxLength":11,"minLength":0},"email":{"type":"string","format":"email","description":"閭","maxLength":50,"minLength":0},"status":{"type":"string","description":"閮ㄩ棬鐘舵€侊紙0姝e父 1鍋滅敤锛?},"belongDeptId":{"type":"integer","format":"int64","description":"褰掑睘閮ㄩ棬id锛堥儴闂ㄦ爲锛?},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}},"required":["deptName","orderNum"]},"SysConfigBo":{"type":"object","description":"鍙傛暟閰嶇疆涓氬姟瀵硅薄 sys_config","properties":{"configId":{"type":"integer","format":"int64","description":"鍙傛暟涓婚敭"},"configName":{"type":"string","description":"鍙傛暟鍚嶇О","maxLength":100,"minLength":0},"configKey":{"type":"string","description":"鍙傛暟閿悕","maxLength":100,"minLength":0},"configValue":{"type":"string","description":"鍙傛暟閿€?,"maxLength":500,"minLength":0},"configType":{"type":"string","description":"绯荤粺鍐呯疆锛圷鏄?N鍚︼級"},"remark":{"type":"string","description":"澶囨敞"},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}},"required":["configKey","configName","configValue"]},"SysClientBo":{"type":"object","description":"鎺堟潈绠$悊涓氬姟瀵硅薄 sys_client","properties":{"id":{"type":"integer","format":"int64","description":"id"},"clientId":{"type":"string","description":"瀹㈡埛绔痠d"},"clientKey":{"type":"string","description":"瀹㈡埛绔痥ey","minLength":1},"clientSecret":{"type":"string","description":"瀹㈡埛绔閽?,"minLength":1},"grantTypeList":{"type":"array","description":"鎺堟潈绫诲瀷","items":{"type":"string"}},"grantType":{"type":"string","description":"鎺堟潈绫诲瀷"},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"accessPath":{"type":"string","description":"鍏佽璁块棶璺緞"},"accessPathList":{"type":"array","description":"鍏佽璁块棶璺緞鍒楄〃","items":{"type":"string"}},"ipWhitelist":{"type":"string","description":"IP鐧藉悕鍗?},"ipWhitelistList":{"type":"array","description":"IP鐧藉悕鍗曞垪琛?,"items":{"type":"string"}},"activeTimeout":{"type":"integer","format":"int64","description":"token娲昏穬瓒呮椂鏃堕棿"},"timeout":{"type":"integer","format":"int64","description":"token鍥哄畾瓒呮椂鏃堕棿"},"status":{"type":"string","description":"鐘舵€侊紙0姝e父 1鍋滅敤锛?}},"required":["clientKey","clientSecret","grantTypeList","id"]},"SysOssConfigBo":{"type":"object","description":"瀵硅薄瀛樺偍閰嶇疆涓氬姟瀵硅薄 sys_oss_config","properties":{"ossConfigId":{"type":"integer","format":"int64","description":"涓婚敭"},"configKey":{"type":"string","description":"閰嶇疆key","maxLength":100,"minLength":2},"accessKey":{"type":"string","description":"accessKey","maxLength":100,"minLength":2},"secretKey":{"type":"string","description":"绉橀挜","maxLength":100,"minLength":2},"bucketName":{"type":"string","description":"妗跺悕绉?,"maxLength":100,"minLength":2},"prefix":{"type":"string","description":"鍓嶇紑"},"endpoint":{"type":"string","description":"璁块棶绔欑偣","maxLength":100,"minLength":2},"domainUrl":{"type":"string","description":"鑷畾涔夊煙鍚?},"isHttps":{"type":"string","description":"鏄惁https锛圷=鏄?N=鍚︼級"},"status":{"type":"string","description":"鏄惁榛樿锛圷=鏄?N=鍚︼級"},"region":{"type":"string","description":"鍩?},"ext1":{"type":"string","description":"鎵╁睍瀛楁"},"remark":{"type":"string","description":"澶囨敞"},"accessPolicy":{"type":"string","description":"妗舵潈闄愮被鍨?0private 1public 2custom)","minLength":1}},"required":["accessKey","accessPolicy","bucketName","configKey","endpoint","ossConfigId","secretKey"]},"CzDeviceBo":{"type":"object","description":"鍚庡彴璁惧绠$悊涓氬姟瀵硅薄銆?,"properties":{"deviceId":{"type":"integer","format":"int64","description":"璁惧涓婚敭"},"name":{"type":"string","description":"璁惧鍚嶇О","maxLength":20,"minLength":0},"productId":{"type":"integer","format":"int64","description":"浜у搧妯℃澘"},"mac":{"type":"string","description":"MAC"},"locationId":{"type":"integer","format":"int64","description":"鎵€鍦ㄦ埧闂?},"filterTotalDays":{"type":"integer","format":"int32","description":"鍒濆婊よ姱鎬诲鍛藉ぉ鏁帮紝浠呮护鑺被浜у搧浣跨敤"},"remark":{"type":"string","description":"澶囨敞","maxLength":500,"minLength":0},"model":{"type":"string","description":"鍨嬪彿"},"sn":{"type":"string","description":"搴忓垪鍙?},"status":{"type":"string","description":"鐘舵€侊紙0鏈縺娲?1鍦ㄧ嚎 2绂荤嚎锛?},"homeId":{"type":"integer","format":"int64","description":"瀹跺涵"},"keyword":{"type":"string","description":"鍚嶇О銆佸瀷鍙枫€丮AC銆佸簭鍒楀彿鎴栬澶囩紪鍙?}},"required":["deviceId","locationId","name"]},"TestTreeBo":{"type":"object","description":"娴嬭瘯鏍戣〃涓氬姟瀵硅薄 test_tree","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"parentId":{"type":"integer","format":"int64","description":"鐖禝D"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"treeName":{"type":"string","description":"鏍戣妭鐐瑰悕","minLength":1}},"required":["deptId","id","treeName","userId"]},"TestDemoBo":{"type":"object","description":"娴嬭瘯鍗曡〃涓氬姟瀵硅薄 test_demo","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"orderNum":{"type":"integer","format":"int32","description":"鎺掑簭鍙?},"testKey":{"type":"string","description":"key閿?,"minLength":1},"value":{"type":"string","description":"鍊?,"minLength":1},"version":{"type":"integer","format":"int64","description":"鐗堟湰"}},"required":["deptId","id","orderNum","testKey","userId","value"]},"OpenApiConversationUpdateTitleRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"},"conversationId":{"type":"string","minLength":1},"openId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}},"required":["agentId","conversationId","openId","title"]},"ResultVoid":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{}}},"FlowUrgeTaskBo":{"type":"object","description":"娴佺▼鍙橀噺鍙傛暟","properties":{"taskIdList":{"type":"array","description":"浠诲姟id","items":{"type":"integer","format":"int64"}},"messageType":{"type":"array","description":"娑堟伅绫诲瀷","items":{"type":"string"}},"message":{"type":"string","description":"鍌姙鍐呭"}}},"FlowTerminationBo":{"type":"object","description":"缁堟浠诲姟璇锋眰瀵硅薄","properties":{"taskId":{"type":"integer","format":"int64","description":"浠诲姟 ID"},"comment":{"type":"string","description":"缁堟鎰忚"}}},"TaskOperationBo":{"type":"object","description":"浠诲姟鎿嶄綔涓氬姟瀵硅薄锛岀敤浜庢弿杩颁换鍔″娲俱€佽浆鍔炪€佸姞绛剧瓑鎿嶄綔鐨勫繀瑕佸弬鏁癨n 鍖呭惈浜嗙敤鎴稩D銆佷换鍔D銆佷换鍔$浉鍏崇殑娑堟伅銆佷互鍙婂姞绛?鍑忕鐨勭敤鎴稩D","properties":{"userId":{"type":"string","description":"濮旀淳/杞姙浜虹殑鐢ㄦ埛ID锛堝繀濉紝鍑嗗濮旀淳/杞姙浜烘搷浣滐級"},"userIds":{"type":"array","description":"鍔犵/鍑忕浜虹殑鐢ㄦ埛ID鍒楄〃锛堝繀濉紝閽堝鍔犵/鍑忕鎿嶄綔锛?,"items":{"type":"string"}},"taskId":{"type":"integer","format":"int64","description":"浠诲姟ID锛堝繀濉級"},"messageType":{"type":"array","description":"娑堟伅绫诲瀷","items":{"type":"string"}},"message":{"type":"string","description":"鎰忚鎴栧娉ㄤ俊鎭紙鍙€夛級"}},"required":["taskId"]},"FlowInstanceBizExt":{"type":"object","description":"娴佺▼瀹炰緥涓氬姟鎵╁睍瀵硅薄 flow_instance_biz_ext","properties":{"createBy":{"type":"integer","format":"int64","description":"鍒涘缓鑰?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateBy":{"type":"integer","format":"int64","description":"鏇存柊鑰?},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"id":{"type":"integer","format":"int64","description":"涓婚敭"},"instanceId":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥ID"},"businessId":{"type":"string","description":"涓氬姟ID"},"businessCode":{"type":"string","description":"涓氬姟缂栫爜"},"businessTitle":{"type":"string","description":"涓氬姟鏍囬"},"delFlag":{"type":"string","description":"鍒犻櫎鏍囧織锛?浠h〃瀛樺湪 1浠h〃鍒犻櫎锛?}}},"StartProcessBo":{"type":"object","description":"鍚姩娴佺▼瀵硅薄","properties":{"businessId":{"type":"string","description":"涓氬姟鍞竴鍊糹d","minLength":1},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜","minLength":1},"handler":{"type":"string","description":"鍔炵悊浜?鍙笉濉?鐢ㄤ簬瑕嗙洊褰撳墠鑺傜偣鍔炵悊浜?"},"variables":{"type":"object","additionalProperties":{},"description":"娴佺▼鍙橀噺锛屽墠绔細鎻愪氦涓€涓厓绱爗'entity': {涓氬姟璇︽儏鏁版嵁瀵硅薄}}"},"bizExt":{"$ref":"#/components/schemas/FlowInstanceBizExt","description":"娴佺▼涓氬姟鎵╁睍淇℃伅"}},"required":["businessId","flowCode"]},"RStartProcessReturnDTO":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/StartProcessReturnDTO","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"StartProcessReturnDTO":{"type":"object","description":"鍚姩娴佺▼鍚庣殑杩斿洖缁撴灉瀵硅薄銆?,"properties":{"processInstanceId":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥 ID"},"taskId":{"type":"integer","format":"int64","description":"棣栦釜浠诲姟 ID"}}},"FlowNextNodeBo":{"type":"object","description":"鏌ヨ涓嬩竴鑺傜偣淇℃伅鐨勮姹傚璞°€?,"properties":{"taskId":{"type":"integer","format":"int64","description":"浠诲姟id"},"variables":{"type":"object","additionalProperties":{},"description":"娴佺▼鍙橀噺"}}},"FlowNode":{"type":"object","properties":{"skipList":{"type":"array","items":{"$ref":"#/components/schemas/Skip"}},"id":{"type":"integer","format":"int64"},"createTime":{"type":"string","format":"date-time"},"updateTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateBy":{"type":"string"},"tenantId":{"type":"string"},"delFlag":{"type":"string"},"nodeType":{"type":"integer","format":"int32"},"definitionId":{"type":"integer","format":"int64"},"nodeCode":{"type":"string"},"nodeName":{"type":"string"},"permissionFlag":{"type":"string"},"nodeRatio":{"type":"string"},"coordinate":{"type":"string"},"version":{"type":"string","deprecated":true},"anyNodeSkip":{"type":"string"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"ext":{"type":"string"}}},"RListFlowNode":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/FlowNode"}}}},"CompleteTaskBo":{"type":"object","description":"鍔炵悊浠诲姟璇锋眰瀵硅薄","properties":{"taskId":{"type":"integer","format":"int64","description":"浠诲姟id"},"fileId":{"type":"string","description":"闄勪欢id"},"flowCopyList":{"type":"array","description":"鎶勯€佷汉鍛?,"items":{"$ref":"#/components/schemas/FlowCopyBo"}},"messageType":{"type":"array","description":"娑堟伅绫诲瀷","items":{"type":"string"}},"message":{"type":"string","description":"鍔炵悊鎰忚"},"notice":{"type":"string","description":"娑堟伅閫氱煡"},"handler":{"type":"string","description":"鍔炵悊浜?鍙笉濉?鐢ㄤ簬瑕嗙洊褰撳墠鑺傜偣鍔炵悊浜?"},"variables":{"type":"object","additionalProperties":{},"description":"娴佺▼鍙橀噺"},"assigneeMap":{"type":"object","additionalProperties":{},"description":"寮圭獥閫夋嫨鐨勫姙鐞嗕汉"},"ext":{"type":"string","description":"鎵╁睍鍙橀噺(姝ゅ涓洪€楀彿鍒嗛殧鐨刼ssId)"}},"required":["taskId"]},"FlowCopyBo":{"type":"object","description":"娴佺▼鎶勯€佽姹傚璞°€?,"properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"}}},"BackProcessBo":{"type":"object","description":"椹冲洖鍙傛暟璇锋眰","properties":{"taskId":{"type":"integer","format":"int64","description":"浠诲姟ID"},"fileId":{"type":"string","description":"闄勪欢id"},"messageType":{"type":"array","description":"娑堟伅绫诲瀷","items":{"type":"string"}},"nodeCode":{"type":"string","description":"椹冲洖鐨勮妭鐐筰d(鐩墠鏈娇鐢紝鐩存帴椹冲洖鍒扮敵璇蜂汉)"},"message":{"type":"string","description":"鍔炵悊鎰忚"},"notice":{"type":"string","description":"閫氱煡"},"variables":{"type":"object","additionalProperties":{},"description":"娴佺▼鍙橀噺"}},"required":["taskId"]},"FlowInvalidBo":{"type":"object","description":"浣滃簾娴佺▼璇锋眰瀵硅薄銆?,"properties":{"id":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥 ID"},"comment":{"type":"string","description":"浣滃簾鎰忚"}}},"DefJson":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"flowCode":{"type":"string"},"flowName":{"type":"string"},"modelValue":{"type":"string"},"category":{"type":"string"},"version":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"instance":{"$ref":"#/components/schemas/Instance"},"ext":{"type":"string"},"extMap":{"type":"object","additionalProperties":{}},"nodeList":{"type":"array","items":{"$ref":"#/components/schemas/NodeJson"}},"chartStatusColor":{"type":"array","items":{"type":"string"}},"topText":{"type":"string"},"topTextShow":{"type":"boolean"},"createBy":{"type":"string"},"updateBy":{"type":"string"},"categoryList":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}},"formPathList":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}}}},"InfoItem":{"type":"object","properties":{"prefix":{"type":"string"},"prefixStyle":{"type":"object","additionalProperties":{}},"content":{"type":"string"},"contentStyle":{"type":"object","additionalProperties":{}},"rowStyle":{"type":"object","additionalProperties":{}}}},"Instance":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"string"},"activityStatus":{"type":"integer","format":"int32"},"defJson":{"type":"string"},"definitionId":{"type":"integer","format":"int64"},"variable":{"type":"string"},"updateBy":{"type":"string"},"nodeType":{"type":"integer","format":"int32"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"nodeName":{"type":"string"},"flowStatus":{"type":"string"},"businessId":{"type":"string"},"nodeCode":{"type":"string"},"flowName":{"type":"string"},"variableMap":{"type":"object","additionalProperties":{}},"updateTime":{"type":"string","format":"date-time"},"formCustom":{"type":"string"},"formPath":{"type":"string"}}},"NodeJson":{"type":"object","properties":{"nodeType":{"type":"integer","format":"int32"},"nodeCode":{"type":"string"},"nodeName":{"type":"string"},"version":{"type":"string"},"permissionFlag":{"type":"string"},"nodeRatio":{"type":"string"},"coordinate":{"type":"string"},"anyNodeSkip":{"type":"string"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"ext":{"type":"string"},"status":{"type":"integer","format":"int32"},"extMap":{"type":"object","additionalProperties":{}},"promptContent":{"$ref":"#/components/schemas/PromptContent"},"skipList":{"type":"array","items":{"$ref":"#/components/schemas/SkipJson"}},"createBy":{"type":"string"},"updateBy":{"type":"string"}}},"PromptContent":{"type":"object","properties":{"dialogStyle":{"type":"object","additionalProperties":{}},"info":{"type":"array","items":{"$ref":"#/components/schemas/InfoItem"}}}},"SkipJson":{"type":"object","properties":{"nowNodeCode":{"type":"string"},"nextNodeCode":{"type":"string"},"skipName":{"type":"string"},"skipType":{"type":"string"},"skipCondition":{"type":"string"},"coordinate":{"type":"string"},"status":{"type":"integer","format":"int32"},"extMap":{"type":"object","additionalProperties":{}},"promptContent":{"type":"array","items":{"type":"string"}},"createBy":{"type":"string"},"updateBy":{"type":"string"}}},"Tree":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}}}},"ApiResultVoid":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{}}},"FlowDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"formContent":{"type":"string"},"form":{"$ref":"#/components/schemas/Form"},"data":{}}},"Form":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"version":{"type":"string"},"tenantId":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"formContent":{"type":"string"},"formCode":{"type":"string"},"formType":{"type":"integer","format":"int32"},"formName":{"type":"string"},"updateBy":{"type":"string"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateTime":{"type":"string","format":"date-time"},"formPath":{"type":"string"}}},"ApiResultInstance":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/Instance"}}},"RString":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"string","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"OpenApiUserVO":{"type":"object","properties":{"openId":{"type":"string"},"externalId":{"type":"string"},"nickname":{"type":"string"},"avatarUrl":{"type":"string"},"created":{"type":"boolean"}}},"ROpenApiUserVO":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/OpenApiUserVO","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysOssUploadVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysOssUploadVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysOssUploadVo":{"type":"object","description":"OSS 涓婁紶鍝嶅簲瀵硅薄銆?,"properties":{"url":{"type":"string","description":"鏂囦欢璁块棶鍦板潃"},"fileName":{"type":"string","description":"鍘熷鏂囦欢鍚?},"ossId":{"type":"string","description":"OSS 瀵硅薄 ID"}}},"SysOperLogBo":{"type":"object","description":"鎿嶄綔鏃ュ織璁板綍涓氬姟瀵硅薄 sys_oper_log","properties":{"operId":{"type":"integer","format":"int64","description":"鏃ュ織涓婚敭"},"title":{"type":"string","description":"妯″潡鏍囬"},"businessType":{"type":"integer","format":"int32","description":"涓氬姟绫诲瀷锛?鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛?},"businessTypes":{"type":"array","description":"涓氬姟绫诲瀷鏁扮粍","items":{"type":"integer","format":"int32"}},"method":{"type":"string","description":"鏂规硶鍚嶇О"},"requestMethod":{"type":"string","description":"璇锋眰鏂瑰紡"},"operatorType":{"type":"integer","format":"int32","description":"鎿嶄綔绫诲埆锛?鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級"},"operName":{"type":"string","description":"鎿嶄綔浜哄憳"},"userId":{"type":"integer","format":"int64","description":"鎿嶄綔鐢ㄦ埛ID"},"deptId":{"type":"integer","format":"int64","description":"鎿嶄綔閮ㄩ棬ID"},"deptName":{"type":"string","description":"閮ㄩ棬鍚嶇О"},"clientKey":{"type":"string","description":"瀹㈡埛绔?},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"browser":{"type":"string","description":"娴忚鍣ㄧ被鍨?},"os":{"type":"string","description":"鎿嶄綔绯荤粺"},"operUrl":{"type":"string","description":"璇锋眰URL"},"operIp":{"type":"string","description":"涓绘満鍦板潃"},"operLocation":{"type":"string","description":"鎿嶄綔鍦扮偣"},"operParam":{"type":"string","description":"璇锋眰鍙傛暟"},"jsonResult":{"type":"string","description":"杩斿洖鍙傛暟"},"status":{"type":"integer","format":"int32","description":"鎿嶄綔鐘舵€侊紙0姝e父 1寮傚父锛?},"errorMsg":{"type":"string","description":"閿欒娑堟伅"},"operTime":{"type":"string","format":"date-time","description":"鎿嶄綔鏃堕棿"},"costTime":{"type":"integer","format":"int64","description":"娑堣€楁椂闂?},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}}},"SysLoginInfoBo":{"type":"object","description":"绯荤粺璁块棶璁板綍涓氬姟瀵硅薄 sys_login_info","properties":{"infoId":{"type":"integer","format":"int64","description":"璁块棶ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿"},"clientKey":{"type":"string","description":"瀹㈡埛绔?},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"ipaddr":{"type":"string","description":"鐧诲綍IP鍦板潃"},"loginLocation":{"type":"string","description":"鐧诲綍鍦扮偣"},"browser":{"type":"string","description":"娴忚鍣ㄧ被鍨?},"os":{"type":"string","description":"鎿嶄綔绯荤粺"},"status":{"type":"string","description":"鐧诲綍鐘舵€侊紙0鎴愬姛 1澶辫触锛?},"msg":{"type":"string","description":"鎻愮ず娑堟伅"},"loginTime":{"type":"string","format":"date-time","description":"璁块棶鏃堕棿"},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}}},"ExportDemoVo":{"type":"object","description":"甯︽湁涓嬫媺閫夌殑Excel瀵煎嚭","properties":{"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"},"userStatus":{"type":"string","description":"鐢ㄦ埛绫诲瀷\n

\n 浣跨敤ExcelEnumFormat娉ㄨВ闇€瑕佽繘琛屼笅鎷夐€夌殑閮ㄥ垎"},"gender":{"type":"string","description":"鎬у埆\n

\n 浣跨敤ExcelDictFormat娉ㄨВ闇€瑕佽繘琛屼笅鎷夐€夌殑閮ㄥ垎"},"phoneNumber":{"type":"string","description":"鎵嬫満鍙?},"email":{"type":"string","description":"Email"},"province":{"type":"string","description":"鐪乗n

\n 绾ц仈涓嬫媺锛屼粎鍒ゆ柇鏄惁閫変簡"},"provinceId":{"type":"integer","format":"int32","description":"鏁版嵁搴撲腑鐨勭渷ID\n

\n 澶勭悊瀹屾瘯鍚庡啀鍒ゆ柇鏄惁甯傛纭殑鍊?},"city":{"type":"string","description":"甯俓n

\n 绾ц仈涓嬫媺"},"cityId":{"type":"integer","format":"int32","description":"鏁版嵁搴撲腑鐨勫競ID"},"area":{"type":"string","description":"鍘縗n

\n 绾ц仈涓嬫媺"},"areaId":{"type":"integer","format":"int32","description":"鏁版嵁搴撲腑鐨勫幙ID"}}},"SocialLoginBody":{"type":"object","description":"绗笁鏂瑰钩鍙扮櫥褰曠粦瀹氳姹傚璞°€?,"properties":{"clientId":{"type":"string","description":"瀹㈡埛绔痠d","minLength":1},"grantType":{"type":"string","description":"鎺堟潈绫诲瀷","minLength":1},"code":{"type":"string","description":"楠岃瘉鐮?},"uuid":{"type":"string","description":"楠岃瘉鐮佸敮涓€鏍囪瘑銆?},"source":{"type":"string","description":"绗笁鏂圭櫥褰曞钩鍙?,"minLength":1},"socialCode":{"type":"string","description":"绗笁鏂圭櫥褰昪ode","minLength":1},"socialState":{"type":"string","description":"绗笁鏂圭櫥褰晄ocialState","minLength":1}},"required":["clientId","grantType","socialCode","socialState","source"]},"RegisterBody":{"type":"object","description":"鐢ㄦ埛娉ㄥ唽瀵硅薄","properties":{"clientId":{"type":"string","description":"瀹㈡埛绔痠d","minLength":1},"grantType":{"type":"string","description":"鎺堟潈绫诲瀷","minLength":1},"code":{"type":"string","description":"楠岃瘉鐮?},"uuid":{"type":"string","description":"楠岃瘉鐮佸敮涓€鏍囪瘑銆?},"username":{"type":"string","description":"鐢ㄦ埛鍚?,"minLength":1},"password":{"type":"string","description":"鐢ㄦ埛瀵嗙爜","minLength":1},"userType":{"type":"string","description":"鐢ㄦ埛绫诲瀷"}},"required":["clientId","grantType","password","username"]},"LoginVo":{"type":"object","description":"鐧诲綍鎴愬姛鍚庣殑浠ょ墝淇℃伅杩斿洖瀵硅薄銆?,"properties":{"scope":{"type":"string","description":"浠ょ墝鏉冮檺"},"openid":{"type":"string","description":"鐢ㄦ埛 openid"},"access_token":{"type":"string","description":"鎺堟潈浠ょ墝"},"refresh_token":{"type":"string","description":"鍒锋柊浠ょ墝"},"expire_in":{"type":"integer","format":"int64","description":"鎺堟潈浠ょ墝 access_token 鐨勬湁鏁堟湡"},"refresh_expire_in":{"type":"integer","format":"int64","description":"鍒锋柊浠ょ墝 refresh_token 鐨勬湁鏁堟湡"},"client_id":{"type":"string","description":"搴旂敤id"}}},"RLoginVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/LoginVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"UpdateProfileBo":{"type":"object","description":"淇敼鐢ㄦ埛璧勬枡璇锋眰浣?,"properties":{"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О","maxLength":10,"minLength":1},"avatarOssId":{"type":"integer","format":"int64","description":"澶村儚 OSS ID"},"avatarUrl":{"type":"string","description":"澶村儚 URL"},"gender":{"type":"string","description":"鎬у埆锛?鏈煡 1鐢?2濂筹級"},"birthday":{"type":"string","description":"鐢熸棩"},"province":{"type":"string","description":"鐪佷唤","maxLength":10,"minLength":0},"city":{"type":"string","description":"鍩庡競","maxLength":10,"minLength":0},"district":{"type":"string","description":"鍖哄幙","maxLength":10,"minLength":0}}},"AvatarUploadVo":{"type":"object","description":"澶村儚涓婁紶鍝嶅簲瀵硅薄","properties":{"url":{"type":"string"},"fileName":{"type":"string"},"ossId":{"type":"string"}}},"RAvatarUploadVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/AvatarUploadVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"UpdateLocationBo":{"type":"object","properties":{"locationId":{"type":"integer","format":"int64"},"locationName":{"type":"string","maxLength":10,"minLength":1},"icon":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"}},"required":["locationId","locationName"]},"CreateLocationBo":{"type":"object","properties":{"homeId":{"type":"integer","format":"int64"},"locationName":{"type":"string","maxLength":10,"minLength":1},"icon":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"}},"required":["homeId","locationName"]},"CreateHomeBo":{"type":"object","properties":{"homeName":{"type":"string","maxLength":10,"minLength":2}},"required":["homeName"]},"UpdateDeviceRuntimeBo":{"type":"object","description":"璁惧杩愯鏁版嵁鏇存柊鍙傛暟\n

\n 鍓嶇閫氳繃钃濈墮鍚屾璁惧杩愯鐘舵€佹椂鎻愪氦銆?,"properties":{"deviceId":{"type":"integer","format":"int64","description":"璁惧ID"},"status":{"type":"string","description":"鐘舵€侊紙0鏈縺娲?1鍦ㄧ嚎 2绂荤嚎锛?},"bluetoothConnected":{"type":"string","description":"钃濈墮杩炴帴鐘舵€侊紙0鏈繛鎺?1宸茶繛鎺ワ級"},"signalLevel":{"type":"string","description":"淇″彿寮哄害锛?绂荤嚎 1寮?2涓€鑸?3寮猴級"},"charging":{"type":"string","description":"鍏呯數鐘舵€侊紙0鏈厖鐢?1鍏呯數涓級"},"runMode":{"type":"string","description":"杩愯妯″紡锛?鑷姩 1杞﹁浇 2妗岄潰锛?},"fanLevel":{"type":"string","description":"椋庨€熸尅浣嶏紙0鏍囧噯 1寮哄姏 2浣庢。锛?},"tvoc":{"type":"number","description":"TVOC 鍘熷鍊?},"powerMode":{"type":"string","description":"渚涚數妯″紡锛?USB 1鐢垫睜锛?},"filterTotalDays":{"type":"string","description":"婊よ姱鎬诲鍛藉ぉ鏁?},"filterRemainDays":{"type":"string","description":"婊よ姱鍓╀綑澶╂暟"},"parkingShutdown":{"type":"string","description":"鍋滄満妯″紡锛?鍏虫満 1寮€鏈猴級"}},"required":["deviceId"]},"DeviceRuntimeQueryBo":{"type":"object","description":"璁惧杩愯鏁版嵁鏌ヨ鍙傛暟","properties":{"deviceId":{"type":"integer","format":"int64","description":"璁惧ID"}},"required":["deviceId"]},"AppDeviceRuntimeVo":{"type":"object","description":"璁惧杩愯鏁版嵁瑙嗗浘瀵硅薄\n

\n 鍖呭惈鍑€鍖栧櫒杩愯鐘舵€佷俊鎭€?,"properties":{"deviceId":{"type":"integer","format":"int64","description":"璁惧ID"},"deviceNo":{"type":"string","description":"璁惧缂栧彿"},"name":{"type":"string","description":"璁惧鍚嶇О"},"status":{"type":"string","description":"鐘舵€侊紙0鏈縺娲?1鍦ㄧ嚎 2绂荤嚎锛?},"runMode":{"type":"string","description":"杩愯妯″紡锛?鑷姩 1杞﹁浇 2妗岄潰锛?},"fanLevel":{"type":"string","description":"椋庨€熸尅浣嶏紙0鏍囧噯 1寮哄姏 2浣庢。锛?},"tvoc":{"type":"number","description":"TVOC 鍘熷鍊?},"powerMode":{"type":"string","description":"渚涚數妯″紡锛?USB 1鐢垫睜锛?},"filterTotalDays":{"type":"string","description":"婊よ姱鎬诲鍛藉ぉ鏁?},"filterRemainDays":{"type":"string","description":"婊よ姱鍓╀綑澶╂暟"},"filterLife":{"type":"integer","format":"int32","description":"婊よ姱瀵垮懡锛?-100锛?},"filterReplaceTime":{"type":"string","format":"date-time","description":"鏈€杩戜竴娆$‘璁ゆ洿鎹㈡护鑺椂闂?},"parkingShutdown":{"type":"string","description":"鍋滄満妯″紡锛?鍏虫満 1寮€鏈猴級"}}},"RAppDeviceRuntimeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/AppDeviceRuntimeVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"DeviceQueryBo":{"type":"object","description":"璁惧鍒楄〃鏌ヨ鍙傛暟","properties":{"homeId":{"type":"integer","format":"int64","description":"瀹跺涵ID"},"locationId":{"type":"integer","format":"int64","description":"浣嶇疆ID"}}},"AppDeviceVo":{"type":"object","description":"璁惧瑙嗗浘瀵硅薄","properties":{"deviceId":{"type":"integer","format":"int64","description":"璁惧ID"},"deviceNo":{"type":"string","description":"璁惧缂栧彿"},"name":{"type":"string","description":"璁惧鍚嶇О"},"imei":{"type":"string","description":"璁惧IMEI"},"mac":{"type":"string","description":"璁惧MAC"},"homeId":{"type":"integer","format":"int64","description":"瀹跺涵ID"},"locationId":{"type":"integer","format":"int64","description":"浣嶇疆ID"},"status":{"type":"string","description":"鐘舵€侊紙0鏈縺娲?1鍦ㄧ嚎 2绂荤嚎锛?},"bluetoothConnected":{"type":"string","description":"钃濈墮杩炴帴鐘舵€侊紙0鏈繛鎺?1宸茶繛鎺ワ級"},"signalLevel":{"type":"string","description":"淇″彿寮哄害锛?绂荤嚎 1寮?2涓€鑸?3寮猴級"},"charging":{"type":"string","description":"鍏呯數鐘舵€侊紙0鏈厖鐢?1鍏呯數涓級"},"bindTime":{"type":"string","format":"date-time","description":"缁戝畾鏃堕棿"}}},"RListAppDeviceVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/AppDeviceVo"}}}},"DeviceBindBo":{"type":"object","description":"璁惧缁戝畾璇锋眰鍙傛暟\n

\n 鍓嶇閫氳繃钃濈墮閰嶅璁惧鍚庯紝灏嗛厤瀵硅幏鍙栧埌鐨勮澶囦俊鎭彁浜ょ粦瀹氥€?,"properties":{"deviceNo":{"type":"string","description":"璁惧缂栧彿","minLength":1},"imei":{"type":"string","description":"璁惧IMEI"},"mac":{"type":"string","description":"璁惧MAC"},"name":{"type":"string","description":"璁惧鍚嶇О"},"homeId":{"type":"integer","format":"int64","description":"瀹跺涵ID"},"locationId":{"type":"integer","format":"int64","description":"浣嶇疆ID"}},"required":["deviceNo"]},"SendSmsCodeBo":{"type":"object","description":"鍙戦€佺煭淇¢獙璇佺爜璇锋眰","properties":{"phonenumber":{"type":"string","description":"鎵嬫満鍙风爜","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"scene":{"type":"string","description":"涓氬姟鍦烘櫙锛歳egister / login / reset / change_phone_old / change_phone_new","minLength":1}},"required":["phonenumber","scene"]},"RegisterBo":{"type":"object","description":"App 鐢ㄦ埛娉ㄥ唽璇锋眰锛堟墜鏈哄彿銆侀獙璇佺爜銆佸瘑鐮併€佺‘璁ゅ瘑鐮佸洓涓瓧娈碉級","properties":{"phonenumber":{"type":"string","description":"鎵嬫満鍙风爜","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"smsCode":{"type":"string","description":"鐭俊楠岃瘉鐮?,"minLength":1},"password":{"type":"string","description":"瀵嗙爜","maxLength":20,"minLength":6},"confirmPassword":{"type":"string","description":"纭瀵嗙爜","minLength":1}},"required":["confirmPassword","password","phonenumber","smsCode"]},"AppLoginVo":{"type":"object","description":"App 鐧诲綍鍝嶅簲锛堝寘鍚闂护鐗屼笌鍩虹鐢ㄦ埛淇℃伅锛?,"properties":{"accessToken":{"type":"string","description":"璁块棶浠ょ墝"},"expireIn":{"type":"integer","format":"int64","description":"浠ょ墝鏈夋晥鏈燂紙绉掞級"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"userName":{"type":"string","description":"鐢ㄦ埛鍚?},"nickName":{"type":"string","description":"鏄电О"}}},"RAppLoginVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/AppLoginVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"LoginSmsBo":{"type":"object","description":"鐭俊楠岃瘉鐮佺櫥褰曡姹?,"properties":{"phonenumber":{"type":"string","description":"鎵嬫満鍙风爜","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"smsCode":{"type":"string","description":"鐭俊楠岃瘉鐮?,"minLength":1}},"required":["phonenumber","smsCode"]},"LoginPasswordBo":{"type":"object","description":"璐﹀彿瀵嗙爜鐧诲綍璇锋眰锛坅ccount 鏀寔鐢ㄦ埛鍚嶆垨鎵嬫満鍙凤級","properties":{"account":{"type":"string","description":"鐧诲綍璐﹀彿锛堢敤鎴峰悕鎴栨墜鏈哄彿锛?,"minLength":1},"password":{"type":"string","description":"瀵嗙爜","minLength":1}},"required":["account","password"]},"VerifyResetSmsCodeBo":{"type":"object","properties":{"phonenumber":{"type":"string","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"smsCode":{"type":"string","minLength":1}},"required":["phonenumber","smsCode"]},"DoResetPasswordBo":{"type":"object","properties":{"resetToken":{"type":"string","minLength":1},"newPassword":{"type":"string","maxLength":20,"minLength":6},"confirmPassword":{"type":"string","minLength":1}},"required":["confirmPassword","newPassword","resetToken"]},"VerifyOldPhoneBo":{"type":"object","description":"鎹㈢粦鎵嬫満鍙风涓€姝ワ細鏍¢獙鍘熸墜鏈哄彿楠岃瘉鐮佽姹傚璞?,"properties":{"oldPhonenumber":{"type":"string","description":"鍘熸墜鏈哄彿鐮?,"minLength":1,"pattern":"^1[3-9]\\d{9}$"},"oldSmsCode":{"type":"string","description":"鍘熸墜鏈哄彿鐭俊楠岃瘉鐮?,"minLength":1}},"required":["oldPhonenumber","oldSmsCode"]},"VerifyNewPhoneBo":{"type":"object","description":"鎹㈢粦鎵嬫満鍙风浜屾锛氭牎楠屾柊鎵嬫満鍙烽獙璇佺爜骞舵洿鏂拌姹傚璞?,"properties":{"changeToken":{"type":"string","description":"绗竴姝ユ牎楠岄€氳繃鍚庤繑鍥炵殑涓存椂浠ょ墝","minLength":1},"newPhonenumber":{"type":"string","description":"鏂版墜鏈哄彿鐮?,"minLength":1,"pattern":"^1[3-9]\\d{9}$"},"newSmsCode":{"type":"string","description":"鏂版墜鏈哄彿鐭俊楠岃瘉鐮?,"minLength":1}},"required":["changeToken","newPhonenumber","newSmsCode"]},"AgreementVo":{"type":"object","description":"鍗忚閰嶇疆瑙嗗浘瀵硅薄","properties":{"agreementId":{"type":"integer","format":"int64","description":"鍗忚ID"},"agreementType":{"type":"string","description":"鍗忚绫诲瀷锛坲ser/privacy/service锛?},"agreementNo":{"type":"string","description":"鍗忚缂栧彿"},"versionName":{"type":"string","description":"鐗堟湰鍙?},"name":{"type":"string","description":"鍗忚鍚嶇О"}}},"RListAgreementVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/AgreementVo"}}}},"AgreementIdBo":{"type":"object","description":"鍗忚璇︽儏鏌ヨ鍙傛暟","properties":{"agreementId":{"type":"integer","format":"int64","description":"鍗忚ID"}},"required":["agreementId"]},"AgreementDetailVo":{"type":"object","description":"鍗忚璇︽儏瑙嗗浘瀵硅薄","properties":{"agreementNo":{"type":"string","description":"鍗忚缂栧彿"},"name":{"type":"string","description":"鍗忚鍚嶇О"},"versionName":{"type":"string","description":"鐗堟湰鍙?},"content":{"type":"string","description":"鍗忚姝f枃"},"publishTime":{"type":"string","format":"date-time","description":"鐢熸晥鏃堕棿"}}},"RAgreementDetailVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/AgreementDetailVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"OpenApiEmbedTokenRequest":{"type":"object","properties":{"openId":{"type":"string","minLength":1},"trustedCredential":{"type":"string"},"ttlSeconds":{"type":"integer","format":"int32","maximum":86400,"minimum":60}},"required":["openId"]},"OpenApiEmbedTokenResponse":{"type":"object","properties":{"token":{"type":"string"},"tokenType":{"type":"string"},"authHeader":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"ttlSeconds":{"type":"integer","format":"int32"},"openId":{"type":"string"},"nickname":{"type":"string"},"avatarUrl":{"type":"string"}}},"ResultOpenApiEmbedTokenResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiEmbedTokenResponse"}}},"OpenApiResourceResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"storageKey":{"type":"string"},"originalName":{"type":"string"},"fileSize":{"type":"integer","format":"int64"},"mimeType":{"type":"string"},"storageType":{"type":"string"},"accessUrl":{"type":"string"},"bizType":{"type":"string"},"bizId":{"type":"integer","format":"int64"},"creatorId":{"type":"integer","format":"int64"},"createDt":{"type":"string","format":"date-time"}}},"ResultOpenApiResourceResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiResourceResponse"}}},"OpenApiCreateConversationRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"},"openId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}},"required":["agentId","openId","title"]},"OpenApiConversationVO":{"type":"object","properties":{"conversationId":{"type":"string"},"agentId":{"type":"integer","format":"int64"},"title":{"type":"string"},"createDt":{"type":"string"},"updateDt":{"type":"string"}}},"ResultOpenApiConversationVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiConversationVO"}}},"OpenApiChatAttachmentRequest":{"type":"object","properties":{"resourceId":{"type":"integer","format":"int64"},"type":{"type":"string","minLength":1}},"required":["resourceId","type"]},"OpenApiChatRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"},"openId":{"type":"string","minLength":1},"conversationId":{"type":"string","minLength":1},"content":{"type":"string","minLength":1},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiChatAttachmentRequest"}},"disabledMcpServerIds":{"type":"array","items":{"type":"integer","format":"int64"}},"disabledSkillIds":{"type":"array","items":{"type":"integer","format":"int64"}},"deepPlanEnabled":{"type":"boolean"},"webSearchEnabled":{"type":"boolean"},"sid":{"type":"string"},"timeout":{"type":"integer","format":"int64"}},"required":["agentId","content","conversationId","openId"]},"ServerSentEventString":{},"FlowTaskBo":{"type":"object","description":"浠诲姟璇锋眰瀵硅薄","properties":{"nodeName":{"type":"string","description":"浠诲姟鍚嶇О"},"flowName":{"type":"string","description":"娴佺▼瀹氫箟鍚嶇О"},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜"},"category":{"type":"string","description":"娴佺▼鍒嗙被id"},"instanceId":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥id"},"flowStatus":{"type":"string","description":"娴佺▼鐘舵€?},"permissionList":{"type":"array","description":"鏉冮檺鍒楄〃","items":{"type":"string"}},"createByIds":{"type":"array","description":"鐢宠浜篒ds","items":{"type":"integer","format":"int64"}},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}}},"PageQuery":{"type":"object","description":"鍒嗛〉鏌ヨ瀹炰綋绫?,"properties":{"pageSize":{"type":"integer","format":"int32","description":"鍒嗛〉澶у皬"},"pageNum":{"type":"integer","format":"int32","description":"褰撳墠椤垫暟"},"orderByColumn":{"type":"string","description":"鎺掑簭鍒?},"isAsc":{"type":"string","description":"鎺掑簭鐨勬柟鍚慸esc鎴栬€卆sc"}}},"ButtonPermissionVo":{"type":"object","description":"鎸夐挳鏉冮檺瑙嗗浘瀵硅薄銆?,"properties":{"code":{"type":"string","description":"鍞竴缂栫爜"},"value":{"type":"string","description":"閫夐」鍊?},"show":{"type":"boolean","description":"鏄惁鏄剧ず"}}},"FlowCopyVo":{"type":"object","description":"娴佺▼鎶勯€佽鍥惧璞°€?,"properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"}}},"FlowTaskVo":{"type":"object","description":"娴佺▼浠诲姟瑙嗗浘瀵硅薄銆?,"properties":{"id":{"type":"integer","format":"int64","description":"浠诲姟ID銆?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"delFlag":{"type":"string","description":"鍒犻櫎鏍囪"},"definitionId":{"type":"integer","format":"int64","description":"瀵瑰簲flow_definition琛ㄧ殑id"},"instanceId":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥琛╥d"},"flowName":{"type":"string","description":"娴佺▼瀹氫箟鍚嶇О"},"businessId":{"type":"string","description":"涓氬姟id"},"nodeCode":{"type":"string","description":"鑺傜偣缂栫爜"},"nodeName":{"type":"string","description":"鑺傜偣鍚嶇О"},"nodeType":{"type":"integer","format":"int32","description":"鑺傜偣绫诲瀷锛?寮€濮嬭妭鐐?1涓棿鑺傜偣 2缁撴潫鑺傜偣 3浜掓枼缃戝叧 4骞惰缃戝叧锛?},"permissionList":{"type":"array","description":"鏉冮檺鏍囪瘑 permissionFlag鐨刲ist褰㈠紡","items":{"type":"string"}},"userList":{"type":"array","description":"娴佺▼鐢ㄦ埛鍒楄〃","items":{"$ref":"#/components/schemas/User"}},"formCustom":{"type":"string","description":"瀹℃壒琛ㄥ崟鏄惁鑷畾涔夛紙Y鏄?N鍚︼級"},"formPath":{"type":"string","description":"瀹℃壒琛ㄥ崟"},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜"},"version":{"type":"string","description":"娴佺▼鐗堟湰鍙?},"flowStatus":{"type":"string","description":"娴佺▼鐘舵€?},"category":{"type":"string","description":"娴佺▼鍒嗙被id"},"categoryName":{"type":"string","description":"娴佺▼鍒嗙被鍚嶇О"},"flowStatusName":{"type":"string","description":"娴佺▼鐘舵€?},"type":{"type":"string","description":"鍔炵悊浜虹被鍨?},"assigneeIds":{"type":"string","description":"鍔炵悊浜篿ds"},"assigneeNames":{"type":"string","description":"鍔炵悊浜哄悕绉?},"processedBy":{"type":"string","description":"鎶勯€佷汉id"},"processedByName":{"type":"string","description":"鎶勯€佷汉鍚嶇О"},"nodeRatio":{"type":"string","description":"娴佺▼绛剧讲姣斾緥鍊?澶т簬0涓虹エ绛撅紝浼氱"},"createBy":{"type":"string","description":"鐢宠浜篿d"},"createByName":{"type":"string","description":"鐢宠浜哄悕绉?},"applyNode":{"type":"boolean","description":"鏄惁涓虹敵璇蜂汉鑺傜偣"},"buttonList":{"type":"array","description":"鎸夐挳鏉冮檺","items":{"$ref":"#/components/schemas/ButtonPermissionVo"}},"copyList":{"type":"array","description":"鎶勯€佸璞?ID 闆嗗悎\n

\n 鏍规嵁鎵╁睍灞炴€т腑 CopySettingEnum 绫诲瀷鐨勬暟鎹敓鎴愶紝瀛樺偍闇€瑕佹妱閫佺殑瀵硅薄 ID","items":{"$ref":"#/components/schemas/FlowCopyVo"}},"varList":{"type":"object","additionalProperties":{"type":"string"},"description":"鑷畾涔夊弬鏁?Map\n

\n 鏍规嵁鎵╁睍灞炴€т腑 VariablesEnum 绫诲瀷鐨勬暟鎹敓鎴愶紝瀛樺偍 key=value 鏍煎紡鐨勮嚜瀹氫箟鍙傛暟"},"businessCode":{"type":"string","description":"涓氬姟缂栫爜"},"businessTitle":{"type":"string","description":"涓氬姟鏍囬"}}},"PageResultFlowTaskVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/FlowTaskVo"}}}},"RPageResultFlowTaskVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultFlowTaskVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"FlowHisTaskVo":{"type":"object","description":"鍘嗗彶浠诲姟瑙嗗浘","properties":{"id":{"type":"integer","format":"int64","description":"鍘嗗彶浠诲姟涓婚敭"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"delFlag":{"type":"string","description":"鍒犻櫎鏍囪"},"definitionId":{"type":"integer","format":"int64","description":"瀵瑰簲flow_definition琛ㄧ殑id"},"flowName":{"type":"string","description":"娴佺▼瀹氫箟鍚嶇О"},"instanceId":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥琛╥d"},"taskId":{"type":"integer","format":"int64","description":"浠诲姟琛╥d"},"cooperateType":{"type":"integer","format":"int32","description":"鍗忎綔鏂瑰紡(1瀹℃壒 2杞姙 3濮旀淳 4浼氱 5绁ㄧ 6鍔犵 7鍑忕)"},"cooperateTypeName":{"type":"string","description":"鍗忎綔鏂瑰紡(1瀹℃壒 2杞姙 3濮旀淳 4浼氱 5绁ㄧ 6鍔犵 7鍑忕)"},"businessId":{"type":"string","description":"涓氬姟id"},"nodeCode":{"type":"string","description":"寮€濮嬭妭鐐圭紪鐮?},"nodeName":{"type":"string","description":"寮€濮嬭妭鐐瑰悕绉?},"nodeType":{"type":"integer","format":"int32","description":"寮€濮嬭妭鐐圭被鍨嬶紙0寮€濮嬭妭鐐?1涓棿鑺傜偣 2缁撴潫鑺傜偣 3浜掓枼缃戝叧 4骞惰缃戝叧锛?},"targetNodeCode":{"type":"string","description":"鐩爣鑺傜偣缂栫爜"},"targetNodeName":{"type":"string","description":"缁撴潫鑺傜偣鍚嶇О"},"approver":{"type":"string","description":"瀹℃壒鑰?},"approverName":{"type":"string","description":"瀹℃壒鑰?},"collaborator":{"type":"string","description":"鍗忎綔浜?鍙湁杞姙銆佷細绛俱€佺エ绛俱€佸娲?"},"permissionList":{"type":"array","description":"鏉冮檺鏍囪瘑 permissionFlag鐨刲ist褰㈠紡","items":{"type":"string"}},"skipType":{"type":"string","description":"璺宠浆绫诲瀷锛圥ASS閫氳繃 REJECT閫€鍥?NONE鏃犲姩浣滐級"},"flowStatus":{"type":"string","description":"娴佺▼鐘舵€?},"flowTaskStatus":{"type":"string","description":"浠诲姟鐘舵€?},"flowStatusName":{"type":"string","description":"娴佺▼鐘舵€?},"message":{"type":"string","description":"瀹℃壒鎰忚"},"ext":{"type":"string","description":"涓氬姟璇︽儏 瀛樹笟鍔$被鐨刯son"},"createBy":{"type":"string","description":"鍒涘缓鑰?},"createByName":{"type":"string","description":"鐢宠浜?},"category":{"type":"string","description":"娴佺▼鍒嗙被id"},"categoryName":{"type":"string","description":"娴佺▼鍒嗙被鍚嶇О"},"formCustom":{"type":"string","description":"瀹℃壒琛ㄥ崟鏄惁鑷畾涔夛紙Y鏄?N鍚︼級"},"formPath":{"type":"string","description":"瀹℃壒琛ㄥ崟璺緞"},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜"},"version":{"type":"string","description":"娴佺▼鐗堟湰鍙?},"runDuration":{"type":"string","description":"杩愯鏃堕暱"},"businessCode":{"type":"string","description":"涓氬姟缂栫爜"},"businessTitle":{"type":"string","description":"涓氬姟鏍囬"}}},"PageResultFlowHisTaskVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/FlowHisTaskVo"}}}},"RPageResultFlowHisTaskVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultFlowHisTaskVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RFlowTaskVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/FlowTaskVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RListNode":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/Node"}}}},"RListUserDTO":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/UserDTO"}}}},"UserDTO":{"type":"object","description":"鐢ㄦ埛","properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿"},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"},"userType":{"type":"string","description":"鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛?},"email":{"type":"string","description":"鐢ㄦ埛閭"},"phoneNumber":{"type":"string","description":"鎵嬫満鍙风爜"},"gender":{"type":"string","description":"鐢ㄦ埛鎬у埆锛?鐢?1濂?2鏈煡锛?},"status":{"type":"string","description":"璐﹀彿鐘舵€侊紙0姝e父 1鍋滅敤锛?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"FlowSpelVo":{"type":"object","description":"娴佺▼spel琛ㄨ揪寮忓畾涔夎鍥惧璞?flow_spel","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭id"},"componentName":{"type":"string","description":"缁勪欢鍚嶇О"},"methodName":{"type":"string","description":"鏂规硶鍚?},"methodParams":{"type":"string","description":"鍙傛暟"},"viewSpel":{"type":"string","description":"棰勮spel鍊?},"status":{"type":"string","description":"鐘舵€侊紙0姝e父 1鍋滅敤锛?},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RFlowSpelVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/FlowSpelVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"PageResultFlowSpelVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/FlowSpelVo"}}}},"RPageResultFlowSpelVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultFlowSpelVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"PageResultTestLeaveVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/TestLeaveVo"}}}},"RPageResultTestLeaveVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultTestLeaveVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"FlowInstanceBo":{"type":"object","description":"娴佺▼瀹炰緥鏌ヨ鏉′欢瀵硅薄銆?,"properties":{"flowName":{"type":"string","description":"娴佺▼瀹氫箟鍚嶇О"},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜"},"startUserId":{"type":"string","description":"浠诲姟鍙戣捣浜?},"businessId":{"type":"string","description":"涓氬姟id"},"category":{"type":"string","description":"娴佺▼鍒嗙被id"},"nodeName":{"type":"string","description":"浠诲姟鍚嶇О"},"createByIds":{"type":"array","description":"鐢宠浜篒ds","items":{"type":"string"}}}},"FlowInstanceVo":{"type":"object","description":"娴佺▼瀹炰緥瑙嗗浘瀵硅薄銆?,"properties":{"id":{"type":"integer","format":"int64","description":"娴佺▼瀹炰緥ID銆?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"delFlag":{"type":"string","description":"鍒犻櫎鏍囪"},"definitionId":{"type":"integer","format":"int64","description":"瀵瑰簲flow_definition琛ㄧ殑id"},"flowName":{"type":"string","description":"娴佺▼瀹氫箟鍚嶇О"},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜"},"businessId":{"type":"string","description":"涓氬姟id"},"nodeType":{"type":"integer","format":"int32","description":"鑺傜偣绫诲瀷锛?寮€濮嬭妭鐐?1涓棿鑺傜偣 2缁撴潫鑺傜偣 3浜掓枼缃戝叧 4骞惰缃戝叧锛?},"nodeCode":{"type":"string","description":"娴佺▼鑺傜偣缂栫爜 姣忎釜娴佺▼鐨刵odeCode鏄敮涓€鐨?鍗砫efinitionId+nodeCode鍞竴,鍦ㄦ暟鎹簱灞傞潰鍋氫簡鎺у埗"},"nodeName":{"type":"string","description":"娴佺▼鑺傜偣鍚嶇О"},"variable":{"type":"string","description":"娴佺▼鍙橀噺"},"flowStatus":{"type":"string","description":"娴佺▼鐘舵€?},"flowStatusName":{"type":"string","description":"娴佺▼鐘舵€?},"activityStatus":{"type":"integer","format":"int32","description":"娴佺▼婵€娲荤姸鎬侊紙0鎸傝捣 1婵€娲伙級"},"formCustom":{"type":"string","description":"瀹℃壒琛ㄥ崟鏄惁鑷畾涔夛紙Y鏄?N鍚︼級"},"formPath":{"type":"string","description":"瀹℃壒琛ㄥ崟璺緞"},"ext":{"type":"string","description":"鎵╁睍瀛楁锛岄鐣欑粰涓氬姟绯荤粺浣跨敤"},"version":{"type":"string","description":"娴佺▼瀹氫箟鐗堟湰"},"createBy":{"type":"string","description":"鍒涘缓鑰?},"createByName":{"type":"string","description":"鐢宠浜?},"category":{"type":"string","description":"娴佺▼鍒嗙被id"},"categoryName":{"type":"string","description":"娴佺▼鍒嗙被鍚嶇О"},"businessCode":{"type":"string","description":"涓氬姟缂栫爜"},"businessTitle":{"type":"string","description":"涓氬姟鏍囬"}}},"PageResultFlowInstanceVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/FlowInstanceVo"}}}},"RPageResultFlowInstanceVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultFlowInstanceVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RMapStringObject":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"object","additionalProperties":{},"description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RFlowInstanceVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/FlowInstanceVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"Definition":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"version":{"type":"string"},"tenantId":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"modelValue":{"type":"string"},"userList":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"nodeList":{"type":"array","items":{"$ref":"#/components/schemas/Node"}},"listenerPath":{"type":"string"},"activityStatus":{"type":"integer","format":"int32"},"listenerType":{"type":"string"},"updateBy":{"type":"string"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"category":{"type":"string"},"flowName":{"type":"string"},"flowCode":{"type":"string"},"updateTime":{"type":"string","format":"date-time"},"formCustom":{"type":"string"},"formPath":{"type":"string"}}},"RDefinition":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/Definition","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"FlowDefinitionVo":{"type":"object","description":"娴佺▼瀹氫箟瑙嗗浘","properties":{"id":{"type":"integer","format":"int64","description":"娴佺▼瀹氫箟涓婚敭"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"delFlag":{"type":"string","description":"鍒犻櫎鏍囪"},"flowCode":{"type":"string","description":"娴佺▼瀹氫箟缂栫爜"},"flowName":{"type":"string","description":"娴佺▼瀹氫箟鍚嶇О"},"category":{"type":"string","description":"娴佺▼鍒嗙被id"},"categoryName":{"type":"string","description":"娴佺▼鍒嗙被鍚嶇О"},"version":{"type":"string","description":"娴佺▼鐗堟湰"},"isPublish":{"type":"integer","format":"int32","description":"鏄惁鍙戝竷锛?鏈彂甯?1宸插彂甯?9澶辨晥锛?},"formCustom":{"type":"string","description":"瀹℃壒琛ㄥ崟鏄惁鑷畾涔夛紙Y鏄?N鍚︼級"},"formPath":{"type":"string","description":"瀹℃壒琛ㄥ崟璺緞"},"activityStatus":{"type":"integer","format":"int32","description":"娴佺▼婵€娲荤姸鎬侊紙0鎸傝捣 1婵€娲伙級"},"listenerType":{"type":"string","description":"鐩戝惉鍣ㄧ被鍨?},"listenerPath":{"type":"string","description":"鐩戝惉鍣ㄨ矾寰?},"ext":{"type":"string","description":"鎵╁睍瀛楁锛岄鐣欑粰涓氬姟绯荤粺浣跨敤"}}},"PageResultFlowDefinitionVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/FlowDefinitionVo"}}}},"RPageResultFlowDefinitionVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultFlowDefinitionVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"FlowCategoryVo":{"type":"object","description":"娴佺▼鍒嗙被瑙嗗浘瀵硅薄 wf_category","properties":{"categoryId":{"type":"integer","format":"int64","description":"娴佺▼鍒嗙被ID"},"parentId":{"type":"integer","format":"int64","description":"鐖剁骇鍒嗙被id"},"parentName":{"type":"string","description":"鐖剁骇鍒嗙被鍚嶇О"},"ancestors":{"type":"string","description":"绁栫骇鍒楄〃"},"categoryName":{"type":"string","description":"娴佺▼鍒嗙被鍚嶇О"},"orderNum":{"type":"integer","format":"int64","description":"鏄剧ず椤哄簭"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RFlowCategoryVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/FlowCategoryVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RListFlowCategoryVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/FlowCategoryVo"}}}},"RListTreeString":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/TreeString"}}}},"TreeNodeConfig":{"type":"object","properties":{"idKey":{"type":"string"},"parentIdKey":{"type":"string"},"weightKey":{"type":"string"},"nameKey":{"type":"string"},"childrenKey":{"type":"string"},"deep":{"type":"integer","format":"int32"}}},"TreeString":{"type":"object","additionalProperties":{},"properties":{"name":{"type":"object","properties":{"empty":{"type":"boolean"}}},"id":{"type":"string"},"weight":{},"parentId":{"type":"string"},"config":{"$ref":"#/components/schemas/TreeNodeConfig"},"empty":{"type":"boolean"}}},"ApiResultDefJson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/DefJson"}}},"ApiResultListForm":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Form"}}}},"ApiResultListNodeExt":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/NodeExt"}}}},"ChildNode":{"type":"object","properties":{"code":{"type":"string"},"desc":{"type":"string"},"label":{"type":"string"},"type":{"type":"integer","format":"int32"},"must":{"type":"boolean"},"multiple":{"type":"boolean"},"precision":{"type":"integer","format":"int32"},"step":{"type":"string"},"min":{"type":"string"},"dateType":{"type":"string"},"dateFormat":{"type":"string"},"dict":{"type":"array","items":{"$ref":"#/components/schemas/DictItem"}}}},"DictItem":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"selected":{"type":"boolean"}}},"NodeExt":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"desc":{"type":"string"},"type":{"type":"integer","format":"int32"},"childs":{"type":"array","items":{"$ref":"#/components/schemas/ChildNode"}}}},"ApiResultListListenerVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ListenerVo"}}}},"ListenerVo":{"type":"object","properties":{"type":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}}},"ApiResultListString":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"type":"string"}}}},"HandlerQuery":{"type":"object","properties":{"handlerCode":{"type":"string"},"handlerName":{"type":"string"},"handlerType":{"type":"string"},"groupId":{"type":"string"},"pageNum":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"beginTime":{"type":"string"},"endTime":{"type":"string"}}},"ApiResultHandlerSelectVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/HandlerSelectVo"}}},"FlowPageHandlerAuth":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/HandlerAuth"}},"code":{"type":"integer","format":"int32"},"msg":{"type":"string"}}},"HandlerAuth":{"type":"object","properties":{"storageId":{"type":"string"},"handlerCode":{"type":"string"},"handlerName":{"type":"string"},"groupName":{"type":"string"},"createTime":{"type":"string"}}},"HandlerSelectVo":{"type":"object","properties":{"handlerAuths":{"$ref":"#/components/schemas/FlowPageHandlerAuth"},"treeSelections":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}}}},"HandlerFeedBackDto":{"type":"object","properties":{"storageIds":{"type":"array","items":{"type":"string"}}}},"ApiResultListHandlerFeedBackVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/HandlerFeedBackVo"}}}},"HandlerFeedBackVo":{"type":"object","properties":{"storageId":{"type":"string"},"handlerName":{"type":"string"}}},"ApiResultListDict":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Dict"}}}},"Dict":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"childList":{"type":"array","items":{"$ref":"#/components/schemas/Dict"}}}},"ApiResultString":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"string"}}},"ApiResultFlowDto":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/FlowDto"}}},"ApiResultWarmFlowVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/WarmFlowVo"}}},"WarmFlowVo":{"type":"object","properties":{"tokenNameList":{"type":"array","items":{"type":"string"}},"framework":{"type":"string"}}},"ProfileUserVo":{"type":"object","description":"鐢ㄦ埛淇℃伅瑙嗗浘瀵硅薄 sys_user","properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿"},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"},"userType":{"type":"string","description":"鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛?},"email":{"type":"string","description":"鐢ㄦ埛閭"},"phoneNumber":{"type":"string","description":"鎵嬫満鍙风爜"},"gender":{"type":"string","description":"鐢ㄦ埛鎬у埆锛?鐢?1濂?2鏈煡锛?},"avatar":{"type":"integer","format":"int64","description":"澶村儚 OSS ID"},"avatarUrl":{"type":"string","description":"澶村儚鍦板潃"},"loginIp":{"type":"string","description":"鏈€鍚庣櫥褰旾P"},"loginDate":{"type":"string","format":"date-time","description":"鏈€鍚庣櫥褰曟椂闂?},"deptName":{"type":"string","description":"閮ㄩ棬鍚?}}},"ProfileVo":{"type":"object","description":"鐢ㄦ埛涓汉淇℃伅","properties":{"user":{"$ref":"#/components/schemas/ProfileUserVo","description":"鐢ㄦ埛淇℃伅"},"roleGroup":{"type":"string","description":"鐢ㄦ埛鎵€灞炶鑹茬粍"},"postGroup":{"type":"string","description":"鐢ㄦ埛鎵€灞炲矖浣嶇粍"}}},"RProfileVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/ProfileVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RListSysUserVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysUserVo"}}}},"SysRoleVo":{"type":"object","description":"瑙掕壊淇℃伅瑙嗗浘瀵硅薄 sys_role","properties":{"roleId":{"type":"integer","format":"int64","description":"瑙掕壊ID"},"roleName":{"type":"string","description":"瑙掕壊鍚嶇О"},"roleKey":{"type":"string","description":"瑙掕壊鏉冮檺瀛楃涓?},"roleSort":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"dataScope":{"type":"string","description":"鏁版嵁鑼冨洿锛?锛氬叏閮ㄦ暟鎹潈闄?2锛氳嚜瀹氭暟鎹潈闄?3锛氭湰閮ㄩ棬鏁版嵁鏉冮檺 4锛氭湰閮ㄩ棬鍙婁互涓嬫暟鎹潈闄?5锛氫粎鏈汉鏁版嵁鏉冮檺 6锛氶儴闂ㄥ強浠ヤ笅鎴栨湰浜烘暟鎹潈闄愶級"},"menuCheckStrictly":{"type":"boolean","description":"鑿滃崟鏍戦€夋嫨椤规槸鍚﹀叧鑱旀樉绀?},"deptCheckStrictly":{"type":"boolean","description":"閮ㄩ棬鏍戦€夋嫨椤规槸鍚﹀叧鑱旀樉绀?},"status":{"type":"string","description":"瑙掕壊鐘舵€侊紙0姝e父 1鍋滅敤锛?},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"flag":{"type":"boolean","description":"鐢ㄦ埛鏄惁瀛樺湪姝よ鑹叉爣璇?榛樿涓嶅瓨鍦?},"superAdmin":{"type":"boolean","description":"鍒ゆ柇褰撳墠瑙掕壊鏄惁涓鸿秴绾х鐞嗗憳瑙掕壊銆?}}},"SysUserVo":{"type":"object","description":"鐢ㄦ埛淇℃伅瑙嗗浘瀵硅薄 sys_user","properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿"},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"},"userType":{"type":"string","description":"鐢ㄦ埛绫诲瀷锛坰ys_user绯荤粺鐢ㄦ埛锛?},"email":{"type":"string","description":"鐢ㄦ埛閭"},"phoneNumber":{"type":"string","description":"鎵嬫満鍙风爜"},"gender":{"type":"string","description":"鐢ㄦ埛鎬у埆锛?鐢?1濂?2鏈煡锛?},"avatar":{"type":"integer","format":"int64","description":"澶村儚 OSS ID"},"avatarUrl":{"type":"string","description":"澶村儚鍦板潃"},"status":{"type":"string","description":"璐﹀彿鐘舵€侊紙0姝e父 1鍋滅敤锛?},"loginIp":{"type":"string","description":"鏈€鍚庣櫥褰旾P"},"loginDate":{"type":"string","format":"date-time","description":"鏈€鍚庣櫥褰曟椂闂?},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"deptName":{"type":"string","description":"閮ㄩ棬鍚?},"roles":{"type":"array","description":"瑙掕壊瀵硅薄","items":{"$ref":"#/components/schemas/SysRoleVo"}},"roleIds":{"type":"array","description":"瑙掕壊缁?,"items":{"type":"integer","format":"int64"}},"postIds":{"type":"array","description":"宀椾綅缁?,"items":{"type":"integer","format":"int64"}},"roleId":{"type":"integer","format":"int64","description":"鏁版嵁鏉冮檺 褰撳墠瑙掕壊ID"}}},"PageResultSysUserVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysUserVo"}}}},"RPageResultSysUserVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysUserVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RUserInfoVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/UserInfoVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"UserInfoVo":{"type":"object","description":"鐧诲綍鐢ㄦ埛淇℃伅","properties":{"user":{"$ref":"#/components/schemas/SysUserVo","description":"鐢ㄦ埛鍩烘湰淇℃伅"},"permissions":{"type":"array","description":"鑿滃崟鏉冮檺","items":{"type":"string"},"uniqueItems":true},"roles":{"type":"array","description":"瑙掕壊鏉冮檺","items":{"type":"string"},"uniqueItems":true}}},"RSysUserInfoVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysUserInfoVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysPostVo":{"type":"object","description":"宀椾綅淇℃伅瑙嗗浘瀵硅薄 sys_post","properties":{"postId":{"type":"integer","format":"int64","description":"宀椾綅ID"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"postCode":{"type":"string","description":"宀椾綅缂栫爜"},"postName":{"type":"string","description":"宀椾綅鍚嶇О"},"postCategory":{"type":"string","description":"宀椾綅绫诲埆缂栫爜"},"postSort":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"status":{"type":"string","description":"鐘舵€侊紙0姝e父 1鍋滅敤锛?},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"deptName":{"type":"string","description":"閮ㄩ棬鍚?}}},"SysUserInfoVo":{"type":"object","description":"鐢ㄦ埛淇℃伅","properties":{"user":{"$ref":"#/components/schemas/SysUserVo","description":"鐢ㄦ埛淇℃伅"},"roleIds":{"type":"array","description":"瑙掕壊ID鍒楄〃","items":{"type":"integer","format":"int64"}},"roles":{"type":"array","description":"瑙掕壊鍒楄〃","items":{"$ref":"#/components/schemas/SysRoleVo"}},"postIds":{"type":"array","description":"宀椾綅ID鍒楄〃","items":{"type":"integer","format":"int64"}},"posts":{"type":"array","description":"宀椾綅鍒楄〃","items":{"$ref":"#/components/schemas/SysPostVo"}}}},"RListSysSocialVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysSocialVo"}}}},"SysSocialVo":{"type":"object","description":"绀句細鍖栧叧绯昏鍥惧璞?sys_social","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"authId":{"type":"string","description":"鐨勫敮涓€ID"},"source":{"type":"string","description":"鐢ㄦ埛鏉ユ簮"},"accessToken":{"type":"string","description":"鐢ㄦ埛鐨勬巿鏉冧护鐗?},"expireIn":{"type":"integer","format":"int32","description":"鐢ㄦ埛鐨勬巿鏉冧护鐗岀殑鏈夋晥鏈燂紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"refreshToken":{"type":"string","description":"鍒锋柊浠ょ墝锛岄儴鍒嗗钩鍙板彲鑳芥病鏈?},"openId":{"type":"string","description":"鐢ㄦ埛鐨?open id"},"userName":{"type":"string","description":"鎺堟潈鐨勭涓夋柟璐﹀彿"},"nickName":{"type":"string","description":"鎺堟潈鐨勭涓夋柟鏄电О"},"email":{"type":"string","description":"鎺堟潈鐨勭涓夋柟閭"},"avatar":{"type":"string","description":"鎺堟潈鐨勭涓夋柟澶村儚鍦板潃"},"accessCode":{"type":"string","description":"骞冲彴鐨勬巿鏉冧俊鎭紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"unionId":{"type":"string","description":"鐢ㄦ埛鐨?unionid"},"scope":{"type":"string","description":"鎺堜簣鐨勬潈闄愶紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"tokenType":{"type":"string","description":"涓埆骞冲彴鐨勬巿鏉冧俊鎭紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"idToken":{"type":"string","description":"id token锛岄儴鍒嗗钩鍙板彲鑳芥病鏈?},"macAlgorithm":{"type":"string","description":"灏忕背骞冲彴鐢ㄦ埛鐨勯檮甯﹀睘鎬э紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"macKey":{"type":"string","description":"灏忕背骞冲彴鐢ㄦ埛鐨勯檮甯﹀睘鎬э紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"code":{"type":"string","description":"鐢ㄦ埛鐨勬巿鏉僣ode锛岄儴鍒嗗钩鍙板彲鑳芥病鏈?},"oauthToken":{"type":"string","description":"Twitter骞冲彴鐢ㄦ埛鐨勯檮甯﹀睘鎬э紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"oauthTokenSecret":{"type":"string","description":"Twitter骞冲彴鐢ㄦ埛鐨勯檮甯﹀睘鎬э紝閮ㄥ垎骞冲彴鍙兘娌℃湁"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RSysRoleVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysRoleVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RListSysRoleVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysRoleVo"}}}},"PageResultSysRoleVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysRoleVo"}}}},"RPageResultSysRoleVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysRoleVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"DeptTreeSelectVo":{"type":"object","description":"瑙掕壊閮ㄩ棬鍒楄〃鏍戜俊鎭?,"properties":{"checkedKeys":{"type":"array","description":"閫変腑閮ㄩ棬鍒楄〃","items":{"type":"integer","format":"int64"}},"depts":{"type":"array","description":"涓嬫媺鏍戠粨鏋勫垪琛?,"items":{"$ref":"#/components/schemas/TreeString"}}}},"RDeptTreeSelectVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/DeptTreeSelectVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysPostVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysPostVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RListSysPostVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysPostVo"}}}},"PageResultSysPostVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysPostVo"}}}},"RPageResultSysPostVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysPostVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysNoticeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysNoticeVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysNoticeVo":{"type":"object","description":"閫氱煡鍏憡瑙嗗浘瀵硅薄 sys_notice","properties":{"noticeId":{"type":"integer","format":"int64","description":"鍏憡ID"},"noticeTitle":{"type":"string","description":"鍏憡鏍囬"},"noticeType":{"type":"string","description":"鍏憡绫诲瀷锛?閫氱煡 2鍏憡锛?},"noticeContent":{"type":"string","description":"鍏憡鍐呭"},"status":{"type":"string","description":"鍏憡鐘舵€侊紙0姝e父 1鍏抽棴锛?},"remark":{"type":"string","description":"澶囨敞"},"createBy":{"type":"integer","format":"int64","description":"鍒涘缓鑰?},"createByName":{"type":"string","description":"鍒涘缓浜哄悕绉?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"PageResultSysNoticeVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysNoticeVo"}}}},"RPageResultSysNoticeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysNoticeVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysMenuVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysMenuVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysMenuVo":{"type":"object","description":"鑿滃崟鏉冮檺瑙嗗浘瀵硅薄 sys_menu","properties":{"menuId":{"type":"integer","format":"int64","description":"鑿滃崟ID"},"menuName":{"type":"string","description":"鑿滃崟鍚嶇О"},"parentId":{"type":"integer","format":"int64","description":"鐖惰彍鍗旾D"},"orderNum":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"path":{"type":"string","description":"璺敱鍦板潃"},"component":{"type":"string","description":"缁勪欢璺緞"},"queryParam":{"type":"string","description":"璺敱鍙傛暟"},"isFrame":{"type":"string","description":"鏄惁涓哄閾撅紙Y鏄?N鍚︼級"},"isCache":{"type":"string","description":"鏄惁缂撳瓨锛圷缂撳瓨 N涓嶇紦瀛橈級"},"menuType":{"type":"string","description":"鑿滃崟绫诲瀷锛圡鐩綍 C鑿滃崟 F鎸夐挳锛?},"visible":{"type":"string","description":"鏄剧ず鐘舵€侊紙0鏄剧ず 1闅愯棌锛?},"status":{"type":"string","description":"鑿滃崟鐘舵€侊紙0姝e父 1鍋滅敤锛?},"perms":{"type":"string","description":"鏉冮檺鏍囪瘑"},"icon":{"type":"string","description":"鑿滃崟鍥炬爣"},"activeMenu":{"type":"string","description":"婵€娲昏彍鍗曡矾寰?},"ext":{"type":"string","description":"鎵╁睍瀛楁"},"createDept":{"type":"integer","format":"int64","description":"鍒涘缓閮ㄩ棬"},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"children":{"type":"array","description":"瀛愯彍鍗?,"items":{"$ref":"#/components/schemas/SysMenuVo"}}}},"MenuTreeSelectVo":{"type":"object","description":"瑙掕壊鑿滃崟鍒楄〃鏍戜俊鎭?,"properties":{"checkedKeys":{"type":"array","description":"閫変腑鑿滃崟鍒楄〃","items":{"type":"integer","format":"int64"}},"menus":{"type":"array","description":"鑿滃崟涓嬫媺鏍戠粨鏋勫垪琛?,"items":{"$ref":"#/components/schemas/TreeString"}}}},"RMenuTreeSelectVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/MenuTreeSelectVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RListSysMenuVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysMenuVo"}}}},"MetaVo":{"type":"object","description":"璺敱鏄剧ず淇℃伅","properties":{"title":{"type":"string","description":"璁剧疆璇ヨ矾鐢卞湪渚ц竟鏍忓拰闈㈠寘灞戜腑灞曠ず鐨勫悕瀛?},"icon":{"type":"string","description":"璁剧疆璇ヨ矾鐢辩殑鍥炬爣锛屽搴旇矾寰剆rc/assets/icons/svg"},"noCache":{"type":"boolean","description":"璁剧疆涓簍rue锛屽垯涓嶄細琚?缂撳瓨"},"link":{"type":"string","description":"鍐呴摼鍦板潃锛坔ttp(s)://寮€澶达級"},"activeMenu":{"type":"string","description":"婵€娲昏彍鍗?}}},"RListRouterVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/RouterVo"}}}},"RouterVo":{"type":"object","description":"璺敱閰嶇疆淇℃伅","properties":{"name":{"type":"string","description":"璺敱鍚嶅瓧"},"path":{"type":"string","description":"璺敱鍦板潃"},"hidden":{"type":"boolean","description":"鏄惁闅愯棌璺敱锛屽綋璁剧疆 true 鐨勬椂鍊欒璺敱涓嶄細鍐嶄晶杈规爮鍑虹幇"},"redirect":{"type":"string","description":"閲嶅畾鍚戝湴鍧€锛屽綋璁剧疆 noRedirect 鐨勬椂鍊欒璺敱鍦ㄩ潰鍖呭睉瀵艰埅涓笉鍙鐐瑰嚮"},"component":{"type":"string","description":"缁勪欢鍦板潃"},"query":{"type":"string","description":"璺敱鍙傛暟锛氬 {\"id\": 1, \"name\": \"ry\"}"},"ext":{"type":"string","description":"鎵╁睍瀛楁"},"alwaysShow":{"type":"boolean","description":"褰撲綘涓€涓矾鐢变笅闈㈢殑 children 澹版槑鐨勮矾鐢卞ぇ浜?涓椂锛岃嚜鍔ㄤ細鍙樻垚宓屽鐨勬ā寮?-濡傜粍浠堕〉闈?},"meta":{"$ref":"#/components/schemas/MetaVo","description":"鍏朵粬鍏冪礌"},"children":{"type":"array","description":"瀛愯矾鐢?,"items":{"$ref":"#/components/schemas/RouterVo"}}}},"RSysDictTypeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysDictTypeVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysDictTypeVo":{"type":"object","description":"瀛楀吀绫诲瀷瑙嗗浘瀵硅薄 sys_dict_type","properties":{"dictId":{"type":"integer","format":"int64","description":"瀛楀吀涓婚敭"},"dictName":{"type":"string","description":"瀛楀吀鍚嶇О"},"dictType":{"type":"string","description":"瀛楀吀绫诲瀷"},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RListSysDictTypeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysDictTypeVo"}}}},"PageResultSysDictTypeVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysDictTypeVo"}}}},"RPageResultSysDictTypeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysDictTypeVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysDictDataVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysDictDataVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysDictDataVo":{"type":"object","description":"瀛楀吀鏁版嵁瑙嗗浘瀵硅薄 sys_dict_data","properties":{"dictCode":{"type":"integer","format":"int64","description":"瀛楀吀缂栫爜"},"dictSort":{"type":"integer","format":"int32","description":"瀛楀吀鎺掑簭"},"dictLabel":{"type":"string","description":"瀛楀吀鏍囩"},"dictValue":{"type":"string","description":"瀛楀吀閿€?},"dictType":{"type":"string","description":"瀛楀吀绫诲瀷"},"cssClass":{"type":"string","description":"鏍峰紡灞炴€э紙鍏朵粬鏍峰紡鎵╁睍锛?},"listClass":{"type":"string","description":"琛ㄦ牸鍥炴樉鏍峰紡"},"isDefault":{"type":"string","description":"鏄惁榛樿锛圷鏄?N鍚︼級"},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RListSysDictDataVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysDictDataVo"}}}},"PageResultSysDictDataVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysDictDataVo"}}}},"RPageResultSysDictDataVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysDictDataVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysDeptVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysDeptVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysDeptVo":{"type":"object","description":"閮ㄩ棬瑙嗗浘瀵硅薄 sys_dept","properties":{"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"parentId":{"type":"integer","format":"int64","description":"鐖堕儴闂╥d"},"parentName":{"type":"string","description":"鐖堕儴闂ㄥ悕绉?},"ancestors":{"type":"string","description":"绁栫骇鍒楄〃"},"deptName":{"type":"string","description":"閮ㄩ棬鍚嶇О"},"deptCategory":{"type":"string","description":"閮ㄩ棬绫诲埆缂栫爜"},"orderNum":{"type":"integer","format":"int32","description":"鏄剧ず椤哄簭"},"leader":{"type":"integer","format":"int64","description":"璐熻矗浜篒D"},"leaderName":{"type":"string","description":"璐熻矗浜?},"phone":{"type":"string","description":"鑱旂郴鐢佃瘽"},"email":{"type":"string","description":"閭"},"status":{"type":"string","description":"閮ㄩ棬鐘舵€侊紙0姝e父 1鍋滅敤锛?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"children":{"type":"array","description":"瀛愰儴闂?,"items":{"$ref":"#/components/schemas/SysDeptVo"}}}},"RListSysDeptVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysDeptVo"}}}},"RSysConfigVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysConfigVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysConfigVo":{"type":"object","description":"鍙傛暟閰嶇疆瑙嗗浘瀵硅薄 sys_config","properties":{"configId":{"type":"integer","format":"int64","description":"鍙傛暟涓婚敭"},"configName":{"type":"string","description":"鍙傛暟鍚嶇О"},"configKey":{"type":"string","description":"鍙傛暟閿悕"},"configValue":{"type":"string","description":"鍙傛暟閿€?},"configType":{"type":"string","description":"绯荤粺鍐呯疆锛圷鏄?N鍚︼級"},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"PageResultSysConfigVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysConfigVo"}}}},"RPageResultSysConfigVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysConfigVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RSysClientVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysClientVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysClientVo":{"type":"object","description":"鎺堟潈绠$悊瑙嗗浘瀵硅薄 sys_client","properties":{"id":{"type":"integer","format":"int64","description":"id"},"clientId":{"type":"string","description":"瀹㈡埛绔痠d"},"clientKey":{"type":"string","description":"瀹㈡埛绔痥ey"},"clientSecret":{"type":"string","description":"瀹㈡埛绔閽?},"grantTypeList":{"type":"array","description":"鎺堟潈绫诲瀷","items":{"type":"string"}},"grantType":{"type":"string","description":"鎺堟潈绫诲瀷"},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"accessPath":{"type":"string","description":"鍏佽璁块棶璺緞"},"accessPathList":{"type":"array","description":"鍏佽璁块棶璺緞鍒楄〃","items":{"type":"string"}},"ipWhitelist":{"type":"string","description":"IP鐧藉悕鍗?},"ipWhitelistList":{"type":"array","description":"IP鐧藉悕鍗曞垪琛?,"items":{"type":"string"}},"activeTimeout":{"type":"integer","format":"int64","description":"token娲昏穬瓒呮椂鏃堕棿"},"timeout":{"type":"integer","format":"int64","description":"token鍥哄畾瓒呮椂鏃堕棿"},"status":{"type":"string","description":"鐘舵€侊紙0姝e父 1鍋滅敤锛?}}},"PageResultSysClientVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysClientVo"}}}},"RPageResultSysClientVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysClientVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysOssBo":{"type":"object","description":"OSS瀵硅薄瀛樺偍鍒嗛〉鏌ヨ瀵硅薄 sys_oss","properties":{"ossId":{"type":"integer","format":"int64","description":"ossId"},"fileName":{"type":"string","description":"鏂囦欢鍚?},"originalName":{"type":"string","description":"鍘熷悕"},"fileSuffix":{"type":"string","description":"鏂囦欢鍚庣紑鍚?},"url":{"type":"string","description":"URL鍦板潃"},"ext1":{"type":"string","description":"鎵╁睍瀛楁"},"service":{"type":"string","description":"鏈嶅姟鍟?},"createBy":{"type":"integer","format":"int64","description":"鍒涘缓鑰?},"params":{"type":"object","additionalProperties":{},"description":"璇锋眰鍙傛暟"}}},"PageResultSysOssVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysOssVo"}}}},"RPageResultSysOssVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysOssVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysOssVo":{"type":"object","description":"OSS瀵硅薄瀛樺偍瑙嗗浘瀵硅薄 sys_oss","properties":{"ossId":{"type":"integer","format":"int64","description":"瀵硅薄瀛樺偍涓婚敭"},"fileName":{"type":"string","description":"鏂囦欢鍚?},"originalName":{"type":"string","description":"鍘熷悕"},"fileSuffix":{"type":"string","description":"鏂囦欢鍚庣紑鍚?},"url":{"type":"string","description":"URL鍦板潃"},"ext1":{"type":"string","description":"鎵╁睍瀛楁"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"createBy":{"type":"integer","format":"int64","description":"涓婁紶浜?},"createByName":{"type":"string","description":"涓婁紶浜哄悕绉?},"service":{"type":"string","description":"鏈嶅姟鍟?}}},"RListSysOssVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/SysOssVo"}}}},"RSysOssConfigVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysOssConfigVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysOssConfigVo":{"type":"object","description":"瀵硅薄瀛樺偍閰嶇疆瑙嗗浘瀵硅薄 sys_oss_config","properties":{"ossConfigId":{"type":"integer","format":"int64","description":"涓婚敭"},"configKey":{"type":"string","description":"閰嶇疆key"},"accessKey":{"type":"string","description":"accessKey"},"secretKey":{"type":"string","description":"绉橀挜"},"bucketName":{"type":"string","description":"妗跺悕绉?},"prefix":{"type":"string","description":"鍓嶇紑"},"endpoint":{"type":"string","description":"璁块棶绔欑偣"},"domainUrl":{"type":"string","description":"鑷畾涔夊煙鍚?},"isHttps":{"type":"string","description":"鏄惁https锛圷=鏄?N=鍚︼級"},"region":{"type":"string","description":"鍩?},"status":{"type":"string","description":"鏄惁榛樿锛圷=鏄?N=鍚︼級"},"ext1":{"type":"string","description":"鎵╁睍瀛楁"},"remark":{"type":"string","description":"澶囨敞"},"accessPolicy":{"type":"string","description":"妗舵潈闄愮被鍨?0private 1public 2custom)"}}},"PageResultSysOssConfigVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysOssConfigVo"}}}},"RPageResultSysOssConfigVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysOssConfigVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SseEmitter":{"type":"object","properties":{"timeout":{"type":"integer","format":"int64"}}},"RSysMessageBoxVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/SysMessageBoxVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysMessageBoxVo":{"type":"object","description":"娑堟伅鐩掑瓙瑙嗗浘瀵硅薄","properties":{"systemList":{"type":"array","description":"绯荤粺娑堟伅","items":{"$ref":"#/components/schemas/SysMessageVo"}},"noticeList":{"type":"array","description":"閫氱煡鍏憡娑堟伅","items":{"$ref":"#/components/schemas/SysMessageVo"}},"workflowList":{"type":"array","description":"宸ヤ綔娴佹秷鎭?,"items":{"$ref":"#/components/schemas/SysMessageVo"}}}},"SysMessageVo":{"type":"object","description":"娑堟伅璁板綍瑙嗗浘瀵硅薄 sys_message","properties":{"messageId":{"type":"integer","format":"int64","description":"娑堟伅ID"},"category":{"type":"string","description":"娑堟伅鍒嗙粍"},"type":{"type":"string","description":"娑堟伅绫诲瀷"},"source":{"type":"string","description":"娑堟伅鏉ユ簮"},"title":{"type":"string","description":"鏍囬"},"message":{"type":"string","description":"鎽樿娑堟伅"},"content":{"type":"string","description":"璇︾粏鍐呭"},"data":{"description":"鎵╁睍鏁版嵁"},"path":{"type":"string","description":"鍓嶇璺宠浆璺緞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"PageResultSysOperLogVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysOperLogVo"}}}},"RPageResultSysOperLogVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysOperLogVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysOperLogVo":{"type":"object","description":"鎿嶄綔鏃ュ織璁板綍瑙嗗浘瀵硅薄 sys_oper_log","properties":{"operId":{"type":"integer","format":"int64","description":"鏃ュ織涓婚敭"},"title":{"type":"string","description":"妯″潡鏍囬"},"businessType":{"type":"integer","format":"int32","description":"涓氬姟绫诲瀷锛?鍏跺畠 1鏂板 2淇敼 3鍒犻櫎锛?},"businessTypes":{"type":"array","description":"涓氬姟绫诲瀷鏁扮粍","items":{"type":"integer","format":"int32"}},"method":{"type":"string","description":"鏂规硶鍚嶇О"},"requestMethod":{"type":"string","description":"璇锋眰鏂瑰紡"},"operatorType":{"type":"integer","format":"int32","description":"鎿嶄綔绫诲埆锛?鍏跺畠 1鍚庡彴鐢ㄦ埛 2鎵嬫満绔敤鎴凤級"},"operName":{"type":"string","description":"鎿嶄綔浜哄憳"},"userId":{"type":"integer","format":"int64","description":"鎿嶄綔鐢ㄦ埛ID"},"deptId":{"type":"integer","format":"int64","description":"鎿嶄綔閮ㄩ棬ID"},"deptName":{"type":"string","description":"閮ㄩ棬鍚嶇О"},"clientKey":{"type":"string","description":"瀹㈡埛绔?},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"browser":{"type":"string","description":"娴忚鍣ㄧ被鍨?},"os":{"type":"string","description":"鎿嶄綔绯荤粺"},"operUrl":{"type":"string","description":"璇锋眰URL"},"operIp":{"type":"string","description":"涓绘満鍦板潃"},"operLocation":{"type":"string","description":"鎿嶄綔鍦扮偣"},"operParam":{"type":"string","description":"璇锋眰鍙傛暟"},"jsonResult":{"type":"string","description":"杩斿洖鍙傛暟"},"status":{"type":"integer","format":"int32","description":"鎿嶄綔鐘舵€侊紙0姝e父 1寮傚父锛?},"errorMsg":{"type":"string","description":"閿欒娑堟伅"},"operTime":{"type":"string","format":"date-time","description":"鎿嶄綔鏃堕棿"},"costTime":{"type":"integer","format":"int64","description":"娑堣€楁椂闂?}}},"PageResultSysUserOnline":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysUserOnline"}}}},"RPageResultSysUserOnline":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysUserOnline","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysUserOnline":{"type":"object","description":"褰撳墠鍦ㄧ嚎浼氳瘽","properties":{"tokenId":{"type":"string","description":"浼氳瘽缂栧彿"},"deptName":{"type":"string","description":"閮ㄩ棬鍚嶇О"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿"},"clientKey":{"type":"string","description":"瀹㈡埛绔?},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"ipaddr":{"type":"string","description":"鐧诲綍IP鍦板潃"},"loginLocation":{"type":"string","description":"鐧诲綍鍦板潃"},"browser":{"type":"string","description":"娴忚鍣ㄧ被鍨?},"os":{"type":"string","description":"鎿嶄綔绯荤粺"},"loginTime":{"type":"integer","format":"int64","description":"鐧诲綍鏃堕棿"}}},"PageResultSysLoginInfoVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/SysLoginInfoVo"}}}},"RPageResultSysLoginInfoVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultSysLoginInfoVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"SysLoginInfoVo":{"type":"object","description":"绯荤粺璁块棶璁板綍瑙嗗浘瀵硅薄 sys_login_info","properties":{"infoId":{"type":"integer","format":"int64","description":"璁块棶ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿"},"clientKey":{"type":"string","description":"瀹㈡埛绔?},"deviceType":{"type":"string","description":"璁惧绫诲瀷"},"status":{"type":"string","description":"鐧诲綍鐘舵€侊紙0鎴愬姛 1澶辫触锛?},"ipaddr":{"type":"string","description":"鐧诲綍IP鍦板潃"},"loginLocation":{"type":"string","description":"鐧诲綍鍦扮偣"},"browser":{"type":"string","description":"娴忚鍣ㄧ被鍨?},"os":{"type":"string","description":"鎿嶄綔绯荤粺"},"msg":{"type":"string","description":"鎻愮ず娑堟伅"},"loginTime":{"type":"string","format":"date-time","description":"璁块棶鏃堕棿"}}},"CacheListInfoVo":{"type":"object","description":"缂撳瓨鐩戞帶鍒楄〃淇℃伅","properties":{"info":{"type":"object","additionalProperties":{"type":"string"},"description":"淇℃伅"},"dbSize":{"type":"integer","format":"int64","description":"鏁版嵁搴?},"commandStats":{"type":"array","description":"鍛戒护缁熻","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"RCacheListInfoVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/CacheListInfoVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"CzDeviceVo":{"type":"object","description":"鍚庡彴璁惧绠$悊瑙嗗浘瀵硅薄銆?,"properties":{"deviceId":{"type":"integer","format":"int64","description":"璁惧涓婚敭"},"deviceNo":{"type":"string","description":"璁惧缂栧彿"},"name":{"type":"string","description":"璁惧鍚嶇О"},"productId":{"type":"integer","format":"int64","description":"浜у搧妯℃澘"},"productName":{"type":"string","description":"浜у搧鍚嶇О"},"category":{"type":"string","description":"鍝佺被"},"model":{"type":"string","description":"鍨嬪彿"},"mac":{"type":"string","description":"MAC"},"sn":{"type":"string","description":"搴忓垪鍙?},"homeId":{"type":"integer","format":"int64","description":"瀹跺涵"},"homeName":{"type":"string","description":"瀹跺涵鍚嶇О"},"locationId":{"type":"integer","format":"int64","description":"鎴块棿"},"locationName":{"type":"string","description":"鎴块棿鍚嶇О"},"status":{"type":"string","description":"鐘舵€侊紙0鏈縺娲?1鍦ㄧ嚎 2绂荤嚎锛?},"statusName":{"type":"string","description":"鐘舵€佸悕绉?},"bindUserId":{"type":"integer","format":"int64","description":"缁戝畾鐢ㄦ埛"},"bindUserName":{"type":"string","description":"缁戝畾鐢ㄦ埛鏄电О"},"bindUserPhone":{"type":"string","description":"缁戝畾鐢ㄦ埛鎵嬫満鍙?},"bindTime":{"type":"string","format":"date-time","description":"缁戝畾鏃堕棿"},"purifier":{"type":"boolean","description":"鏄惁鏈夊噣鍖栧櫒杩愯鎬?},"runMode":{"type":"string","description":"杩愯妯″紡锛?鑷姩 1杞﹁浇 2妗岄潰锛?},"fanLevel":{"type":"string","description":"椋庨€熸。浣嶏紙0鏍囧噯 1寮哄姏 2浣庢。锛?},"airLevel":{"type":"string","description":"绌烘皵璐ㄩ噺锛?浼?1鑹?2宸?3姹℃煋锛?},"tvoc":{"type":"number","description":"TVOC 鍘熷鍊?},"powerMode":{"type":"string","description":"渚涚數妯″紡锛?USB 1鐢垫睜锛?},"charging":{"type":"string","description":"鍏呯數锛?鍚?1鍏呯數涓級"},"deviceBattery":{"type":"integer","format":"int32","description":"璁惧鐢甸噺"},"filterTotalDays":{"type":"integer","format":"int32","description":"婊よ姱鎬诲鍛藉ぉ鏁?},"filterRemainDays":{"type":"integer","format":"int32","description":"婊よ姱鍓╀綑澶╂暟"},"filterLife":{"type":"integer","format":"int32","description":"婊よ姱瀵垮懡"},"filterReplaceTime":{"type":"string","format":"date-time","description":"鏈€杩戜竴娆$‘璁ゆ洿鎹㈡护鑺椂闂?},"parkingShutdown":{"type":"string","description":"鍋滆溅鍏虫満妯″紡锛?鍏?1寮€锛?},"bluetoothConnected":{"type":"string","description":"钃濈墮杩炴帴锛?鏈繛鎺?1宸茶繛鎺ワ級"},"lastReportTime":{"type":"string","format":"date-time","description":"鏈€杩戜笂鎶ユ椂闂?},"lastOnlineTime":{"type":"string","format":"date-time","description":"鏈€鍚庡湪绾挎椂闂?},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"}}},"RCzDeviceVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/CzDeviceVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"CzProductOptionVo":{"type":"object","description":"鏂板璁惧鏃跺彲閫夌殑浜у搧妯℃澘銆?,"properties":{"productId":{"type":"integer","format":"int64","description":"浜у搧涓婚敭"},"model":{"type":"string","description":"鍨嬪彿"},"name":{"type":"string","description":"浜у搧鍚嶇О"},"category":{"type":"string","description":"鍝佺被"},"connectTypes":{"type":"string","description":"鍙坊鍔犳柟寮?},"filterEnabled":{"type":"boolean","description":"鏄惁闇€瑕佸~鍐欐护鑺ぉ鏁?},"filterTotalDays":{"type":"integer","format":"int32","description":"婊よ姱榛樿澶╂暟"},"capabilities":{"type":"array","description":"鑳藉姏缂栫爜","items":{"type":"string"}}}},"RListCzProductOptionVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/CzProductOptionVo"}}}},"CzLocationOptionVo":{"type":"object","description":"鏂板璁惧鏃跺彲閫夌殑鎴块棿銆?,"properties":{"locationId":{"type":"integer","format":"int64","description":"鎴块棿涓婚敭"},"locationName":{"type":"string","description":"鎴块棿鍚嶇О"},"homeId":{"type":"integer","format":"int64","description":"瀹跺涵涓婚敭"},"homeName":{"type":"string","description":"瀹跺涵鍚嶇О"}}},"RListCzLocationOptionVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/CzLocationOptionVo"}}}},"PageResultCzDeviceVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/CzDeviceVo"}}}},"RPageResultCzDeviceVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultCzDeviceVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RTestTreeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/TestTreeVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"TestTreeVo":{"type":"object","description":"娴嬭瘯鏍戣〃瑙嗗浘瀵硅薄 test_tree","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"parentId":{"type":"integer","format":"int64","description":"鐖秈d"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"treeName":{"type":"string","description":"鏍戣妭鐐瑰悕"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RListTestTreeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/TestTreeVo"}}}},"RObject":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RTestSensitive":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/TestSensitive","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"TestSensitive":{"type":"object","description":"鑴辨晱娴嬭瘯瀵硅薄銆?,"properties":{"idCard":{"type":"string","description":"韬唤璇?},"phone":{"type":"string","description":"鐢佃瘽"},"address":{"type":"string","description":"鍦板潃"},"email":{"type":"string","description":"閭"},"bankCard":{"type":"string","description":"閾惰鍗?}}},"RMapStringListString":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"鍝嶅簲涓氬姟鏁版嵁"}}},"BlobResourceContents":{"allOf":[{"$ref":"#/components/schemas/ResourceContents"},{"type":"object","properties":{"uri":{"type":"string"},"mimeType":{"type":"string"},"blob":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"McpResourceReadResult":{"type":"object","description":"MCP 璧勬簮璇诲彇缁撴灉銆?,"properties":{"serverName":{"type":"string"},"contents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/BlobResourceContents"},{"$ref":"#/components/schemas/TextResourceContents"}]}}}},"RMapStringMcpResourceReadResult":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpResourceReadResult"},"description":"鍝嶅簲涓氬姟鏁版嵁"}}},"ResourceContents":{},"TextResourceContents":{"allOf":[{"$ref":"#/components/schemas/ResourceContents"},{"type":"object","properties":{"uri":{"type":"string"},"mimeType":{"type":"string"},"text":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"Annotations":{"type":"object","properties":{"audience":{"type":"array","items":{"type":"string","enum":["user","assistant"]}},"priority":{"type":"number","format":"double"},"lastModified":{"type":"string"}}},"AudioContent":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"data":{"type":"string"},"mimeType":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"Content":{"discriminator":{"propertyName":"type"},"properties":{"type":{"type":"string"}},"required":["type"]},"EmbeddedResource":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"resource":{"oneOf":[{"$ref":"#/components/schemas/BlobResourceContents"},{"$ref":"#/components/schemas/TextResourceContents"}]},"_meta":{"type":"object","additionalProperties":{}}}}]},"ImageContent":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"data":{"type":"string"},"mimeType":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"McpDemoHandleResult":{"type":"object","description":"MCP 鏁版嵁澶勭悊缁撴灉銆?,"properties":{"sourceType":{"type":"string","description":"鏁版嵁鏉ユ簮绫诲瀷"},"handled":{"type":"boolean","description":"鏄惁宸插鐞?},"data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpToolCallResult"},"description":"MCP 鍘熷杩斿洖鏁版嵁"}}},"McpToolCallResult":{"type":"object","description":"MCP 宸ュ叿璋冪敤缁撴灉銆?,"properties":{"serverName":{"type":"string"},"error":{"type":"boolean"},"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AudioContent"},{"$ref":"#/components/schemas/EmbeddedResource"},{"$ref":"#/components/schemas/ImageContent"},{"$ref":"#/components/schemas/ResourceLink"},{"$ref":"#/components/schemas/TextContent"}]}},"structuredContent":{}}},"RMcpDemoHandleResult":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/McpDemoHandleResult","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"ResourceLink":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"uri":{"type":"string"},"description":{"type":"string"},"mimeType":{"type":"string"},"size":{"type":"integer","format":"int64"},"annotations":{"$ref":"#/components/schemas/Annotations"},"_meta":{"type":"object","additionalProperties":{}}}}]},"TextContent":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"text":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"TestI18nBo":{"type":"object","description":"鍥介檯鍖?Bean 鏍¢獙娴嬭瘯瀵硅薄銆?,"properties":{"name":{"type":"string","description":"鍚嶇О銆?,"minLength":1},"age":{"type":"integer","format":"int32","description":"骞撮緞銆?}},"required":["age","name"]},"RTestI18nBo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/TestI18nBo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"RMapStringTestDemoEncrypt":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/TestDemoEncrypt"},"description":"鍝嶅簲涓氬姟鏁版嵁"}}},"TestDemoEncrypt":{"type":"object","description":"娴嬭瘯鍔犲瘑瀛楁瀹炰綋銆?,"properties":{"createBy":{"type":"integer","format":"int64","description":"鍒涘缓鑰?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"updateBy":{"type":"integer","format":"int64","description":"鏇存柊鑰?},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"id":{"type":"integer","format":"int64","description":"涓婚敭"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"orderNum":{"type":"integer","format":"int32","description":"鎺掑簭鍙?},"testKey":{"type":"string","description":"key閿?},"value":{"type":"string","description":"鍊?},"version":{"type":"integer","format":"int64","description":"鐗堟湰"},"delFlag":{"type":"integer","format":"int64","description":"鍒犻櫎鏍囧織"}}},"RTestDemoVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/TestDemoVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"TestDemoVo":{"type":"object","description":"娴嬭瘯鍗曡〃瑙嗗浘瀵硅薄 test_demo","properties":{"id":{"type":"integer","format":"int64","description":"涓婚敭"},"deptId":{"type":"integer","format":"int64","description":"閮ㄩ棬id"},"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛id"},"orderNum":{"type":"integer","format":"int32","description":"鎺掑簭鍙?},"testKey":{"type":"string","description":"key閿?},"value":{"type":"string","description":"鍊?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"},"createBy":{"type":"integer","format":"int64","description":"鍒涘缓浜?},"createByName":{"type":"string","description":"鍒涘缓浜鸿处鍙?},"updateTime":{"type":"string","format":"date-time","description":"鏇存柊鏃堕棿"},"updateBy":{"type":"integer","format":"int64","description":"鏇存柊浜?},"updateByName":{"type":"string","description":"鏇存柊浜鸿处鍙?},"version":{"type":"integer","format":"int64","description":"鐗堟湰"}}},"PageResultTestDemoVo":{"type":"object","description":"琛ㄦ牸鍒嗛〉鏁版嵁瀵硅薄","properties":{"total":{"type":"integer","format":"int64","description":"鎬昏褰曟暟"},"rows":{"type":"array","description":"鍒楄〃鏁版嵁","items":{"$ref":"#/components/schemas/TestDemoVo"}}}},"RPageResultTestDemoVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/PageResultTestDemoVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"CaptchaVo":{"type":"object","description":"鍥剧墖楠岃瘉鐮佸搷搴斿璞°€?,"properties":{"captchaEnabled":{"type":"boolean","description":"鏄惁鍚敤楠岃瘉鐮?},"uuid":{"type":"string","description":"楠岃瘉鐮佹爣璇?},"img":{"type":"string","description":"Base64 鍥剧墖鏁版嵁"}}},"RCaptchaVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/CaptchaVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"AppUserProfileVo":{"type":"object","description":"App 鐢ㄦ埛璧勬枡杩斿洖瀵硅薄","properties":{"userId":{"type":"integer","format":"int64","description":"鐢ㄦ埛ID"},"userName":{"type":"string","description":"鐢ㄦ埛璐﹀彿锛堥粯璁や娇鐢ㄦ墜鏈哄彿锛?},"userNo":{"type":"string","description":"鐢ㄦ埛灞曠ず缂栧彿"},"phonenumber":{"type":"string","description":"鎵嬫満鍙风爜"},"nickName":{"type":"string","description":"鐢ㄦ埛鏄电О"},"avatarOssId":{"type":"integer","format":"int64","description":"澶村儚 OSS ID"},"avatarUrl":{"type":"string","description":"澶村儚 URL"},"gender":{"type":"string","description":"鎬у埆锛?鏈煡 1鐢?2濂筹級"},"birthday":{"type":"string","description":"鐢熸棩"},"province":{"type":"string","description":"鐪佷唤"},"city":{"type":"string","description":"鍩庡競"},"district":{"type":"string","description":"鍖哄幙"},"remark":{"type":"string","description":"澶囨敞"},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RAppUserProfileVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"$ref":"#/components/schemas/AppUserProfileVo","description":"鍝嶅簲涓氬姟鏁版嵁"}}},"AppLocationVo":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"homeId":{"type":"integer","format":"int64"},"locationName":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"},"icon":{"type":"string"},"status":{"type":"string"},"createTime":{"type":"string","format":"date-time"}}},"RListAppLocationVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/AppLocationVo"}}}},"AppHomeVo":{"type":"object","description":"App 瀹跺涵瑙嗗浘瀵硅薄\n

\n 鐢ㄤ簬鍓嶇灞曠ず瀹跺涵鍒楄〃淇℃伅锛屽寘鍚搴熀鏈俊鎭強浣嶇疆鏁伴噺缁熻銆?,"properties":{"id":{"type":"integer","format":"int64","description":"瀹跺涵ID"},"homeName":{"type":"string","description":"瀹跺涵鍚嶇О锛堝锛氭垜鐨勫銆佺埗姣嶅锛?},"isDefault":{"type":"string","description":"鏄惁榛樿瀹跺涵锛?鏄?0鍚︼級"},"locationCount":{"type":"integer","format":"int32","description":"浣嶇疆鏁伴噺锛堣瀹跺涵涓嬬殑鎴块棿/浣嶇疆鎬绘暟锛?},"createTime":{"type":"string","format":"date-time","description":"鍒涘缓鏃堕棿"}}},"RListAppHomeVo":{"type":"object","description":"鍝嶅簲淇℃伅涓讳綋","properties":{"code":{"type":"integer","format":"int32","description":"鍝嶅簲鐘舵€佺爜"},"msg":{"type":"string","description":"鍝嶅簲鎻愮ず淇℃伅"},"data":{"type":"array","description":"鍝嶅簲涓氬姟鏁版嵁","items":{"$ref":"#/components/schemas/AppHomeVo"}}}},"OpenApiAgentToolVO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"}}},"OpenApiAgentVO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"avatar":{"type":"string"},"greeting":{"type":"string"},"presetQuestions":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"string"}},"mcpEnabled":{"type":"boolean"},"mcpServers":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentToolVO"}},"skillEnabled":{"type":"boolean"},"skills":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentToolVO"}},"webSearchEnabled":{"type":"boolean"},"viewCount":{"type":"integer","format":"int32"},"isFeatured":{"type":"boolean"},"status":{"type":"integer","format":"int32"},"createDt":{"type":"string","format":"date-time"},"updateDt":{"type":"string","format":"date-time"},"subscribed":{"type":"boolean"}}},"ResultListOpenApiAgentVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentVO"}}}},"PageResultListOpenApiConversationVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiConversationVO"}},"page":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"OpenApiMessageVO":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"},"thinking":{"type":"string"},"status":{"type":"integer","format":"int32"},"createDt":{"type":"string"}}},"ResultListOpenApiMessageVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiMessageVO"}}}},"ResultMapStringObject":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{}}}},"OpenApiAgentQueryRequest":{"type":"object","properties":{"page":{"type":"integer","format":"int32","minimum":1},"size":{"type":"integer","format":"int32","minimum":1},"appId":{"type":"string"}}},"PageResultListOpenApiAgentVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentVO"}},"page":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"OpenApiAgentIdentityRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"}},"required":["agentId"]},"ResultOpenApiAgentVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiAgentVO"}}}}}}{"code":404,"data":null,"msg":"璇锋眰鍦板潃涓嶅瓨锟?} diff --git a/.tmp-openapi-out.txt b/.tmp-openapi-out.txt new file mode 100644 index 0000000..e69de29 diff --git a/package-lock.json b/package-lock.json index 15c4913..ed5eb19 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4618,9 +4618,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4787,9 +4784,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4810,9 +4804,6 @@ "cpu": [ "arm" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -4833,9 +4824,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4856,9 +4844,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -4879,9 +4864,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -4902,9 +4884,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5078,9 +5057,6 @@ "cpu": [ "arm" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5094,9 +5070,6 @@ "cpu": [ "arm" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5110,9 +5083,6 @@ "cpu": [ "arm64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5126,9 +5096,6 @@ "cpu": [ "arm64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5142,9 +5109,6 @@ "cpu": [ "loong64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5158,9 +5122,6 @@ "cpu": [ "loong64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5174,9 +5135,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5190,9 +5148,6 @@ "cpu": [ "ppc64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5206,9 +5161,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5222,9 +5174,6 @@ "cpu": [ "riscv64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ @@ -5238,9 +5187,6 @@ "cpu": [ "s390x" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5254,9 +5200,6 @@ "cpu": [ "x64" ], - "libc": [ - "glibc" - ], "license": "MIT", "optional": true, "os": [ @@ -5270,9 +5213,6 @@ "cpu": [ "x64" ], - "libc": [ - "musl" - ], "license": "MIT", "optional": true, "os": [ diff --git a/project.config.json b/project.config.json new file mode 100644 index 0000000..db2f056 --- /dev/null +++ b/project.config.json @@ -0,0 +1,24 @@ +{ + "setting": { + "es6": true, + "postcss": true, + "minified": true, + "uglifyFileName": false, + "enhance": true, + "packNpmRelationList": [], + "babelSetting": { + "ignore": [], + "disablePlugins": [], + "outputPath": "" + }, + "useCompilerPlugins": false + }, + "compileType": "miniprogram", + "simulatorPluginLibVersion": {}, + "packOptions": { + "ignore": [], + "include": [] + }, + "appid": "wxde0794b85ed16144", + "editorSetting": {} +} \ No newline at end of file diff --git a/project.private.config.json b/project.private.config.json new file mode 100644 index 0000000..4575f16 --- /dev/null +++ b/project.private.config.json @@ -0,0 +1,15 @@ +{ + "libVersion": "3.17.4", + "projectname": "czzj-app", + "setting": { + "urlCheck": true, + "coverView": true, + "lazyloadPlaceholderEnable": false, + "skylineRenderEnable": false, + "preloadBackgroundData": false, + "autoAudits": false, + "showShadowRootInWxmlPanel": true, + "compileHotReLoad": true, + "useGlassEaselForWxml": false + } +} \ No newline at end of file diff --git a/src/api/auth.ts b/src/api/auth.ts index ad573a7..909150d 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -1,6 +1,7 @@ import { request } from './request' import type { AuthTokenResult, SendSmsCodeBody, SmsCodeScene } from '@/types/api' import { ApiError } from '@/utils/api-error' +import { extractAuthToken, saveStoredToken } from '@/utils/auth-token' /** POST /app/auth/sendSmsCode */ export function sendSmsCode(phone: string, scene: SmsCodeScene) { @@ -15,11 +16,10 @@ export function sendSmsCode(phone: string, scene: SmsCodeScene) { }) } -export function saveAuthToken(data: AuthTokenResult) { - const token = data?.token ?? data?.accessToken +export function saveAuthToken(data: AuthTokenResult | unknown) { + const token = extractAuthToken(data) if (!token) { throw new ApiError('登录失败,未获取到令牌') } - uni.setStorageSync('token', token) - return token + return saveStoredToken(token) } diff --git a/src/api/request.ts b/src/api/request.ts index d80c520..d6ea0d8 100644 --- a/src/api/request.ts +++ b/src/api/request.ts @@ -1,46 +1,79 @@ import type { ApiResponse } from '@/types/api' +import { extractAuthToken, getStoredToken, saveStoredToken } from '@/utils/auth-token' import { ApiError, isApiSuccess, unwrapApiData } from '@/utils/api-error' const BASE_URL = import.meta.env.VITE_API_BASE_URL ?? '' +/** RuoYi-Vue-Plus App 端 clientId(请求头 clientid,与 Postman 一致) */ +export const API_CLIENT_ID = import.meta.env.VITE_API_CLIENT_ID || 'app' export interface RequestOptions extends Omit { url: string } -export function request(options: RequestOptions): Promise { - const token = uni.getStorageSync('token') as string +/** 构建鉴权请求头:clientid + Authorization */ +export function buildAuthHeaders(extra?: Record): Record { + const token = getStoredToken() + return { + 'Content-Type': 'application/json;charset=UTF-8', + clientId: API_CLIENT_ID, + ...(token ? { Authorization: `Bearer ${token}` } : {}), + ...(extra as Record | undefined), + } +} +function handleSuccess( + res: UniApp.RequestSuccessCallbackResult, + resolve: (value: T) => void, + reject: (reason: ApiError) => void, + saveTokenFromBody = false, +) { + if (res.statusCode < 200 || res.statusCode >= 300) { + const body = res.data as ApiResponse | undefined + reject( + new ApiError( + body?.msg || body?.message || `请求失败(${res.statusCode})`, + body?.code ?? res.statusCode, + ), + ) + return + } + + const body = (res.data ?? {}) as ApiResponse & Record + if (!isApiSuccess(body)) { + reject(new ApiError(body.msg || body.message || '请求失败', body.code)) + return + } + + if (saveTokenFromBody) { + const token = extractAuthToken(body) + if (token) saveStoredToken(token) + } + + resolve(unwrapApiData(body)) +} + +export function request(options: RequestOptions): Promise { return new Promise((resolve, reject) => { uni.request({ ...options, url: `${BASE_URL}${options.url}`, - header: { - 'Content-Type': 'application/json', - ...(token ? { Authorization: `Bearer ${token}` } : {}), - ...options.header, - }, - success: (res) => { - if (res.statusCode < 200 || res.statusCode >= 300) { - const body = res.data as ApiResponse | undefined - reject( - new ApiError( - body?.msg || body?.message || `请求失败(${res.statusCode})`, - body?.code ?? res.statusCode, - ), - ) - return - } - - const body = (res.data ?? {}) as ApiResponse & Record - if (!isApiSuccess(body)) { - reject( - new ApiError(body.msg || body.message || '请求失败', body.code), - ) - return - } - - resolve(unwrapApiData(body)) - }, + header: buildAuthHeaders(options.header), + success: (res) => handleSuccess(res, resolve, reject), + fail: (err) => { + reject(new ApiError(err.errMsg || '网络异常')) + }, + }) + }) +} + +/** 登录类接口:从完整响应体提取并保存 token */ +export function requestLogin(options: RequestOptions): Promise { + return new Promise((resolve, reject) => { + uni.request({ + ...options, + url: `${BASE_URL}${options.url}`, + header: buildAuthHeaders(options.header), + success: (res) => handleSuccess(res, resolve, reject, true), fail: (err) => { reject(new ApiError(err.errMsg || '网络异常')) }, diff --git a/src/components/app-tab-bar/index.vue b/src/components/app-tab-bar/index.vue index 6401b3b..814d03c 100644 --- a/src/components/app-tab-bar/index.vue +++ b/src/components/app-tab-bar/index.vue @@ -49,7 +49,8 @@ const routes: Record = { } function resolveTabFromRoute(): TabKey { - const route = getCurrentPages().at(-1)?.route ?? '' + const pages = getCurrentPages() + const route = pages.length > 0 ? pages[pages.length - 1].route ?? '' : '' return route.includes('mine') ? 'mine' : 'device' } diff --git a/src/manifest.json b/src/manifest.json index 309b9ec..fd83415 100644 --- a/src/manifest.json +++ b/src/manifest.json @@ -23,6 +23,12 @@ /* android打包配置 */ "android" : { "permissions" : [ + "", + "", + "", + "", + "", + "", "", "", "", @@ -54,7 +60,17 @@ "setting" : { "urlCheck" : false }, - "usingComponents" : true + "usingComponents" : true, + "permission" : { + "scope.bluetooth" : { + "desc" : "你的蓝牙将用于发现和连接智能设备" + } + }, + "requiredPrivateInfos" : [ + "getBluetoothDevices", + "onBluetoothDeviceFound", + "startBluetoothDevicesDiscovery" + ] }, "mp-alipay" : { "usingComponents" : true diff --git a/src/pages.json b/src/pages.json index ab1ff0e..0eb73f8 100644 --- a/src/pages.json +++ b/src/pages.json @@ -20,6 +20,13 @@ "navigationBarTitleText": "设备" } }, + { + "path": "pages/device/detail/index", + "style": { + "navigationStyle": "custom", + "navigationBarTitleText": "设备详情" + } + }, { "path": "pages/add-device/index", "style": { diff --git a/src/pages/add-device/add-device.api.ts b/src/pages/add-device/add-device.api.ts new file mode 100644 index 0000000..9dd5891 --- /dev/null +++ b/src/pages/add-device/add-device.api.ts @@ -0,0 +1,11 @@ +import { request } from '@/api/request' +import type { BindDeviceBody } from './add-device.types' + +/** POST /app/device/bind — 绑定设备(设备编号及蓝牙配对信息) */ +export function bindDevice(data: BindDeviceBody) { + return request({ + url: '/app/device/bind', + method: 'POST', + data, + }) +} diff --git a/src/pages/add-device/add-device.scss b/src/pages/add-device/add-device.scss index 4d638c0..bf96f21 100644 --- a/src/pages/add-device/add-device.scss +++ b/src/pages/add-device/add-device.scss @@ -51,6 +51,11 @@ background: linear-gradient(98deg, #45d685 0%, #21c25e 100%); box-shadow: 0 8rpx 28rpx rgba(33, 194, 94, 0.28); margin-bottom: 28rpx; + + &--disabled { + opacity: 0.65; + pointer-events: none; + } } .add-device-page__btn-text { diff --git a/src/pages/add-device/add-device.types.ts b/src/pages/add-device/add-device.types.ts index f967504..6495e79 100644 --- a/src/pages/add-device/add-device.types.ts +++ b/src/pages/add-device/add-device.types.ts @@ -9,3 +9,60 @@ export interface BindFeatureItem { desc: string icon: string } + +/** POST /app/device/bind 请求体 */ +export interface BindDeviceBody { + deviceNo: string + productId?: number + model?: string + imei?: string + mac?: string + name?: string + homeId?: number + locationId?: number +} + +/** 绑定流程页间传递的设备信息 */ +export interface BindDeviceContext { + deviceNo: string + name: string + serialMasked: string + productId?: number + model?: string + imei?: string + mac?: string +} + +export function buildBindDeviceQuery(ctx: BindDeviceContext): string { + const parts = [ + `deviceNo=${encodeURIComponent(ctx.deviceNo)}`, + `name=${encodeURIComponent(ctx.name)}`, + `serial=${encodeURIComponent(ctx.serialMasked)}`, + ] + if (ctx.productId != null) parts.push(`productId=${ctx.productId}`) + if (ctx.model) parts.push(`model=${encodeURIComponent(ctx.model)}`) + if (ctx.imei) parts.push(`imei=${encodeURIComponent(ctx.imei)}`) + if (ctx.mac) parts.push(`mac=${encodeURIComponent(ctx.mac)}`) + return parts.join('&') +} + +function parseQueryNumber(raw: unknown): number | undefined { + if (raw === undefined || raw === null || raw === '') return undefined + const n = Number(raw) + return Number.isFinite(n) ? n : undefined +} + +export function readBindDeviceContext( + query: Record, +): Partial { + const ctx: Partial = {} + if (query.deviceNo) ctx.deviceNo = decodeURIComponent(String(query.deviceNo)) + if (query.name) ctx.name = decodeURIComponent(String(query.name)) + if (query.serial) ctx.serialMasked = decodeURIComponent(String(query.serial)) + const productId = parseQueryNumber(query.productId) + if (productId != null) ctx.productId = productId + if (query.model) ctx.model = decodeURIComponent(String(query.model)) + if (query.imei) ctx.imei = decodeURIComponent(String(query.imei)) + if (query.mac) ctx.mac = decodeURIComponent(String(query.mac)) + return ctx +} diff --git a/src/pages/add-device/complete/complete.scss b/src/pages/add-device/complete/complete.scss index 45837e1..b82f332 100644 --- a/src/pages/add-device/complete/complete.scss +++ b/src/pages/add-device/complete/complete.scss @@ -210,6 +210,11 @@ display: flex; align-items: center; justify-content: center; + + &--disabled { + opacity: 0.65; + pointer-events: none; + } } .complete-page__submit-text { diff --git a/src/pages/add-device/complete/index.vue b/src/pages/add-device/complete/index.vue index 7b1a961..508e3b0 100644 --- a/src/pages/add-device/complete/index.vue +++ b/src/pages/add-device/complete/index.vue @@ -73,8 +73,14 @@ - - 完成添加 + + + {{ loading ? '提交中...' : '完成添加' }} + @@ -93,17 +99,14 @@ const { deviceName, serialMasked, roomName, + loading, + applyQuery, onPickRoom, onFinishAdd, } = useCompleteDevice() onLoad((query) => { - if (query?.name) { - deviceName.value = decodeURIComponent(String(query.name)) - } - if (query?.serial) { - serialMasked.value = decodeURIComponent(String(query.serial)) - } + applyQuery(query ?? {}) }) diff --git a/src/pages/add-device/complete/use-complete-device.ts b/src/pages/add-device/complete/use-complete-device.ts index 83929ac..43d1deb 100644 --- a/src/pages/add-device/complete/use-complete-device.ts +++ b/src/pages/add-device/complete/use-complete-device.ts @@ -1,34 +1,85 @@ import { ref } from 'vue' +import { getErrorMessage } from '@/utils/api-error' +import { bindDevice } from '../add-device.api' +import { readBindDeviceContext } from '../add-device.types' -const ROOM_OPTIONS = ['客厅', '主卧', '卧室', '厨房', '卫生间'] +const ROOM_OPTIONS = [ + { name: '客厅', locationId: 1 }, + { name: '主卧', locationId: 2 }, + { name: '卧室', locationId: 3 }, + { name: '厨房', locationId: 4 }, + { name: '卫生间', locationId: 5 }, +] as const export function useCompleteDevice() { const currentStep = 4 + const deviceNo = ref('') const deviceName = ref('Z2 空气净化器') const serialMasked = ref('****A3B2') - const roomName = ref('客厅') - const roomOptions = ROOM_OPTIONS + const productId = ref() + const model = ref() + const imei = ref() + const mac = ref() + const roomName = ref(ROOM_OPTIONS[0].name) + const locationId = ref(ROOM_OPTIONS[0].locationId) + const loading = ref(false) + + function applyQuery(query: Record) { + const ctx = readBindDeviceContext(query) + if (ctx.deviceNo) deviceNo.value = ctx.deviceNo + if (ctx.name) deviceName.value = ctx.name + if (ctx.serialMasked) serialMasked.value = ctx.serialMasked + if (ctx.productId != null) productId.value = ctx.productId + if (ctx.model) model.value = ctx.model + if (ctx.imei) imei.value = ctx.imei + if (ctx.mac) mac.value = ctx.mac + } function onPickRoom() { uni.showActionSheet({ - itemList: roomOptions, + itemList: ROOM_OPTIONS.map((item) => item.name), success: (res) => { - const picked = roomOptions[res.tapIndex] - if (picked) roomName.value = picked + const picked = ROOM_OPTIONS[res.tapIndex] + if (picked) { + roomName.value = picked.name + locationId.value = picked.locationId + } }, }) } - function onFinishAdd() { + async function onFinishAdd() { const name = deviceName.value.trim() if (!name) { uni.showToast({ title: '请输入设备名称', icon: 'none' }) return } - uni.showToast({ title: '添加成功', icon: 'success' }) - setTimeout(() => { - uni.reLaunch({ url: '/pages/device/index' }) - }, 400) + if (!deviceNo.value.trim()) { + uni.showToast({ title: '缺少设备编号', icon: 'none' }) + return + } + if (loading.value) return + + loading.value = true + try { + await bindDevice({ + deviceNo: deviceNo.value.trim(), + name, + ...(productId.value != null ? { productId: productId.value } : {}), + ...(model.value ? { model: model.value } : {}), + ...(imei.value ? { imei: imei.value } : {}), + ...(mac.value ? { mac: mac.value } : {}), + ...(locationId.value != null ? { locationId: locationId.value } : {}), + }) + uni.showToast({ title: '添加成功', icon: 'success' }) + setTimeout(() => { + uni.reLaunch({ url: '/pages/device/index' }) + }, 400) + } catch (err) { + uni.showToast({ title: getErrorMessage(err, '绑定失败,请重试'), icon: 'none' }) + } finally { + loading.value = false + } } return { @@ -36,6 +87,8 @@ export function useCompleteDevice() { deviceName, serialMasked, roomName, + loading, + applyQuery, onPickRoom, onFinishAdd, } diff --git a/src/pages/add-device/index.vue b/src/pages/add-device/index.vue index 490080d..35ffb3f 100644 --- a/src/pages/add-device/index.vue +++ b/src/pages/add-device/index.vue @@ -11,8 +11,14 @@ - - 去开启蓝牙 + + + {{ opening ? '正在开启...' : '去开启蓝牙' }} + 稍后绑定 @@ -29,7 +35,7 @@ import BindFeatureList from './components/bind-feature-list/index.vue' import BindSteps from './components/bind-steps/index.vue' import { BIND_FEATURES, BIND_STEPS, useAddDevice } from './use-add-device' -const { currentStep, onOpenBluetooth, onBindLater } = useAddDevice() +const { currentStep, opening, onOpenBluetooth, onBindLater } = useAddDevice() diff --git a/src/pages/device/components/device-header/index.vue b/src/pages/device/components/device-header/index.vue index 88991e3..5fc6c9c 100644 --- a/src/pages/device/components/device-header/index.vue +++ b/src/pages/device/components/device-header/index.vue @@ -1,49 +1,136 @@ diff --git a/src/pages/device/components/device-list/index.vue b/src/pages/device/components/device-list/index.vue new file mode 100644 index 0000000..9a12df4 --- /dev/null +++ b/src/pages/device/components/device-list/index.vue @@ -0,0 +1,85 @@ + + + + + diff --git a/src/pages/device/components/operation-success-toast/index.vue b/src/pages/device/components/operation-success-toast/index.vue new file mode 100644 index 0000000..ff417b6 --- /dev/null +++ b/src/pages/device/components/operation-success-toast/index.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/src/pages/device/components/room-location-dialog/index.vue b/src/pages/device/components/room-location-dialog/index.vue new file mode 100644 index 0000000..45270c4 --- /dev/null +++ b/src/pages/device/components/room-location-dialog/index.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/src/pages/device/detail/components/filter-replace-dialog/index.vue b/src/pages/device/detail/components/filter-replace-dialog/index.vue new file mode 100644 index 0000000..a4f6c8a --- /dev/null +++ b/src/pages/device/detail/components/filter-replace-dialog/index.vue @@ -0,0 +1,115 @@ + + + + + diff --git a/src/pages/device/detail/components/run-mode-explain-dialog/index.vue b/src/pages/device/detail/components/run-mode-explain-dialog/index.vue new file mode 100644 index 0000000..149a785 --- /dev/null +++ b/src/pages/device/detail/components/run-mode-explain-dialog/index.vue @@ -0,0 +1,210 @@ + + + + + diff --git a/src/pages/device/detail/device-bluetooth-read.ts b/src/pages/device/detail/device-bluetooth-read.ts new file mode 100644 index 0000000..56b48b4 --- /dev/null +++ b/src/pages/device/detail/device-bluetooth-read.ts @@ -0,0 +1,92 @@ +import type { UpdateDeviceRuntimeBody } from './device-detail.types' + +const SERVICE_UUID = (import.meta.env.VITE_BLE_SERVICE_UUID as string | undefined)?.trim() +const RUNTIME_CHAR_UUID = (import.meta.env.VITE_BLE_RUNTIME_CHARACTERISTIC_UUID as string | undefined)?.trim() + +function normalizeUuid(value: string): string { + return value.replace(/-/g, '').toUpperCase() +} + +function readBleCharacteristic( + deviceId: string, + serviceId: string, + characteristicId: string, +): Promise { + return new Promise((resolve, reject) => { + const targetService = normalizeUuid(serviceId) + const targetChar = normalizeUuid(characteristicId) + + const timeout = setTimeout(() => { + cleanup() + reject(new Error('读取特征值超时')) + }, 5000) + + const onValue = (res: UniApp.OnBLECharacteristicValueChangeCallbackResult) => { + if (res.deviceId !== deviceId) return + if (normalizeUuid(res.serviceId) !== targetService) return + if (normalizeUuid(res.characteristicId) !== targetChar) return + cleanup() + resolve(res.value as ArrayBuffer) + } + + function cleanup() { + clearTimeout(timeout) + if (typeof uni.offBLECharacteristicValueChange === 'function') { + uni.offBLECharacteristicValueChange(onValue) + } + } + + if (typeof uni.onBLECharacteristicValueChange !== 'function') { + reject(new Error('当前环境不支持读取蓝牙特征值')) + return + } + + uni.onBLECharacteristicValueChange(onValue) + uni.readBLECharacteristicValue({ + deviceId, + serviceId, + characteristicId, + success: () => {}, + fail: (err) => { + cleanup() + reject(err) + }, + }) + }) +} + +function parseRuntimePayload(buffer: ArrayBuffer): Partial { + try { + const bytes = new Uint8Array(buffer) + const text = String.fromCharCode(...bytes).trim() + if (!text) return {} + const data = JSON.parse(text) as Record + const patch: Partial = {} + if (data.runMode != null) patch.runMode = String(data.runMode) + if (data.fanLevel != null) patch.fanLevel = String(data.fanLevel) + if (data.tvoc != null) patch.tvoc = Number(data.tvoc) + if (data.powerMode != null) patch.powerMode = String(data.powerMode) + if (data.charging != null) patch.charging = String(data.charging) + if (data.filterTotalDays != null) patch.filterTotalDays = String(data.filterTotalDays) + if (data.filterRemainDays != null) patch.filterRemainDays = String(data.filterRemainDays) + if (data.parkingShutdown != null) patch.parkingShutdown = String(data.parkingShutdown) + return patch + } catch { + return {} + } +} + +/** 若配置了 BLE 特征值 UUID,则尝试读取设备运行数据 */ +export async function readRuntimeFromBle( + bleDeviceId: string, +): Promise> { + if (!SERVICE_UUID || !RUNTIME_CHAR_UUID) return {} + if (typeof uni.readBLECharacteristicValue !== 'function') return {} + + try { + const buffer = await readBleCharacteristic(bleDeviceId, SERVICE_UUID, RUNTIME_CHAR_UUID) + return parseRuntimePayload(buffer) + } catch { + return {} + } +} diff --git a/src/pages/device/detail/device-detail.api.ts b/src/pages/device/detail/device-detail.api.ts new file mode 100644 index 0000000..775dbd8 --- /dev/null +++ b/src/pages/device/detail/device-detail.api.ts @@ -0,0 +1,24 @@ +import { request } from '@/api/request' +import type { + AppDeviceRuntimeVo, + DeviceRuntimeQueryBody, + UpdateDeviceRuntimeBody, +} from './device-detail.types' + +/** POST /app/device/runtime — 查询设备运行数据 */ +export function fetchDeviceRuntime(data: DeviceRuntimeQueryBody) { + return request({ + url: '/app/device/runtime', + method: 'POST', + data, + }) +} + +/** POST /app/device/updateRuntime — 更新设备运行数据 */ +export function updateDeviceRuntime(data: UpdateDeviceRuntimeBody) { + return request({ + url: '/app/device/updateRuntime', + method: 'POST', + data, + }) +} diff --git a/src/pages/device/detail/device-detail.scss b/src/pages/device/detail/device-detail.scss new file mode 100644 index 0000000..998d894 --- /dev/null +++ b/src/pages/device/detail/device-detail.scss @@ -0,0 +1,400 @@ +.device-detail-page { + min-height: 100vh; + background: #f5f6f8; + display: flex; + flex-direction: column; +} + +.device-detail-hero { + position: relative; + z-index: 1; + flex-shrink: 0; + padding: 0 32rpx 56rpx; + overflow: hidden; + pointer-events: none; +} + +.device-detail-hero__bar, +.device-detail-hero__status, +.device-detail-hero__metric-row, +.device-detail-hero__sync, +.device-detail-hero__settings, +.device-detail-hero__back { + pointer-events: auto; +} + +.device-detail-hero__bg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 0; +} + +.device-detail-hero__bar { + position: relative; + z-index: 1; + height: 88rpx; + display: flex; + align-items: center; +} + +.device-detail-hero__back { + width: 72rpx; + height: 88rpx; + display: flex; + align-items: center; +} + +.device-detail-hero__back-icon { + font-size: 56rpx; + line-height: 1; + color: #fff; + font-weight: 300; +} + +.device-detail-hero__title { + flex: 1; + text-align: center; + font-size: 34rpx; + font-weight: 600; + color: #fff; +} + +.device-detail-hero__settings { + width: 72rpx; + height: 88rpx; + display: flex; + align-items: center; + justify-content: flex-end; +} + +.device-detail-hero__settings-icon { + width: 40rpx; + height: 40rpx; +} + +.device-detail-hero__status { + position: relative; + z-index: 1; + display: flex; + align-items: center; + justify-content: flex-start; + gap: 10rpx; + margin-top: 4rpx; + padding-left: 8rpx; +} + +.device-detail-hero__status-dot { + width: 10rpx; + height: 10rpx; + border-radius: 50%; + background: #fff; + + &--offline { + background: rgba(255, 255, 255, 0.55); + } +} + +.device-detail-hero__status-text { + font-size: 24rpx; + color: rgba(255, 255, 255, 0.92); +} + +.device-detail-hero__metric-row { + position: relative; + z-index: 1; + margin-top: 40rpx; + padding: 0 8rpx; + display: flex; + align-items: center; + justify-content: space-between; +} + +.device-detail-hero__metric { + display: flex; + align-items: baseline; + gap: 10rpx; +} + +.device-detail-hero__metric-value { + font-size: 96rpx; + font-weight: 700; + color: #fff; + line-height: 1; + letter-spacing: -2rpx; +} + +.device-detail-hero__metric-unit { + font-size: 26rpx; + color: rgba(255, 255, 255, 0.92); + padding-bottom: 8rpx; +} + +.device-detail-hero__quality { + width: 80rpx; + height: 80rpx; + border-radius: 50%; + background: rgba(255, 255, 255, 0.2); + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.device-detail-hero__quality-text { + font-size: 36rpx; + font-weight: 700; + color: #fff; +} + +.device-detail-hero__sync { + position: relative; + z-index: 1; + display: block; + margin-top: 24rpx; + padding-left: 8rpx; + text-align: left; + font-size: 22rpx; + color: rgba(255, 255, 255, 0.75); +} + +.device-detail-page__scroll { + position: relative; + z-index: 2; + flex: 1; + height: 0; + margin-top: -40rpx; +} + +.device-detail-panel { + padding: 0 24rpx calc(40rpx + env(safe-area-inset-bottom)); +} + +.device-detail-panel__dash { + height: 2rpx; + margin: 0 8rpx 24rpx; + border-top: 2rpx dashed rgba(255, 255, 255, 0.55); +} + +.device-detail-card { + background: #fff; + border-radius: 32rpx; + padding: 36rpx 28rpx 32rpx; + box-shadow: 0 4rpx 24rpx rgba(0, 0, 0, 0.04); + margin-bottom: 24rpx; +} + +.device-detail-card__section { + margin-bottom: 32rpx; +} + +.device-detail-card__head { + display: flex; + align-items: center; + justify-content: space-between; + margin-bottom: 20rpx; +} + +.device-detail-card__head-left { + display: flex; + align-items: center; + gap: 10rpx; +} + +.device-detail-card__label { + font-size: 30rpx; + font-weight: 600; + color: $color-text; +} + +.device-detail-card__head-icon-wrap { + width: 40rpx; + height: 40rpx; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; +} + +.device-detail-card__head-icon { + width: 28rpx; + height: 28rpx; +} + +.device-detail-mode-list { + display: flex; + gap: 16rpx; +} + +.device-detail-mode-item { + flex: 1; + height: 80rpx; + border-radius: 16rpx; + background: #f3f4f6; + display: flex; + align-items: center; + justify-content: center; + box-sizing: border-box; +} + +.device-detail-mode-item--active { + background: linear-gradient(135deg, #3fd47f 0%, #21c25e 100%); + box-shadow: 0 6rpx 20rpx rgba(33, 194, 94, 0.28); +} + +.device-detail-mode-item__text { + font-size: 26rpx; + color: #333; +} + +.device-detail-mode-item--active .device-detail-mode-item__text { + color: #fff; + font-weight: 500; +} + +.device-detail-fan-list { + display: flex; + gap: 16rpx; +} + +.device-detail-fan-item { + flex: 1; + height: 80rpx; + border-radius: 16rpx; + background: #f3f4f6; + display: flex; + align-items: center; + justify-content: center; +} + +.device-detail-fan-item--active { + background: linear-gradient(135deg, #3fd47f 0%, #21c25e 100%); + box-shadow: 0 6rpx 20rpx rgba(33, 194, 94, 0.28); +} + +.device-detail-fan-item__text { + font-size: 28rpx; + color: #333; + font-weight: 500; +} + +.device-detail-fan-item--active .device-detail-fan-item__text { + color: #fff; +} + +.device-detail-card__power { + display: flex; + align-items: center; + justify-content: space-between; + padding-top: 4rpx; +} + +.device-detail-card__power-label { + font-size: 28rpx; + color: $color-text; +} + +.device-detail-card__power-value { + font-size: 28rpx; + font-weight: 600; + color: $color-primary; +} + +.device-detail-stats { + display: grid; + grid-template-columns: repeat(2, minmax(0, 1fr)); + gap: 20rpx; +} + +.device-detail-stat-card { + background: #fff; + border-radius: 28rpx; + padding: 28rpx 24rpx 24rpx; + box-shadow: 0 4rpx 24rpx rgba(0, 0, 0, 0.04); + min-height: 300rpx; + display: flex; + flex-direction: column; +} + +.device-detail-stat-card__head { + margin-bottom: 12rpx; +} + +.device-detail-stat-card__title { + font-size: 28rpx; + font-weight: 600; + color: $color-text; +} + +.device-detail-stat-card__value { + font-size: 52rpx; + font-weight: 700; + color: $color-text; + line-height: 1.1; + margin-bottom: 14rpx; +} + +.device-detail-stat-card__track { + height: 10rpx; + border-radius: 5rpx; + background: #eef0f3; + overflow: hidden; + margin-bottom: 14rpx; +} + +.device-detail-stat-card__fill { + height: 100%; + border-radius: 5rpx; + background: linear-gradient(90deg, #45d685 0%, #21c25e 100%); +} + +.device-detail-stat-card__desc { + font-size: 22rpx; + color: $color-text-secondary; + line-height: 1.4; + margin-bottom: 16rpx; +} + +.device-detail-stat-card__btn { + margin-top: auto; + height: 68rpx; + border-radius: 34rpx; + border: 2rpx solid #e8eaed; + display: flex; + align-items: center; + justify-content: center; + background: #fff; +} + +.device-detail-stat-card__btn--hover { + opacity: 0.85; +} + +.device-detail-stat-card__btn--done { + border-color: #e8eaed; + background: #fff; +} + +.device-detail-stat-card__btn-text { + font-size: 24rpx; + color: $color-text-secondary; +} + +.device-detail-stat-card__btn--done .device-detail-stat-card__btn-text { + color: $color-text-secondary; +} + +.device-detail-stat-card__tag { + margin-top: auto; + align-self: flex-start; + padding: 6rpx 18rpx; + border-radius: 20rpx; + background: #edf9f1; +} + +.device-detail-stat-card__tag-text { + font-size: 22rpx; + color: $color-primary; +} diff --git a/src/pages/device/detail/device-detail.types.ts b/src/pages/device/detail/device-detail.types.ts new file mode 100644 index 0000000..80137bf --- /dev/null +++ b/src/pages/device/detail/device-detail.types.ts @@ -0,0 +1,57 @@ +/** POST /app/device/runtime 查询参数 */ +export interface DeviceRuntimeQueryBody { + deviceId: number +} + +/** + * POST /app/device/runtime 返回 data + * status: 0未激活 1在线 2离线 + * runMode: 0自动 1车载 2桌面 + * fanLevel: 0标准 1强力 2低档 + * powerMode: 0USB 1电池 + * parkingShutdown: 0关机 1开机 + */ +export interface AppDeviceRuntimeVo { + deviceId?: number + deviceNo?: string + name?: string + status?: string + runMode?: string + fanLevel?: string + tvoc?: number + powerMode?: string + filterTotalDays?: string + filterRemainDays?: string + filterLife?: number + filterReplaceTime?: string + parkingShutdown?: string +} + +/** POST /app/device/updateRuntime */ +export interface UpdateDeviceRuntimeBody { + deviceId: number + runMode?: string + fanLevel?: string + status?: string + bluetoothConnected?: string + signalLevel?: string + charging?: string + tvoc?: number + powerMode?: string + filterTotalDays?: string + filterRemainDays?: string + parkingShutdown?: string +} + +export interface DeviceDetailRouteQuery { + deviceId?: string + name?: string + locationName?: string + status?: string + bluetoothConnected?: string + charging?: string + mac?: string +} + +export type RunMode = '0' | '1' | '2' +export type FanLevel = '0' | '1' | '2' diff --git a/src/pages/device/detail/device-detail.utils.ts b/src/pages/device/detail/device-detail.utils.ts new file mode 100644 index 0000000..d5ce388 --- /dev/null +++ b/src/pages/device/detail/device-detail.utils.ts @@ -0,0 +1,113 @@ +import type { AppDeviceRuntimeVo, FanLevel, RunMode } from './device-detail.types' + +export const RUN_MODE_OPTIONS = [ + { value: '0' as RunMode, label: '自动模式' }, + { value: '1' as RunMode, label: '车载模式' }, + { value: '2' as RunMode, label: '桌面模式' }, +] as const + +/** 自动模式下可选:标准 / 强力(对应 API fanLevel 0 / 1) */ +export const AUTO_FAN_LEVEL_OPTIONS = [ + { value: '0' as FanLevel, label: '标准' }, + { value: '1' as FanLevel, label: '强力' }, +] as const + +export function isAutoRunMode(runMode?: string): boolean { + return runMode === '0' +} + +/** 自动模式下 UI 仅展示标准/强力 */ +export function normalizeAutoFanLevel(runMode?: string, fanLevel?: string): FanLevel { + const level = (fanLevel as FanLevel) || '0' + if (!isAutoRunMode(runMode)) return level + return level === '1' ? '1' : '0' +} + +/** 状态:0未激活 1在线 2离线 */ +export function isDeviceOnline(status?: string): boolean { + return status === '1' +} + +/** 蓝牙连接状态:0未连接 1已连接 */ +export function isBluetoothConnected(value?: string): boolean { + return value === '1' +} + +export function formatConnectionText(options: { + status?: string + bluetoothConnected?: string + locationName: string +}): string { + const { status, bluetoothConnected, locationName } = options + if (status === '0') return `未激活 · ${locationName}` + if (status === '2' || !isDeviceOnline(status)) { + return `设备离线 · ${locationName}` + } + const btText = isBluetoothConnected(bluetoothConnected) ? '蓝牙已连接' : '蓝牙未连接' + return `${btText} · ${locationName}` +} + +/** 供电模式:0USB 1电池 */ +export function formatPowerMode(mode?: string): string { + if (mode === '1') return '电池供电模式' + return 'USB供电模式' +} + +export function formatTvocValue(tvoc?: number): string { + if (tvoc == null) return '--' + return Number(tvoc).toFixed(1) +} + +export function formatTvocLevel(tvoc?: number): string { + const value = tvoc ?? 0 + if (value <= 0.3) return '优' + if (value <= 0.6) return '良' + return '差' +} + +export function formatFilterRemainDays(runtime: AppDeviceRuntimeVo): string { + if (runtime.filterRemainDays) { + return `预计还可使用 ${runtime.filterRemainDays} 天` + } + const total = Number(runtime.filterTotalDays) + const life = runtime.filterLife ?? 0 + if (total > 0 && life > 0) { + const remain = Math.round(total * life / 100) + return `预计还可使用 ${remain} 天` + } + return '预计还可使用 -- 天' +} + +export function hasFilterReplaced(runtime: AppDeviceRuntimeVo): boolean { + return !!runtime.filterReplaceTime +} + +export interface RuntimeViewState { + deviceName: string + runMode: RunMode + fanLevel: FanLevel + tvoc: number | null + powerMode: string + filterLife: number + filterRemainText: string + filterReplaced: boolean + isOnline: boolean +} + +/** 将 /app/device/runtime 响应映射为详情页展示状态 */ +export function mapRuntimeToView( + data: AppDeviceRuntimeVo, + fallbackName = '未命名设备', +): RuntimeViewState { + return { + deviceName: data.name || fallbackName, + runMode: (data.runMode as RunMode) || '0', + fanLevel: normalizeAutoFanLevel(data.runMode, data.fanLevel), + tvoc: data.tvoc ?? null, + powerMode: data.powerMode || '0', + filterLife: data.filterLife ?? 0, + filterRemainText: formatFilterRemainDays(data), + filterReplaced: hasFilterReplaced(data), + isOnline: isDeviceOnline(data.status), + } +} diff --git a/src/pages/device/detail/index.vue b/src/pages/device/detail/index.vue new file mode 100644 index 0000000..4112c8d --- /dev/null +++ b/src/pages/device/detail/index.vue @@ -0,0 +1,206 @@ + + + + + diff --git a/src/pages/device/detail/use-device-bluetooth-sync.ts b/src/pages/device/detail/use-device-bluetooth-sync.ts new file mode 100644 index 0000000..eebb8f0 --- /dev/null +++ b/src/pages/device/detail/use-device-bluetooth-sync.ts @@ -0,0 +1,185 @@ +import { onUnload } from '@dcloudio/uni-app' +import { ref } from 'vue' +import { + BluetoothError, + closeBleConnection, + createBleConnection, + ensureBluetoothReady, + getBluetoothErrorMessage, + getDiscoveredBluetoothDevices, + isBluetoothApiSupported, + rssiToSignalLevel, + scanForBleDeviceByMac, + subscribeBleConnectionStateChange, +} from '@/utils/bluetooth' +import { updateDeviceRuntime } from './device-detail.api' +import { readRuntimeFromBle } from './device-bluetooth-read' +import type { UpdateDeviceRuntimeBody } from './device-detail.types' + +const SYNC_INTERVAL_MS = 15000 +const SCAN_TIMEOUT_MS = 15000 + +export interface DeviceBluetoothSyncContext { + getDeviceId: () => number + getMac: () => string | undefined + getRuntimePatch: () => Partial + onBluetoothConnectedChange: (connected: boolean) => void + onSyncTextChange: (text: string) => void + onSynced?: () => void | Promise +} + +export function useDeviceBluetoothSync(context: DeviceBluetoothSyncContext) { + const syncing = ref(false) + const bleDeviceId = ref() + let syncTimer: ReturnType | undefined + let unsubscribeConnection: (() => void) | undefined + let active = false + + function setSyncText(text: string) { + context.onSyncTextChange(text) + } + + async function reportDisconnected() { + const deviceId = context.getDeviceId() + if (!deviceId) return + context.onBluetoothConnectedChange(false) + try { + await updateDeviceRuntime({ + deviceId, + bluetoothConnected: '0', + signalLevel: '0', + }) + } catch { + // 上报失败时保留本地状态 + } + } + + async function connectAndSync(): Promise { + const deviceId = context.getDeviceId() + const mac = context.getMac() + if (!deviceId) return false + + if (!isBluetoothApiSupported()) { + setSyncText('当前环境不支持蓝牙同步') + return false + } + + if (!mac) { + setSyncText('缺少设备 MAC,无法蓝牙同步') + return false + } + + if (syncing.value) return false + syncing.value = true + + try { + setSyncText('正在连接蓝牙…') + await ensureBluetoothReady() + + let targetBleId = bleDeviceId.value + let foundDevice: UniApp.BluetoothDeviceInfo | null = null + + if (!targetBleId) { + foundDevice = await scanForBleDeviceByMac(mac, { timeoutMs: SCAN_TIMEOUT_MS }) + if (!foundDevice) { + setSyncText('未找到设备,请确认已开机并靠近手机') + await reportDisconnected() + return false + } + targetBleId = foundDevice.deviceId + bleDeviceId.value = targetBleId + } else { + const discovered = await getDiscoveredBluetoothDevices() + foundDevice = discovered.find((item) => item.deviceId === targetBleId) ?? null + } + + try { + await createBleConnection(targetBleId) + } catch (err) { + const btErr = err as BluetoothError + if (btErr.errCode !== 10010) throw err + } + + if (!targetBleId) { + setSyncText('蓝牙连接异常,请重试') + await reportDisconnected() + return false + } + + context.onBluetoothConnectedChange(true) + + const blePayload = await readRuntimeFromBle(targetBleId) + const runtimePatch = context.getRuntimePatch() + const signalLevel = rssiToSignalLevel(foundDevice?.RSSI) + + await updateDeviceRuntime({ + deviceId, + ...runtimePatch, + ...blePayload, + status: '1', + bluetoothConnected: '1', + signalLevel, + }) + + setSyncText('刚刚更新 · 数据实时同步中') + await context.onSynced?.() + return true + } catch (err) { + setSyncText(getBluetoothErrorMessage(err)) + bleDeviceId.value = undefined + await reportDisconnected() + return false + } finally { + syncing.value = false + } + } + + function startSyncLoop() { + if (active) return + active = true + + unsubscribeConnection = subscribeBleConnectionStateChange((res) => { + if (!bleDeviceId.value || res.deviceId !== bleDeviceId.value) return + if (!res.connected) { + bleDeviceId.value = undefined + void reportDisconnected() + setSyncText('蓝牙已断开,正在尝试重连…') + } + }) + + void connectAndSync() + + syncTimer = setInterval(() => { + void connectAndSync() + }, SYNC_INTERVAL_MS) + } + + async function stopSync() { + active = false + if (syncTimer) { + clearInterval(syncTimer) + syncTimer = undefined + } + unsubscribeConnection?.() + unsubscribeConnection = undefined + + const currentBleId = bleDeviceId.value + bleDeviceId.value = undefined + + if (currentBleId) { + await closeBleConnection(currentBleId).catch(() => {}) + await reportDisconnected() + } + } + + onUnload(() => { + void stopSync() + }) + + return { + syncing, + startSyncLoop, + stopSync, + connectAndSync, + } +} diff --git a/src/pages/device/detail/use-device-detail.ts b/src/pages/device/detail/use-device-detail.ts new file mode 100644 index 0000000..75a8845 --- /dev/null +++ b/src/pages/device/detail/use-device-detail.ts @@ -0,0 +1,223 @@ +import { onLoad } from '@dcloudio/uni-app' +import { computed, ref } from 'vue' +import { getErrorMessage } from '@/utils/api-error' +import { fetchDeviceList } from '../device.api' +import { fetchDeviceRuntime, updateDeviceRuntime } from './device-detail.api' +import type { AppDeviceRuntimeVo, DeviceDetailRouteQuery, FanLevel, RunMode } from './device-detail.types' +import { + AUTO_FAN_LEVEL_OPTIONS, + formatConnectionText, + formatPowerMode, + formatTvocLevel, + formatTvocValue, + isAutoRunMode, + isBluetoothConnected, + mapRuntimeToView, + RUN_MODE_OPTIONS, +} from './device-detail.utils' +import { useDeviceBluetoothSync } from './use-device-bluetooth-sync' + +export function useDeviceDetail() { + const deviceId = ref(0) + const deviceMac = ref() + const deviceName = ref('') + const locationName = ref('客厅') + const deviceStatus = ref() + const bluetoothConnected = ref(false) + const charging = ref(false) + const isOnline = ref(false) + const loading = ref(false) + const updating = ref(false) + + const runMode = ref('0') + const fanLevel = ref('0') + const tvoc = ref(null) + const powerMode = ref('0') + const filterLife = ref(0) + const filterRemainText = ref('预计还可使用 -- 天') + const filterReplaced = ref(false) + const filterReplaceDialogVisible = ref(false) + const batteryLevel = ref(null) + const syncText = ref('数据实时同步中') + + const tvocDisplay = computed(() => formatTvocValue(tvoc.value ?? undefined)) + const tvocLevel = computed(() => formatTvocLevel(tvoc.value ?? undefined)) + const powerModeText = computed(() => formatPowerMode(powerMode.value)) + const batteryDisplay = computed(() => + batteryLevel.value != null ? `${batteryLevel.value}%` : '--', + ) + const connectionText = computed(() => + formatConnectionText({ + status: deviceStatus.value, + bluetoothConnected: bluetoothConnected.value ? '1' : '0', + locationName: locationName.value, + }), + ) + const showFanLevelControl = computed(() => isAutoRunMode(runMode.value)) + const fanLevelOptions = computed(() => + showFanLevelControl.value ? AUTO_FAN_LEVEL_OPTIONS : [], + ) + + function applyRuntime(data: AppDeviceRuntimeVo) { + const view = mapRuntimeToView(data, deviceName.value) + deviceName.value = view.deviceName + runMode.value = view.runMode + fanLevel.value = view.fanLevel + tvoc.value = view.tvoc + powerMode.value = view.powerMode + filterLife.value = view.filterLife + filterRemainText.value = view.filterRemainText + filterReplaced.value = view.filterReplaced + isOnline.value = view.isOnline + if (data.status !== undefined) deviceStatus.value = data.status + syncText.value = '刚刚更新 · 数据实时同步中' + } + + async function refreshDeviceMeta() { + if (!deviceId.value) return + try { + const list = await fetchDeviceList() + const device = list?.find((item) => item.deviceId === deviceId.value) + if (!device) return + if (device.mac) deviceMac.value = device.mac + bluetoothConnected.value = isBluetoothConnected(device.bluetoothConnected) + charging.value = device.charging === '1' + if (device.status !== undefined) deviceStatus.value = device.status + isOnline.value = device.status === '1' + } catch { + // 列表刷新失败时保留路由参数状态 + } + } + + async function loadRuntime() { + if (!deviceId.value) return + loading.value = true + try { + const [runtime] = await Promise.all([ + fetchDeviceRuntime({ deviceId: deviceId.value }), + refreshDeviceMeta(), + ]) + applyRuntime(runtime) + } catch (err) { + uni.showToast({ title: getErrorMessage(err, '加载设备数据失败'), icon: 'none' }) + } finally { + loading.value = false + } + } + + async function patchRuntime(patch: { runMode?: RunMode; fanLevel?: FanLevel }) { + if (!deviceId.value || updating.value) return + updating.value = true + try { + await updateDeviceRuntime({ + deviceId: deviceId.value, + ...patch, + }) + const data = await fetchDeviceRuntime({ deviceId: deviceId.value }) + applyRuntime(data) + await refreshDeviceMeta() + } catch (err) { + uni.showToast({ title: getErrorMessage(err, '设置失败'), icon: 'none' }) + } finally { + updating.value = false + } + } + + function onSelectRunMode(mode: RunMode) { + if (runMode.value === mode) return + void patchRuntime({ runMode: mode }) + } + + function onSelectFanLevel(level: FanLevel) { + if (!isAutoRunMode(runMode.value)) return + if (fanLevel.value === level) return + void patchRuntime({ fanLevel: level }) + } + + function onSettings() { + uni.showToast({ title: '设备设置功能开发中', icon: 'none' }) + } + + function onFilterReplace() { + if (filterReplaced.value) return + filterReplaceDialogVisible.value = true + } + + function onConfirmFilterReplace() { + filterReplaced.value = true + uni.showToast({ title: '操作成功', icon: 'success' }) + } + + const { startSyncLoop } = useDeviceBluetoothSync({ + getDeviceId: () => deviceId.value, + getMac: () => deviceMac.value, + getRuntimePatch: () => ({ + runMode: runMode.value, + fanLevel: fanLevel.value, + tvoc: tvoc.value ?? undefined, + powerMode: powerMode.value, + charging: charging.value ? '1' : '0', + }), + onBluetoothConnectedChange: (connected) => { + bluetoothConnected.value = connected + if (connected) { + isOnline.value = true + deviceStatus.value = '1' + } + }, + onSyncTextChange: (text) => { + syncText.value = text + }, + onSynced: async () => { + await refreshDeviceMeta() + const data = await fetchDeviceRuntime({ deviceId: deviceId.value }) + applyRuntime(data) + }, + }) + + onLoad((query?: DeviceDetailRouteQuery) => { + deviceId.value = Number(query?.deviceId) || 0 + if (query?.name) deviceName.value = decodeURIComponent(String(query.name)) + if (query?.locationName) { + locationName.value = decodeURIComponent(String(query.locationName)) + } + if (query?.status) { + deviceStatus.value = String(query.status) + isOnline.value = query.status === '1' + } + if (query?.mac) deviceMac.value = decodeURIComponent(String(query.mac)) + bluetoothConnected.value = isBluetoothConnected(query?.bluetoothConnected) + charging.value = query?.charging === '1' + void loadRuntime().then(() => { + startSyncLoop() + }) + }) + + return { + deviceName, + connectionText, + isOnline, + tvocDisplay, + tvocLevel, + syncText, + runMode, + fanLevel, + powerModeText, + filterLife, + filterRemainText, + filterReplaced, + filterReplaceDialogVisible, + batteryDisplay, + batteryLevel, + charging, + loading, + showFanLevelControl, + runModeOptions: RUN_MODE_OPTIONS, + fanLevelOptions, + onSelectRunMode, + onSelectFanLevel, + onSettings, + onFilterReplace, + onConfirmFilterReplace, + } +} diff --git a/src/pages/device/device.api.ts b/src/pages/device/device.api.ts new file mode 100644 index 0000000..914ac03 --- /dev/null +++ b/src/pages/device/device.api.ts @@ -0,0 +1,11 @@ +import { request } from '@/api/request' +import type { AppDeviceVo, DeviceQueryBody } from './device.types' + +/** POST /app/device/list — 查询当前用户的设备列表 */ +export function fetchDeviceList(query: DeviceQueryBody = {}) { + return request({ + url: '/app/device/list', + method: 'POST', + data: query, + }) +} diff --git a/src/pages/device/device.types.ts b/src/pages/device/device.types.ts index ee5b96d..06df613 100644 --- a/src/pages/device/device.types.ts +++ b/src/pages/device/device.types.ts @@ -1,6 +1,7 @@ export interface RoomTab { id: string name: string + locationId?: number } export interface HotDeviceItem { @@ -8,3 +9,34 @@ export interface HotDeviceItem { name: string desc: string } + +/** POST /app/device/list 查询参数 */ +export interface DeviceQueryBody { + homeId?: number + locationId?: number +} + +/** 设备状态:0未激活 1在线 2离线 */ +export type DeviceStatus = '0' | '1' | '2' + +/** POST /app/device/list 返回项 */ +export interface AppDeviceVo { + deviceId?: number + deviceNo?: string + name?: string + imei?: string + mac?: string + homeId?: number + locationId?: number + status?: DeviceStatus | string + bluetoothConnected?: string + signalLevel?: string + charging?: string + bindTime?: string +} + +export interface DeviceListItem extends AppDeviceVo { + locationName: string + isOnline: boolean + isCharging: boolean +} diff --git a/src/pages/device/device.utils.ts b/src/pages/device/device.utils.ts new file mode 100644 index 0000000..53ab39a --- /dev/null +++ b/src/pages/device/device.utils.ts @@ -0,0 +1,67 @@ +import type { AppDeviceVo, DeviceListItem, RoomTab } from './device.types' + +/** 位置 ID → 房间名(后端暂无 locationName 时的本地映射) */ +const LOCATION_NAME_MAP: Record = { + 1: '客厅', + 2: '主卧', + 3: '卧室', + 4: '厨房', + 5: '卫生间', + 6: '书房', +} + +export function resolveLocationName(locationId?: number): string { + if (locationId == null) return '未分配' + return LOCATION_NAME_MAP[locationId] ?? `位置${locationId}` +} + +export function mapDeviceItem(device: AppDeviceVo): DeviceListItem { + return { + ...device, + locationName: resolveLocationName(device.locationId), + isOnline: device.status === '1', + isCharging: device.charging === '1', + } +} + +export function buildRoomTabs( + devices: DeviceListItem[], + customRooms: RoomTab[] = [], +): RoomTab[] { + const tabs: RoomTab[] = [{ id: 'all', name: '全部' }] + const seen = new Set() + + for (const device of devices) { + if (device.locationId == null) continue + const id = String(device.locationId) + if (seen.has(id)) continue + seen.add(id) + tabs.push({ + id, + name: device.locationName, + locationId: device.locationId, + }) + } + + for (const room of customRooms) { + if (seen.has(room.id)) continue + seen.add(room.id) + tabs.push(room) + } + + return tabs +} + +export function filterDevicesByRoom( + devices: DeviceListItem[], + activeRoomId: string, +): DeviceListItem[] { + if (activeRoomId === 'all') return devices + const locationId = Number(activeRoomId) + if (Number.isNaN(locationId)) return devices + return devices.filter((item) => item.locationId === locationId) +} + +export function countOnlineDevices(devices: DeviceListItem[]): number { + return devices.filter((item) => item.isOnline).length +} diff --git a/src/pages/device/index.vue b/src/pages/device/index.vue index c169a3b..eee39f6 100644 --- a/src/pages/device/index.vue +++ b/src/pages/device/index.vue @@ -2,8 +2,10 @@ - - + + + + + + + @@ -21,7 +40,10 @@ import { useTabPage } from '@/hooks/use-tab-page' import DeviceEmpty from './components/device-empty/index.vue' import DeviceHeader from './components/device-header/index.vue' +import DeviceList from './components/device-list/index.vue' import HotDevices from './components/hot-devices/index.vue' +import OperationSuccessToast from './components/operation-success-toast/index.vue' +import RoomLocationDialog from './components/room-location-dialog/index.vue' import RoomTabs from './components/room-tabs/index.vue' import { useDevice } from './use-device' @@ -31,14 +53,24 @@ const { homeName, rooms, activeRoomId, + devices, + onlineCount, + hasDevices, + loading, hotDevices, bindStepHint, + roomDialogVisible, + successToastVisible, selectRoom, onAddRoom, + onConfirmAddRoom, onStartBind, + onScan, onGoMall, onNotify, - onHomePicker, + onHomeManage, + onManageDevices, + onSelectDevice, } = useDevice() diff --git a/src/pages/device/use-device.ts b/src/pages/device/use-device.ts index 38e9e03..00c222f 100644 --- a/src/pages/device/use-device.ts +++ b/src/pages/device/use-device.ts @@ -1,10 +1,16 @@ -import { ref } from 'vue' -import type { HotDeviceItem, RoomTab } from './device.types' +import { onShow } from '@dcloudio/uni-app' +import { computed, ref } from 'vue' +import { getErrorMessage } from '@/utils/api-error' +import { fetchDeviceList } from './device.api' +import type { DeviceListItem, HotDeviceItem, RoomTab } from './device.types' +import { + buildRoomTabs, + countOnlineDevices, + filterDevicesByRoom, + mapDeviceItem, +} from './device.utils' -const DEFAULT_ROOMS: RoomTab[] = [ - { id: 'all', name: '全部' }, - { id: 'living', name: '客厅' }, -] +const CUSTOM_ROOMS_KEY = 'device_custom_rooms' const DEFAULT_HOT_DEVICES: HotDeviceItem[] = [ { @@ -19,25 +25,98 @@ const DEFAULT_HOT_DEVICES: HotDeviceItem[] = [ }, ] +function loadCustomRooms(): RoomTab[] { + try { + const raw = uni.getStorageSync(CUSTOM_ROOMS_KEY) as RoomTab[] | string + if (Array.isArray(raw)) return raw + if (typeof raw === 'string' && raw) return JSON.parse(raw) as RoomTab[] + } catch { + // ignore + } + return [] +} + +function saveCustomRooms(rooms: RoomTab[]) { + uni.setStorageSync(CUSTOM_ROOMS_KEY, rooms) +} + export function useDevice() { const homeName = ref('我的家') - const rooms = ref(DEFAULT_ROOMS) + const customRooms = ref(loadCustomRooms()) + const rooms = ref([{ id: 'all', name: '全部' }]) const activeRoomId = ref('all') + const devices = ref([]) + const loading = ref(false) const hotDevices = ref(DEFAULT_HOT_DEVICES) const bindStepHint = ref(3) + const roomDialogVisible = ref(false) + const successToastVisible = ref(false) + + const hasDevices = computed(() => devices.value.length > 0) + + const filteredDevices = computed(() => + filterDevicesByRoom(devices.value, activeRoomId.value), + ) + + const onlineCount = computed(() => countOnlineDevices(filteredDevices.value)) + + function refreshRoomTabs() { + rooms.value = buildRoomTabs(devices.value, customRooms.value) + if (!rooms.value.some((room) => room.id === activeRoomId.value)) { + activeRoomId.value = 'all' + } + } + + async function loadDevices() { + if (loading.value) return + loading.value = true + try { + const list = await fetchDeviceList() + devices.value = (list ?? []).map(mapDeviceItem) + refreshRoomTabs() + } catch (err) { + uni.showToast({ title: getErrorMessage(err, '加载设备失败'), icon: 'none' }) + } finally { + loading.value = false + } + } + + onShow(() => { + void loadDevices() + }) + + function showOperationSuccess() { + successToastVisible.value = true + } function selectRoom(id: string) { activeRoomId.value = id } function onAddRoom() { - uni.showToast({ title: '添加房间功能开发中', icon: 'none' }) + roomDialogVisible.value = true + } + + function onConfirmAddRoom(name: string) { + const room: RoomTab = { + id: `custom-${Date.now()}`, + name, + } + customRooms.value = [...customRooms.value, room] + saveCustomRooms(customRooms.value) + refreshRoomTabs() + activeRoomId.value = room.id + showOperationSuccess() } function onStartBind() { uni.navigateTo({ url: '/pages/add-device/index' }) } + function onScan() { + uni.showToast({ title: '扫一扫功能开发中', icon: 'none' }) + } + function onGoMall() { uni.showToast({ title: '商城功能开发中', icon: 'none' }) } @@ -46,21 +125,53 @@ export function useDevice() { uni.showToast({ title: '消息功能开发中', icon: 'none' }) } - function onHomePicker() { - uni.showToast({ title: '切换家庭功能开发中', icon: 'none' }) + function onHomeManage() { + uni.showToast({ title: '家庭管理功能开发中', icon: 'none' }) + } + + function onManageDevices() { + uni.showToast({ title: '设备管理功能开发中', icon: 'none' }) + } + + function onSelectDevice(device: DeviceListItem) { + if (!device.deviceId) { + uni.showToast({ title: '设备信息不完整', icon: 'none' }) + return + } + const q = [ + `deviceId=${device.deviceId}`, + `name=${encodeURIComponent(device.name || '')}`, + `locationName=${encodeURIComponent(device.locationName || '')}`, + `status=${device.status ?? ''}`, + `bluetoothConnected=${device.bluetoothConnected ?? '0'}`, + `charging=${device.charging ?? '0'}`, + ...(device.mac ? [`mac=${encodeURIComponent(device.mac)}`] : []), + ].join('&') + uni.navigateTo({ url: `/pages/device/detail/index?${q}` }) } return { homeName, rooms, activeRoomId, + devices: filteredDevices, + onlineCount, + hasDevices, + loading, hotDevices, bindStepHint, + roomDialogVisible, + successToastVisible, selectRoom, onAddRoom, + onConfirmAddRoom, onStartBind, + onScan, onGoMall, onNotify, - onHomePicker, + onHomeManage, + onManageDevices, + onSelectDevice, + loadDevices, } } diff --git a/src/pages/login/login.api.ts b/src/pages/login/login.api.ts index 664a852..7567811 100644 --- a/src/pages/login/login.api.ts +++ b/src/pages/login/login.api.ts @@ -1,4 +1,4 @@ -import { request } from '@/api/request' +import { requestLogin } from '@/api/request' import type { AuthTokenResult, LoginPasswordBody, LoginSmsBody } from '@/types/api' import type { LoginCodeForm, LoginPasswordForm } from './login.types' @@ -8,7 +8,7 @@ export function loginBySms(data: LoginCodeForm) { phonenumber: data.phone.trim(), smsCode: data.code.trim(), } - return request({ + return requestLogin({ url: '/app/auth/login/sms', method: 'POST', data: body, @@ -21,7 +21,7 @@ export function loginByPassword(data: LoginPasswordForm) { account: data.account.trim(), password: data.password, } - return request({ + return requestLogin({ url: '/app/auth/login/password', method: 'POST', data: body, diff --git a/src/pages/login/use-login.ts b/src/pages/login/use-login.ts index 94e0f9e..8b111d4 100644 --- a/src/pages/login/use-login.ts +++ b/src/pages/login/use-login.ts @@ -1,8 +1,8 @@ import { ref } from 'vue' import { useSmsCode } from '@/hooks/use-sms-code' import { isValidPassword, isValidPhone, isValidSmsCode } from '@/utils/validate' -import { saveAuthToken } from '@/api/auth' import { getErrorMessage } from '@/utils/api-error' +import { getStoredToken } from '@/utils/auth-token' import { SMS_CODE_SCENE } from '@/types/api' import { loginByPassword, loginBySms } from './login.api' import type { LoginMode } from './login.types' @@ -44,8 +44,7 @@ export function useLogin() { uni.showToast({ title: '请输入验证码', icon: 'none' }) return } - const smsRes = await loginBySms({ phone: phone.value, code: code.value }) - saveAuthToken(smsRes) + await loginBySms({ phone: phone.value, code: code.value }) } else { if (!account.value.trim()) { uni.showToast({ title: '请输入账号', icon: 'none' }) @@ -55,11 +54,14 @@ export function useLogin() { uni.showToast({ title: '密码至少 6 位', icon: 'none' }) return } - const pwdRes = await loginByPassword({ + await loginByPassword({ account: account.value, password: password.value, }) - saveAuthToken(pwdRes) + } + if (!getStoredToken()) { + uni.showToast({ title: '登录失败,未获取到令牌', icon: 'none' }) + return } uni.showToast({ title: '登录成功', icon: 'success' }) uni.reLaunch({ url: '/pages/device/index' }) diff --git a/src/static/完成@2x.png b/src/static/完成@2x.png new file mode 100644 index 0000000..90db3e2 Binary files /dev/null and b/src/static/完成@2x.png differ diff --git a/src/static/组 15226@2x.png b/src/static/组 15226@2x.png new file mode 100644 index 0000000..e35a74c Binary files /dev/null and b/src/static/组 15226@2x.png differ diff --git a/src/static/组 15227@2x.png b/src/static/组 15227@2x.png new file mode 100644 index 0000000..f046c70 Binary files /dev/null and b/src/static/组 15227@2x.png differ diff --git a/src/static/路径1.png b/src/static/路径1.png new file mode 100644 index 0000000..47f1578 Binary files /dev/null and b/src/static/路径1.png differ diff --git a/src/types/api.ts b/src/types/api.ts index 7284570..128cbd6 100644 --- a/src/types/api.ts +++ b/src/types/api.ts @@ -42,6 +42,10 @@ export interface RegisterBody { export interface AuthTokenResult { token?: string accessToken?: string + /** RuoYi-Vue-Plus 登录响应 */ + access_token?: string + expire_in?: number + client_id?: string } /** POST /app/auth/forgetPassword/verifyCode */ diff --git a/src/utils/auth-token.ts b/src/utils/auth-token.ts new file mode 100644 index 0000000..8f99af6 --- /dev/null +++ b/src/utils/auth-token.ts @@ -0,0 +1,44 @@ +const TOKEN_KEY = 'token' + +/** 从登录响应中提取 access_token(兼容 RuoYi-Vue-Plus) */ +export function extractAuthToken(payload: unknown): string { + if (payload == null) return '' + + if (typeof payload === 'string') { + return payload.replace(/^Bearer\s+/i, '').trim() + } + + if (typeof payload === 'object') { + const record = payload as Record + for (const key of ['access_token', 'accessToken', 'token']) { + const value = record[key] + if (typeof value === 'string' && value.trim()) { + return value.replace(/^Bearer\s+/i, '').trim() + } + } + if (record.data != null) { + const nested = extractAuthToken(record.data) + if (nested) return nested + } + } + + return '' +} + +export function getStoredToken(): string { + const raw = (uni.getStorageSync(TOKEN_KEY) as string) || '' + return raw.replace(/^Bearer\s+/i, '').trim() +} + +export function saveStoredToken(token: string): string { + const normalized = token.replace(/^Bearer\s+/i, '').trim() + if (!normalized) { + throw new Error('empty token') + } + uni.setStorageSync(TOKEN_KEY, normalized) + return normalized +} + +export function clearStoredToken(): void { + uni.removeStorageSync(TOKEN_KEY) +} diff --git a/src/utils/bluetooth.ts b/src/utils/bluetooth.ts new file mode 100644 index 0000000..b90d1ad --- /dev/null +++ b/src/utils/bluetooth.ts @@ -0,0 +1,292 @@ +export class BluetoothError extends Error { + errCode?: number + + constructor(message: string, errCode?: number) { + super(message) + this.name = 'BluetoothError' + this.errCode = errCode + } +} + +type UniFail = UniApp.GeneralCallbackResult + +function toBluetoothError(err: UniFail, fallback: string): BluetoothError { + const msg = err.errMsg || fallback + return new BluetoothError(getBluetoothErrorMessage({ errCode: err.errCode, errMsg: msg }), err.errCode) +} + +export function isBluetoothApiSupported(): boolean { + return ( + typeof uni.openBluetoothAdapter === 'function' + && typeof uni.startBluetoothDevicesDiscovery === 'function' + && typeof uni.onBluetoothDeviceFound === 'function' + ) +} + +function openAdapter(): Promise { + return new Promise((resolve, reject) => { + uni.openBluetoothAdapter({ + success: () => resolve(), + fail: (err) => reject(toBluetoothError(err, '蓝牙初始化失败')), + }) + }) +} + +function getAdapterState(): Promise { + return new Promise((resolve, reject) => { + uni.getBluetoothAdapterState({ + success: (res) => resolve(res), + fail: (err) => reject(toBluetoothError(err, '获取蓝牙状态失败')), + }) + }) +} + +/** 初始化蓝牙适配器并确认可用 */ +export async function ensureBluetoothReady(): Promise { + if (!isBluetoothApiSupported()) { + throw new BluetoothError('当前环境不支持蓝牙,请使用 App 或微信小程序') + } + + try { + await openAdapter() + } catch (err) { + const btErr = err as BluetoothError + if (btErr.errCode !== 10001) { + try { + const state = await getAdapterState() + if (state.available) return + } catch { + // fall through + } + } + throw err + } + + const state = await getAdapterState() + if (!state.available) { + throw new BluetoothError('本机不支持蓝牙', 10009) + } +} + +export function startBluetoothDiscovery(): Promise { + if (typeof uni.startBluetoothDevicesDiscovery !== 'function') { + return Promise.reject(new BluetoothError('当前环境不支持蓝牙扫描')) + } + return new Promise((resolve, reject) => { + uni.startBluetoothDevicesDiscovery({ + allowDuplicatesKey: false, + success: () => resolve(), + fail: (err) => reject(toBluetoothError(err, '开始扫描失败')), + }) + }) +} + +export function stopBluetoothDiscovery(): Promise { + if (typeof uni.stopBluetoothDevicesDiscovery !== 'function') { + return Promise.resolve() + } + return new Promise((resolve, reject) => { + uni.stopBluetoothDevicesDiscovery({ + success: () => resolve(), + fail: (err) => reject(toBluetoothError(err, '停止扫描失败')), + }) + }) +} + +export function getDiscoveredBluetoothDevices(): Promise { + if (typeof uni.getBluetoothDevices !== 'function') { + return Promise.resolve([]) + } + return new Promise((resolve, reject) => { + uni.getBluetoothDevices({ + success: (res) => resolve(res.devices ?? []), + fail: (err) => reject(toBluetoothError(err, '获取已发现设备失败')), + }) + }) +} + +export function subscribeBluetoothDevicesFound( + onFound: (devices: UniApp.BluetoothDeviceInfo[]) => void, +): () => void { + if (typeof uni.onBluetoothDeviceFound !== 'function') { + return () => {} + } + + const handler = (res: UniApp.OnBluetoothDeviceFoundCallbackResult) => { + if (res.devices?.length) onFound(res.devices) + } + uni.onBluetoothDeviceFound(handler) + + return () => { + if (typeof uni.offBluetoothDeviceFound !== 'function') return + uni.offBluetoothDeviceFound(handler) + } +} + +const MAC_PATTERN = /^([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}$/ + +/** 规范化为大写 MAC(AA:BB:CC:DD:EE:FF) */ +export function normalizeMacAddress(value: string): string | undefined { + const trimmed = value.trim() + if (MAC_PATTERN.test(trimmed)) return trimmed.toUpperCase() + const compact = trimmed.replace(/[^0-9A-Fa-f]/g, '').toUpperCase() + if (compact.length !== 12) return undefined + return compact.replace(/(.{2})(?=.)/g, '$1:') +} + +/** 去掉分隔符的大写 MAC */ +export function compactMacAddress(value: string): string { + return value.replace(/[^0-9A-Fa-f]/g, '').toUpperCase() +} + +export function deviceMatchesMac( + device: UniApp.BluetoothDeviceInfo, + mac: string, +): boolean { + const target = compactMacAddress(mac) + if (!target) return false + + const deviceMac = normalizeMacAddress(device.deviceId) + if (deviceMac && compactMacAddress(deviceMac) === target) return true + + const compactId = compactMacAddress(device.deviceId) + return compactId === target +} + +/** RSSI → signalLevel:0离线 1弱 2一般 3强 */ +export function rssiToSignalLevel(rssi?: number): string { + if (rssi == null) return '0' + if (rssi >= -55) return '3' + if (rssi >= -70) return '2' + if (rssi >= -85) return '1' + return '0' +} + +export function createBleConnection(bleDeviceId: string): Promise { + if (typeof uni.createBLEConnection !== 'function') { + return Promise.reject(new BluetoothError('当前环境不支持蓝牙连接')) + } + return new Promise((resolve, reject) => { + uni.createBLEConnection({ + deviceId: bleDeviceId, + timeout: 10000, + success: () => resolve(), + fail: (err) => reject(toBluetoothError(err, '连接设备失败')), + }) + }) +} + +export function closeBleConnection(bleDeviceId: string): Promise { + if (typeof uni.closeBLEConnection !== 'function') { + return Promise.resolve() + } + return new Promise((resolve, reject) => { + uni.closeBLEConnection({ + deviceId: bleDeviceId, + success: () => resolve(), + fail: (err) => reject(toBluetoothError(err, '断开连接失败')), + }) + }) +} + +export function subscribeBleConnectionStateChange( + onChange: (res: { deviceId: string; connected: boolean }) => void, +): () => void { + if (typeof uni.onBLEConnectionStateChange !== 'function') { + return () => {} + } + uni.onBLEConnectionStateChange(onChange) + return () => { + if (typeof uni.offBLEConnectionStateChange !== 'function') return + uni.offBLEConnectionStateChange(onChange) + } +} + +/** 扫描并匹配指定 MAC 的 BLE 设备 */ +export async function scanForBleDeviceByMac( + mac: string, + options: { timeoutMs?: number } = {}, +): Promise { + const timeoutMs = options.timeoutMs ?? 15000 + const normalizedMac = normalizeMacAddress(mac) + if (!normalizedMac) return null + + await ensureBluetoothReady() + + let matched: UniApp.BluetoothDeviceInfo | null = null + + const pickMatch = (devices: UniApp.BluetoothDeviceInfo[]) => { + for (const device of devices) { + if (deviceMatchesMac(device, normalizedMac)) { + matched = device + return true + } + } + return false + } + + const existing = await getDiscoveredBluetoothDevices() + if (pickMatch(existing)) { + return matched + } + + const unsubscribe = subscribeBluetoothDevicesFound((devices) => { + pickMatch(devices) + }) + + try { + await startBluetoothDiscovery() + } catch (err) { + unsubscribe() + throw err + } + + const startedAt = Date.now() + while (!matched && Date.now() - startedAt < timeoutMs) { + await new Promise((resolve) => setTimeout(resolve, 300)) + const cached = await getDiscoveredBluetoothDevices() + if (pickMatch(cached)) break + } + + unsubscribe() + await stopBluetoothDiscovery().catch(() => {}) + return matched +} + +export function getBluetoothErrorMessage(err: unknown): string { + if (err instanceof BluetoothError) return err.message + + const code = (err as UniFail)?.errCode + const msg = (err as UniFail)?.errMsg + + switch (code) { + case 10001: + return '请先打开手机蓝牙后再试' + case 10002: + return '没有找到指定设备' + case 10003: + return '连接失败,请靠近设备后重试' + case 10004: + return '没有找到指定服务' + case 10005: + return '没有找到指定特征值' + case 10006: + return '当前连接已断开' + case 10007: + return '当前特征值不支持此操作' + case 10008: + return '蓝牙操作失败,请重试' + case 10009: + return '本机不支持低功耗蓝牙' + case 10010: + return '设备已连接' + case 10011: + return '配对设备需要配对码' + case 10012: + return '连接超时,请重试' + case 10013: + return '设备标识无效' + default: + return msg || '蓝牙不可用,请检查权限与系统设置' + } +} diff --git a/src/utils/static-assets.ts b/src/utils/static-assets.ts index 2d60f56..a8f1bda 100644 --- a/src/utils/static-assets.ts +++ b/src/utils/static-assets.ts @@ -4,8 +4,12 @@ import iconPhone from '@/static/icon-phone@2x.png' import iconCode from '@/static/icon-code@2x.png' import iconChecked from '@/static/icon-checked@2x.png' import iconPassword from '@/static/路径.png' +import iconDeviceDetailSettings from '@/static/路径1.png' +import deviceDetailHeroBg from '@/static/组 15226@2x.png' +import iconRunModeInfo from '@/static/组 15227@2x.png' import iconHomeSelector from '@/static/图标 4.png' import iconHomeArrow from '@/static/组 9.png' +import iconHomeSelected from '@/static/完成@2x.png' import iconNotify from '@/static/组 27.png' import iconDeviceEmpty from '@/static/图标 8.png' import iconDeviceNameEdit from '@/static/图标 9.png' @@ -33,10 +37,18 @@ export const staticAssets = { iconChecked, /** 路径.png — 密码框 */ iconPassword, + /** 路径1.png — 设备详情右上角设置 */ + iconDeviceDetailSettings, + /** 组 15226@2x.png — 设备详情页上半部分背景 */ + deviceDetailHeroBg, + /** 组 15227@2x.png — 设备详情「运行模式」旁提示图标 */ + iconRunModeInfo, /** 图标 4.png — 首页「我的家」 */ iconHomeSelector, /** 组 9.png — 「我的家」下拉箭头 */ iconHomeArrow, + /** 完成@2x.png — 「我的家」下拉选中图标 */ + iconHomeSelected, /** 组 27.png — 设备页右上角通知 */ iconNotify, /** 图标 8.png — 设备空状态中心图标 */ diff --git a/tmp-openapi.json b/tmp-openapi.json new file mode 100644 index 0000000..50acfa9 --- /dev/null +++ b/tmp-openapi.json @@ -0,0 +1 @@ +{"openapi":"3.1.0","info":{"title":"标题:RuoYi-Vue-Plus后台管理系统_接口文档","description":"描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...","contact":{"name":"Lion Li","url":"https://gitee.com/dromara/RuoYi-Vue-Plus","email":"crazylionli@163.com"},"version":"版本号: 6.0.0"},"servers":[{"url":"http://192.168.0.222:8082","description":"Generated server url"}],"tags":[{"name":"优先队列 演示案例","description":"优先队列 演示案例\n

\n 轻量级队列 重量级数据量 请使用 MQ\n

\n 集群测试通过 同一个消息只会被消费一次 做好事务补偿\n 集群测试流程 在其中一台发送数据 两端分别调用获取接口 一次获取一条"},{"name":"mqtt 演示案例","description":"mqtt 演示案例\n

\n 用法文档 ...\n 测试server搭建:\n 可执行下载其他mqtt服务端搭建\n 也可使用 mica自带的server搭建 ..."},{"name":"测试国际化","description":"测试国际化"},{"name":"岗位信息操作处理","description":"岗位信息操作处理"},{"name":"首页","description":"首页"},{"name":"任务管理 控制层","description":"任务管理 控制层"},{"name":"Redis 发布订阅 演示案例","description":"Redis 发布订阅 演示案例"},{"name":"MCP Client 演示案例。","description":"MCP Client 演示案例。\n

\n 这些接口不是 MCP 协议接口,只是为了在后台系统中手动触发 MCP Client 调用。\n 真实 MCP Server 入口由 Spring AI 挂载到 `/mcp`。\n

\n 调用示例:\n

\n 当 `spring.ai.mcp.client.enabled=false` 时,接口会返回提示,不影响应用启动。"},{"name":"App 家庭管理控制器","description":"App 家庭管理控制器\n

\n 提供家庭的增删查及默认家庭切换功能,所有接口均需登录态。"},{"name":"角色信息","description":"角色信息"},{"name":"数据字典信息","description":"数据字典信息"},{"name":"文件上传 控制层","description":"文件上传 控制层"},{"name":"App 房间位置管理控制器","description":"App 房间位置管理控制器\n

\n 提供房间内房间位置的增删查改功能,所有接口均需登录态。\n 位置归属于家庭,操作时会自动校验当前用户对该家庭的所有权。"},{"name":"邮件发送案例","description":"邮件发送案例"},{"name":"spring-cache 演示案例","description":"spring-cache 演示案例"},{"name":"WebSocket 演示案例","description":"WebSocket 演示案例"},{"name":"测试数据库加解密功能","description":"测试数据库加解密功能"},{"name":"请假示例控制器,演示业务单据与流程引擎联动的典型用法。","description":"请假示例控制器,演示业务单据与流程引擎联动的典型用法。"},{"name":"流程定义管理 控制层","description":"流程定义管理 控制层"},{"name":"测试单表Controller","description":"测试单表Controller"},{"name":"部门信息","description":"部门信息"},{"name":"参数配置 信息操作处理","description":"参数配置 信息操作处理"},{"name":"App 设备控制器","description":"App 设备控制器\n

\n 提供设备绑定等接口,所有接口均需登录态。"},{"name":"测试分布式限流样例","description":"测试分布式限流样例"},{"name":"测试批量方法","description":"测试批量方法"},{"name":"SSE 控制器","description":"SSE 控制器"},{"name":"App 用户认证控制器","description":"App 用户认证控制器\n

\n 公开接口使用 {@link SaIgnore SaIgnore} 放行;退出接口需要登录态。"},{"name":"验证码操作处理","description":"验证码操作处理"},{"name":"用户信息","description":"用户信息"},{"name":"对象存储配置","description":"对象存储配置"},{"name":"测试数据脱敏控制器","description":"测试数据脱敏控制器\n

\n 默认管理员不过滤\n 需自行根据业务重写实现"},{"name":"个人信息 业务处理","description":"个人信息 业务处理"},{"name":"后台设备管理。","description":"后台设备管理。"},{"name":"流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。","description":"流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。"},{"name":"Snail AI OpenAPI 控制器","description":"Snail AI OpenAPI 控制器"},{"name":"菜单信息","description":"菜单信息"},{"name":"测试树表Controller","description":"测试树表Controller"},{"name":"流程实例管理 控制层","description":"流程实例管理 控制层"},{"name":"认证控制器,提供登录、注册、社交绑定和退出能力。","description":"认证控制器,提供登录、注册、社交绑定和退出能力。"},{"name":"社会化关系","description":"社会化关系"},{"name":"流程分类","description":"流程分类"},{"name":"系统访问记录","description":"系统访问记录"},{"name":"swagger3 用法示例","description":"swagger3 用法示例"},{"name":"App 用户资料控制器","description":"App 用户资料控制器"},{"name":"在线用户监控","description":"在线用户监控"},{"name":"短信演示案例","description":"短信演示案例\n 请先阅读文档 否则无法使用"},{"name":"SaToken 权限测试 接口文档输出测试","description":"SaToken 权限测试 接口文档输出测试"},{"name":"测试Excel功能","description":"测试Excel功能"},{"name":"操作日志记录","description":"操作日志记录"},{"name":"缓存监控","description":"缓存监控"},{"name":"公告 信息操作处理","description":"公告 信息操作处理"},{"name":"消息记录控制器","description":"消息记录控制器"},{"name":"客户端管理","description":"客户端管理"},{"name":"测试分布式锁的样例","description":"测试分布式锁的样例"}],"paths":{"/workflow/task/updateAssignee/{userId}":{"put":{"tags":["任务管理 控制层"],"summary":"批量修改任务办理人。","description":"批量修改任务办理人。

访问权限


**权限校验:**

- `workflow:task:edit`

","operationId":"updateAssignee","parameters":[{"name":"userId","in":"path","description":"办理人id","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"任务id","content":{"application/json":{"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/spel":{"put":{"tags":["流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。"],"summary":"修改流程 SpEL 表达式定义。","description":"修改流程 SpEL 表达式定义。

访问权限


**权限校验:**

- `workflow:spel:edit`

","operationId":"edit","requestBody":{"description":"表达式信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowSpelBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。"],"summary":"新增流程 SpEL 表达式定义。","description":"新增流程 SpEL 表达式定义。

访问权限


**权限校验:**

- `workflow:spel:add`

","operationId":"add","requestBody":{"description":"表达式信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowSpelBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/leave":{"put":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"修改请假单。","description":"修改请假单。

访问权限


**权限校验:**

- `workflow:leave:edit`

","operationId":"edit_1","requestBody":{"description":"请假信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"修改后的请假单","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}},"post":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"新增请假单。","description":"新增请假单。

访问权限


**权限校验:**

- `workflow:leave:add`

","operationId":"add_1","requestBody":{"description":"请假信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"新增后的请假单","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}}},"/workflow/instance/updateVariable":{"put":{"tags":["流程实例管理 控制层"],"summary":"修改流程变量。","description":"修改流程变量。

访问权限


**权限校验:**

- `workflow:instance:variable`

","operationId":"updateVariable","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowVariableBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/cancelProcessApply":{"put":{"tags":["流程实例管理 控制层"],"summary":"撤销当前申请人发起的流程。","description":"撤销当前申请人发起的流程。

访问权限


**权限校验:**

- `workflow:instance:cancel`

","operationId":"cancelProcessApply","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowCancelBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/active/{id}":{"put":{"tags":["流程实例管理 控制层"],"summary":"激活或挂起流程实例。","description":"激活或挂起流程实例。

访问权限


**权限校验:**

- `workflow:instance:active`

","operationId":"active","parameters":[{"name":"id","in":"path","description":"流程实例id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"active","in":"query","description":"激活/挂起","required":true,"schema":{"type":"boolean"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"处理结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition":{"put":{"tags":["流程定义管理 控制层"],"summary":"修改流程定义。","description":"修改流程定义。

访问权限


**权限校验:**

- `workflow:definition:edit`

","operationId":"edit_2","requestBody":{"description":"流程定义信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDefinition"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}},"post":{"tags":["流程定义管理 控制层"],"summary":"新增流程定义并执行格式校验。","description":"新增流程定义并执行格式校验。

访问权限


**权限校验:**

- `workflow:definition:add`

","operationId":"add_2","requestBody":{"description":"流程定义信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDefinition"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/unPublish/{id}":{"put":{"tags":["流程定义管理 控制层"],"summary":"取消发布流程定义。","description":"取消发布流程定义。

访问权限


**权限校验:**

- `workflow:definition:publish`

","operationId":"unPublish","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/publish/{id}":{"put":{"tags":["流程定义管理 控制层"],"summary":"发布流程定义,使其进入可用状态。","description":"发布流程定义,使其进入可用状态。

访问权限


**权限校验:**

- `workflow:definition:publish`

","operationId":"publish","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"发布结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/active/{id}":{"put":{"tags":["流程定义管理 控制层"],"summary":"激活或挂起流程定义。","description":"激活或挂起流程定义。

访问权限


**权限校验:**

- `workflow:definition:active`

","operationId":"active_1","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"active","in":"query","description":"激活/挂起","required":true,"schema":{"type":"boolean"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"处理结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/category":{"put":{"tags":["流程分类"],"summary":"修改流程分类,并校验名称唯一及父子关系合法性。","description":"修改流程分类,并校验名称唯一及父子关系合法性。

访问权限


**权限校验:**

- `workflow:category:edit`

","operationId":"edit_3","requestBody":{"description":"分类信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["流程分类"],"summary":"新增流程分类,并校验分类名称唯一性。","description":"新增流程分类,并校验分类名称唯一性。

访问权限


**权限校验:**

- `workflow:category:add`

","operationId":"add_3","requestBody":{"description":"分类信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user":{"put":{"tags":["用户信息"],"summary":"修改用户。","description":"修改用户。

访问权限


**权限校验:**

- `system:user:edit`

","operationId":"edit_4","requestBody":{"description":"用户编辑参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["用户信息"],"summary":"新增用户。","description":"新增用户。

访问权限


**权限校验:**

- `system:user:add`

","operationId":"add_4","requestBody":{"description":"用户新增参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/resetPwd":{"put":{"tags":["用户信息"],"summary":"重置指定用户密码。","description":"重置指定用户密码。

访问权限


**权限校验:**

- `system:user:resetPwd`

","operationId":"resetPwd","requestBody":{"description":"用户参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/profile":{"get":{"tags":["个人信息 业务处理"],"summary":"获取当前登录用户的个人中心信息。","description":"获取当前登录用户的个人中心信息。","operationId":"profile","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户信息、角色组和岗位组","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RProfileVo"}}}}}},"put":{"tags":["个人信息 业务处理"],"summary":"修改当前登录用户的个人资料。","description":"修改当前登录用户的个人资料。","operationId":"updateProfile","requestBody":{"description":"个人资料参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserProfileBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/profile/updatePwd":{"put":{"tags":["个人信息 业务处理"],"summary":"重置密码","description":"重置密码","operationId":"updatePwd","requestBody":{"description":"新旧密码","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserPasswordBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/changeStatus":{"put":{"tags":["用户信息"],"summary":"修改用户状态。","description":"修改用户状态。

访问权限


**权限校验:**

- `system:user:edit`

","operationId":"changeStatus","requestBody":{"description":"用户参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/authRole":{"put":{"tags":["用户信息"],"summary":"用户授权角色","description":"用户授权角色

访问权限


**权限校验:**

- `system:user:edit`

","operationId":"insertAuthRole","parameters":[{"name":"userId","in":"query","description":"用户Id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"roleIds","in":"query","description":"角色ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role":{"put":{"tags":["角色信息"],"summary":"修改角色基础信息(不包含菜单权限、数据权限)。","description":"修改角色基础信息(不包含菜单权限、数据权限)。

访问权限


**权限校验:**

- `system:role:edit`

","operationId":"edit_5","requestBody":{"description":"角色参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["角色信息"],"summary":"新增角色。","description":"新增角色。

访问权限


**权限校验:**

- `system:role:add`

","operationId":"add_5","requestBody":{"description":"角色参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/permission":{"put":{"tags":["角色信息"],"summary":"修改角色权限信息(菜单权限 + 数据权限)。","description":"修改角色权限信息(菜单权限 + 数据权限)。

访问权限


**权限校验:**

- `system:role:edit`

","operationId":"editPermission","requestBody":{"description":"角色参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/changeStatus":{"put":{"tags":["角色信息"],"summary":"修改角色状态。","description":"修改角色状态。

访问权限


**权限校验:**

- `system:role:edit`

","operationId":"changeStatus_1","requestBody":{"description":"角色参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysRoleBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/authUser/selectAll":{"put":{"tags":["角色信息"],"summary":"批量选择用户授权","description":"批量选择用户授权

访问权限


**权限校验:**

- `system:role:edit`

","operationId":"selectAuthUserAll","parameters":[{"name":"roleId","in":"query","description":"角色ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"userIds","in":"query","description":"用户ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/authUser/cancel":{"put":{"tags":["角色信息"],"summary":"取消授权用户。","description":"取消授权用户。

访问权限


**权限校验:**

- `system:role:edit`

","operationId":"cancelAuthUser","requestBody":{"description":"用户角色关系","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysUserRole"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/authUser/cancelAll":{"put":{"tags":["角色信息"],"summary":"批量取消授权用户","description":"批量取消授权用户

访问权限


**权限校验:**

- `system:role:edit`

","operationId":"cancelAuthUserAll","parameters":[{"name":"roleId","in":"query","description":"角色ID","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"userIds","in":"query","description":"用户ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/post":{"put":{"tags":["岗位信息操作处理"],"summary":"修改岗位。","description":"修改岗位。

访问权限


**权限校验:**

- `system:post:edit`

","operationId":"edit_6","requestBody":{"description":"岗位参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysPostBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["岗位信息操作处理"],"summary":"新增岗位。","description":"新增岗位。

访问权限


**权限校验:**

- `system:post:add`

","operationId":"add_6","requestBody":{"description":"岗位参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysPostBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/notice":{"put":{"tags":["公告 信息操作处理"],"summary":"修改通知公告。","description":"修改通知公告。

访问权限


**权限校验:**

- `system:notice:edit`

","operationId":"edit_7","requestBody":{"description":"公告参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysNoticeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["公告 信息操作处理"],"summary":"新增通知公告,并向在线用户广播公告摘要。","description":"新增通知公告,并向在线用户广播公告摘要。

访问权限


**权限校验:**

- `system:notice:add`

","operationId":"add_7","requestBody":{"description":"公告参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysNoticeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/menu":{"put":{"tags":["菜单信息"],"summary":"修改菜单。","description":"修改菜单。

访问权限


**权限校验:**

- `system:menu:edit`

**角色校验:**

- `superadmin`
","operationId":"edit_8","requestBody":{"description":"菜单参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysMenuBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["菜单信息"],"summary":"新增菜单。","description":"新增菜单。

访问权限


**权限校验:**

- `system:menu:add`

**角色校验:**

- `superadmin`
","operationId":"add_8","requestBody":{"description":"菜单参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysMenuBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/type":{"put":{"tags":["数据字典信息"],"summary":"修改字典类型。","description":"修改字典类型。

访问权限


**权限校验:**

- `system:dict:edit`

","operationId":"edit_9","requestBody":{"description":"字典类型参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["数据字典信息"],"summary":"新增字典类型。","description":"新增字典类型。

访问权限


**权限校验:**

- `system:dict:add`

","operationId":"add_9","requestBody":{"description":"字典类型参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/data":{"put":{"tags":["数据字典信息"],"summary":"修改字典数据。","description":"修改字典数据。

访问权限


**权限校验:**

- `system:dict:edit`

","operationId":"edit_10","requestBody":{"description":"字典数据参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictDataBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["数据字典信息"],"summary":"新增字典数据。","description":"新增字典数据。

访问权限


**权限校验:**

- `system:dict:add`

","operationId":"add_10","requestBody":{"description":"字典数据参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDictDataBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dept":{"put":{"tags":["部门信息"],"summary":"修改部门。","description":"修改部门。

访问权限


**权限校验:**

- `system:dept:edit`

","operationId":"edit_11","requestBody":{"description":"部门参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDeptBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["部门信息"],"summary":"新增部门。","description":"新增部门。

访问权限


**权限校验:**

- `system:dept:add`

","operationId":"add_11","requestBody":{"description":"部门参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysDeptBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config":{"put":{"tags":["参数配置 信息操作处理"],"summary":"修改参数配置。","description":"修改参数配置。

访问权限


**权限校验:**

- `system:config:edit`

","operationId":"edit_12","requestBody":{"description":"参数配置","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["参数配置 信息操作处理"],"summary":"新增参数配置。","description":"新增参数配置。

访问权限


**权限校验:**

- `system:config:add`

","operationId":"add_12","requestBody":{"description":"参数配置","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config/updateByKey":{"put":{"tags":["参数配置 信息操作处理"],"summary":"根据参数键名修改参数配置。","description":"根据参数键名修改参数配置。

访问权限


**权限校验:**

- `system:config:edit`

","operationId":"updateByKey","requestBody":{"description":"参数配置","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/client":{"put":{"tags":["客户端管理"],"summary":"修改客户端配置,避免重复占用同一个客户端 key。","description":"修改客户端配置,避免重复占用同一个客户端 key。

访问权限


**权限校验:**

- `system:client:edit`

","operationId":"edit_13","requestBody":{"description":"客户端信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysClientBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["客户端管理"],"summary":"新增客户端配置,入库前先校验客户端 key 是否唯一。","description":"新增客户端配置,入库前先校验客户端 key 是否唯一。

访问权限


**权限校验:**

- `system:client:add`

","operationId":"add_13","requestBody":{"description":"客户端信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysClientBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/client/changeStatus":{"put":{"tags":["客户端管理"],"summary":"修改客户端启停状态。","description":"修改客户端启停状态。

访问权限


**权限校验:**

- `system:client:edit`

","operationId":"changeStatus_2","requestBody":{"description":"客户端状态信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysClientBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/config":{"put":{"tags":["对象存储配置"],"summary":"修改对象存储配置。","description":"修改对象存储配置。

访问权限


**权限校验:**

- `system:ossConfig:edit`

","operationId":"edit_14","requestBody":{"description":"配置信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["对象存储配置"],"summary":"新增对象存储配置。","description":"新增对象存储配置。

访问权限


**权限校验:**

- `system:ossConfig:add`

","operationId":"add_14","requestBody":{"description":"配置信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/config/changeStatus":{"put":{"tags":["对象存储配置"],"summary":"切换对象存储配置启用状态,并同步更新当前生效配置。","description":"切换对象存储配置启用状态,并同步更新当前生效配置。

访问权限


**权限校验:**

- `system:ossConfig:edit`

","operationId":"changeStatus_3","requestBody":{"description":"状态变更信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/device/device":{"put":{"tags":["后台设备管理。"],"summary":"修改设备名称、房间和备注。","description":"修改设备名称、房间和备注。

访问权限


**权限校验:**

- `device:device:edit`

","operationId":"edit_15","requestBody":{"description":"设备档案","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CzDeviceBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["后台设备管理。"],"summary":"新增设备档案。","description":"新增设备档案。

访问权限


**权限校验:**

- `device:device:add`

","operationId":"add_15","requestBody":{"description":"设备档案","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CzDeviceBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/tree":{"put":{"tags":["测试树表Controller"],"summary":"修改测试树表","description":"修改测试树表

访问权限


**权限校验:**

- `demo:tree:edit`

","operationId":"edit_16","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestTreeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["测试树表Controller"],"summary":"新增测试树表","description":"新增测试树表

访问权限


**权限校验:**

- `demo:tree:add`

","operationId":"add_16","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestTreeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/demo":{"put":{"tags":["测试单表Controller"],"summary":"修改测试单表","description":"修改测试单表

访问权限


**权限校验:**

- `demo:demo:edit`

","operationId":"edit_17","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDemoBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}},"post":{"tags":["测试单表Controller"],"summary":"新增测试单表","description":"新增测试单表

访问权限


**权限校验:**

- `demo:demo:add`

","operationId":"add_17","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestDemoBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/home/setDefault/{homeId}":{"put":{"tags":["App 家庭管理控制器"],"summary":"切换默认家庭\n ","description":"切换默认家庭\n

\n 将指定家庭设为默认,同时取消其他家庭的默认标识。","operationId":"setDefaultHome","parameters":[{"name":"homeId","in":"path","description":"要设为默认的家庭ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/api/snail/chat/conversations":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"listConversations","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":1}},{"name":"size","in":"query","required":false,"schema":{"type":"integer","format":"int32","default":50}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResultListOpenApiConversationVO"}}}}}},"put":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"updateConversationTitle","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiConversationUpdateTitleRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}},"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"createConversation","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiCreateConversationRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiConversationVO"}}}}}},"delete":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"deleteConversation","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"conversationId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/workflow/task/urgeTask":{"post":{"tags":["任务管理 控制层"],"summary":"催办任务。","description":"催办任务。

访问权限


**权限校验:**

- `workflow:task:edit`

","operationId":"urgeTask","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowUrgeTaskBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/task/terminationTask":{"post":{"tags":["任务管理 控制层"],"summary":"终止流程任务。","description":"终止流程任务。","operationId":"terminationTask","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowTerminationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"处理结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/task/taskOperation/{taskOperation}":{"post":{"tags":["任务管理 控制层"],"summary":"执行任务操作,例如委派、转办、加签或减签。","description":"执行任务操作,例如委派、转办、加签或减签。","operationId":"taskOperation","parameters":[{"name":"taskOperation","in":"path","description":"操作类型,委派 delegateTask、转办 transferTask、加签 addSignature、减签 reductionSignature","required":true,"schema":{"type":"string"}}],"requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TaskOperationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/task/startWorkFlow":{"post":{"tags":["任务管理 控制层"],"summary":"启动流程任务。","description":"启动流程任务。","operationId":"startWorkFlow","requestBody":{"description":"启动流程参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StartProcessBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"启动结果及后续流程信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RStartProcessReturnDTO"}}}}}}},"/workflow/task/getNextNodeList":{"post":{"tags":["任务管理 控制层"],"summary":"获取流程下一节点信息。","description":"获取流程下一节点信息。","operationId":"getNextNodeList","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowNextNodeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"下一节点列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListFlowNode"}}}}}}},"/workflow/task/completeTask":{"post":{"tags":["任务管理 控制层"],"summary":"办理当前任务节点。","description":"办理当前任务节点。","operationId":"completeTask","requestBody":{"description":"办理任务参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteTaskBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/task/backProcess":{"post":{"tags":["任务管理 控制层"],"summary":"驳回审批到前置节点。","description":"驳回审批到前置节点。","operationId":"backProcess","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BackProcessBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/leave/submitAndFlowStart":{"post":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"提交请假单并同步发起流程。","description":"提交请假单并同步发起流程。

访问权限


**权限校验:**

- `workflow:leave:add`

","operationId":"submitAndFlowStart","requestBody":{"description":"请假信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"提交后的请假单","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}}},"/workflow/leave/export":{"post":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"导出请假列表。","description":"导出请假列表。

访问权限


**权限校验:**

- `workflow:leave:export`

","operationId":"export","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/TestLeaveBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/workflow/instance/invalid":{"post":{"tags":["流程实例管理 控制层"],"summary":"作废流程实例。","description":"作废流程实例。

访问权限


**权限校验:**

- `workflow:instance:invalid`

","operationId":"invalid","requestBody":{"description":"参数","content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowInvalidBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"处理结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/importDef":{"post":{"tags":["流程定义管理 控制层"],"summary":"通过文件导入流程定义。","description":"通过文件导入流程定义。

访问权限


**权限校验:**

- `workflow:definition:import`

","operationId":"importDef","parameters":[{"name":"file","in":"query","description":"文件","required":true,"schema":{"type":"string","format":"binary"}},{"name":"category","in":"query","description":"分类","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"导入结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/definition/exportDef/{id}":{"post":{"tags":["流程定义管理 控制层"],"summary":"导出流程定义文件。","description":"导出流程定义文件。

访问权限


**权限校验:**

- `workflow:definition:export`

","operationId":"exportDef","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK"}}}},"/workflow/definition/copy/{id}":{"post":{"tags":["流程定义管理 控制层"],"summary":"复制一份流程定义,便于快速创建相似流程。","description":"复制一份流程定义,便于快速创建相似流程。

访问权限


**权限校验:**

- `workflow:definition:copy`

","operationId":"copy","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"复制结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/workflow/category/export":{"post":{"tags":["流程分类"],"summary":"导出流程分类列表。","description":"导出流程分类列表。

访问权限


**权限校验:**

- `workflow:category:export`

","operationId":"export_1","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/warm-flow/save-json":{"post":{"tags":["warm-flow-controller"],"operationId":"saveJson","parameters":[{"name":"onlyNodeSkip","in":"header","required":true,"schema":{"type":"boolean"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DefJson"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/warm-flow/form-content":{"post":{"tags":["warm-flow-controller"],"operationId":"saveFormContent","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/FlowDto"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultVoid"}}}}}}},"/warm-flow/execute/handle":{"post":{"tags":["warm-flow-controller"],"operationId":"handle","parameters":[{"name":"taskId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"skipType","in":"query","required":true,"schema":{"type":"string"}},{"name":"message","in":"query","required":true,"schema":{"type":"string"}},{"name":"nodeCode","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","additionalProperties":{}}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultInstance"}}}}}}},"/system/user/importTemplate":{"post":{"tags":["用户信息"],"summary":"导出用户导入模板。","description":"导出用户导入模板。","operationId":"importTemplate","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/user/importData":{"post":{"tags":["用户信息"],"summary":"导入数据","description":"导入数据

访问权限


**权限校验:**

- `system:user:import`

","operationId":"importData","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"导入文件"},"updateSupport":{"type":"boolean","description":"是否更新已存在数据"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/export":{"post":{"tags":["用户信息"],"summary":"导出符合条件的用户列表。","description":"导出符合条件的用户列表。

访问权限


**权限校验:**

- `system:user:export`

","operationId":"export_2","parameters":[{"name":"user","in":"query","description":"用户查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/role/export":{"post":{"tags":["角色信息"],"summary":"导出角色信息列表。","description":"导出角色信息列表。

访问权限


**权限校验:**

- `system:role:export`

","operationId":"export_3","parameters":[{"name":"role","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysRoleBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/post/export":{"post":{"tags":["岗位信息操作处理"],"summary":"导出岗位列表。","description":"导出岗位列表。

访问权限


**权限校验:**

- `system:post:export`

","operationId":"export_4","parameters":[{"name":"post","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysPostBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/dict/type/export":{"post":{"tags":["数据字典信息"],"summary":"导出字典类型列表。","description":"导出字典类型列表。

访问权限


**权限校验:**

- `system:dict:export`

","operationId":"export_5","parameters":[{"name":"dictType","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/dict/data/export":{"post":{"tags":["数据字典信息"],"summary":"导出字典数据列表。","description":"导出字典数据列表。

访问权限


**权限校验:**

- `system:dict:export`

","operationId":"export_6","parameters":[{"name":"dictData","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDictDataBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/config/export":{"post":{"tags":["参数配置 信息操作处理"],"summary":"导出参数配置列表。","description":"导出参数配置列表。

访问权限


**权限校验:**

- `system:config:export`

","operationId":"export_7","parameters":[{"name":"config","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysConfigBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/system/client/export":{"post":{"tags":["客户端管理"],"summary":"导出客户端管理列表,便于离线审计与配置核查。","description":"导出客户端管理列表,便于离线审计与配置核查。

访问权限


**权限校验:**

- `system:client:export`

","operationId":"export_8","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysClientBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/swagger/demo/upload":{"post":{"tags":["swagger3 用法示例"],"summary":"上传请求\n 必须使用 @RequestPart 注解标注为文件","description":"上传请求\n 必须使用 @RequestPart 注解标注为文件","operationId":"upload","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"导入文件"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/snail-ai/user/register":{"post":{"tags":["Snail AI OpenAPI 控制器"],"summary":"注册当前登录用户并返回 OpenAPI 用户信息。","description":"注册当前登录用户并返回 OpenAPI 用户信息。","operationId":"registerCurrentUser","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ROpenApiUserVO"}}}}}}},"/resource/oss/upload":{"post":{"tags":["文件上传 控制层"],"summary":"上传OSS对象存储","description":"上传OSS对象存储

访问权限


**权限校验:**

- `system:oss:upload`

","operationId":"upload_1","parameters":[{"name":"ossExt","in":"query","required":false,"schema":{"type":"string"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"导入文件"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"上传结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysOssUploadVo"}}}}}}},"/monitor/operlog/export":{"post":{"tags":["操作日志记录"],"summary":"导出操作日志记录列表。","description":"导出操作日志记录列表。

访问权限


**权限校验:**

- `monitor:operlog:export`

","operationId":"export_9","parameters":[{"name":"operLog","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysOperLogBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/monitor/loginInfo/export":{"post":{"tags":["系统访问记录"],"summary":"导出系统访问记录列表。","description":"导出系统访问记录列表。

访问权限


**权限校验:**

- `monitor:logininfo:export`

","operationId":"export_10","parameters":[{"name":"loginInfo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysLoginInfoBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/device/device/export":{"post":{"tags":["后台设备管理。"],"summary":"导出设备。","description":"导出设备。

访问权限


**权限校验:**

- `device:device:export`

","operationId":"export_11","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/CzDeviceBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/importWithOptions":{"post":{"tags":["测试Excel功能"],"summary":"导入表格","description":"导入表格","operationId":"importWithOptions","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"导入文件"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ExportDemoVo"}}}}}}}},"/demo/demo/importData":{"post":{"tags":["测试单表Controller"],"summary":"导入数据","description":"导入数据

访问权限


**权限校验:**

- `demo:demo:import`

","operationId":"importData_1","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"导入文件"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/demo/export":{"post":{"tags":["测试单表Controller"],"summary":"导出测试单表列表","description":"导出测试单表列表

访问权限


**权限校验:**

- `demo:demo:export`

","operationId":"export_12","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestDemoBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/batch/add":{"post":{"tags":["测试批量方法"],"summary":"新增批量方法 可完美替代 saveBatch 秒级插入上万数据 (对mysql负荷较大)\n ","description":"新增批量方法 可完美替代 saveBatch 秒级插入上万数据 (对mysql负荷较大)\n

\n 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度","operationId":"add_18","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/batch/addOrUpdate":{"post":{"tags":["测试批量方法"],"summary":"新增或更新 可完美替代 saveOrUpdateBatch 高性能\n ","description":"新增或更新 可完美替代 saveOrUpdateBatch 高性能\n

\n 3.5.0 版本 增加 rewriteBatchedStatements=true 批处理参数 使 MP 原生批处理可以达到同样的速度","operationId":"addOrUpdate","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/social/callback":{"post":{"tags":["认证控制器,提供登录、注册、社交绑定和退出能力。"],"summary":"处理前端回调后的社交账号绑定。","description":"处理前端回调后的社交账号绑定。

访问权限


> **权限策略**:忽略权限检查
","operationId":"socialCallback","requestBody":{"description":"请求体","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialLoginBody"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/register":{"post":{"tags":["认证控制器,提供登录、注册、社交绑定和退出能力。"],"summary":"用户注册。","description":"用户注册。

访问权限


> **权限策略**:忽略权限检查
","operationId":"register","requestBody":{"description":"注册信息","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterBody"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/logout":{"post":{"tags":["认证控制器,提供登录、注册、社交绑定和退出能力。"],"summary":"退出登录","description":"退出登录

访问权限


> **权限策略**:忽略权限检查
","operationId":"logout","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/login":{"post":{"tags":["认证控制器,提供登录、注册、社交绑定和退出能力。"],"summary":"登录方法","description":"登录方法

访问权限


> **权限策略**:忽略权限检查
","operationId":"login","requestBody":{"description":"登录信息","content":{"application/json":{"schema":{"type":"string"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RLoginVo"}}}}}}},"/app/profile/update":{"post":{"tags":["App 用户资料控制器"],"summary":"修改用户资料","description":"修改用户资料","operationId":"updateProfile_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProfileBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/profile/avatar":{"post":{"tags":["App 用户资料控制器"],"summary":"上传用户头像到 OSS","description":"上传用户头像到 OSS","operationId":"uploadAvatar","requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","description":"导入文件"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAvatarUploadVo"}}}}}}},"/app/location/update":{"post":{"tags":["App 房间位置管理控制器"],"summary":"修改房间位置名称\n ","description":"修改房间位置名称\n

\n 支持修改位置名称、图标和排序值,同一家庭下位置名称不可重复。","operationId":"updateLocation","requestBody":{"description":"修改位置请求参数(位置ID、位置名称 1-10 个字符、可选图标与排序)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateLocationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/location/create":{"post":{"tags":["App 房间位置管理控制器"],"summary":"创建新的房间位置\n ","description":"创建新的房间位置\n

\n 在同一家庭下位置名称不可重复。","operationId":"createLocation","requestBody":{"description":"创建位置请求参数(家庭ID、位置名称 1-10 个字符、可选图标与排序)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLocationBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/home/create":{"post":{"tags":["App 家庭管理控制器"],"summary":"创建新家庭\n ","description":"创建新家庭\n

\n 创建后自动初始化一个\"客厅\"位置,家庭名称在同一用户下不可重复。","operationId":"createHome","requestBody":{"description":"创建家庭请求参数(家庭名称,2-10个字符)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateHomeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/device/updateRuntime":{"post":{"tags":["App 设备控制器"],"summary":"更新设备运行数据\n ","description":"更新设备运行数据\n

\n 前端通过蓝牙同步设备运行状态,更新设备基础状态和净化器运行数据。","operationId":"updateDeviceRuntime","requestBody":{"description":"更新参数(设备ID必填,其余字段按需传入)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeviceRuntimeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/device/runtime":{"post":{"tags":["App 设备控制器"],"summary":"查询设备运行数据\n ","description":"查询设备运行数据\n

\n 根据设备ID查询设备运行状态及净化器数据。","operationId":"getDeviceRuntime","requestBody":{"description":"查询参数(设备ID)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceRuntimeQueryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"设备运行数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppDeviceRuntimeVo"}}}}}}},"/app/device/list":{"post":{"tags":["App 设备控制器"],"summary":"查询当前用户的设备列表\n ","description":"查询当前用户的设备列表\n

\n 支持按家庭ID和位置ID过滤,返回设备信息及净化器运行数据。","operationId":"listDevices","requestBody":{"description":"查询参数(家庭ID、位置ID,均可选)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceQueryBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"设备列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAppDeviceVo"}}}}}}},"/app/device/bind":{"post":{"tags":["App 设备控制器"],"summary":"绑定设备\n ","description":"绑定设备\n

\n 前端通过蓝牙配对设备后,根据设备编号绑定当前用户。\n 若设备已存在则直接绑定,不存在则先新增设备再绑定。","operationId":"bindDevice","requestBody":{"description":"绑定请求参数(设备编号及蓝牙配对信息)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeviceBindBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/sendSmsCode":{"post":{"tags":["App 用户认证控制器"],"summary":"发送短信验证码","description":"发送短信验证码

访问权限


> **权限策略**:忽略权限检查
","operationId":"sendSmsCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SendSmsCodeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/register":{"post":{"tags":["App 用户认证控制器"],"summary":"注册(手机号、验证码、密码、确认密码)","description":"注册(手机号、验证码、密码、确认密码)

访问权限


> **权限策略**:忽略权限检查
","operationId":"register_1","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RegisterBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppLoginVo"}}}}}}},"/app/auth/logout":{"post":{"tags":["App 用户认证控制器"],"summary":"退出登录","description":"退出登录","operationId":"logout_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/login/sms":{"post":{"tags":["App 用户认证控制器"],"summary":"短信验证码登录","description":"短信验证码登录

访问权限


> **权限策略**:忽略权限检查
","operationId":"loginBySms","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginSmsBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppLoginVo"}}}}}}},"/app/auth/login/password":{"post":{"tags":["App 用户认证控制器"],"summary":"账号密码登录(账号支持用户名或手机号)","description":"账号密码登录(账号支持用户名或手机号)

访问权限


> **权限策略**:忽略权限检查
","operationId":"loginByPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LoginPasswordBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppLoginVo"}}}}}}},"/app/auth/forgetPassword/verifyCode":{"post":{"tags":["App 用户认证控制器"],"summary":"忘记密码第一步:校验手机号和短信验证码,返回重置令牌","description":"忘记密码第一步:校验手机号和短信验证码,返回重置令牌

访问权限


> **权限策略**:忽略权限检查
","operationId":"verifyResetCode","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyResetSmsCodeBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/app/auth/forgetPassword/doReset":{"post":{"tags":["App 用户认证控制器"],"summary":"忘记密码第二步:凭重置令牌和两次新密码完成重置","description":"忘记密码第二步:凭重置令牌和两次新密码完成重置

访问权限


> **权限策略**:忽略权限检查
","operationId":"doResetPassword","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DoResetPasswordBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/changePhone/verifyOld":{"post":{"tags":["App 用户认证控制器"],"summary":"换绑手机号第一步:校验原手机号验证码","description":"换绑手机号第一步:校验原手机号验证码","operationId":"verifyOldPhoneNumber","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyOldPhoneBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/app/auth/changePhone/verifyNew":{"post":{"tags":["App 用户认证控制器"],"summary":"换绑手机号第二步:校验新手机号验证码并更新","description":"换绑手机号第二步:校验新手机号验证码并更新","operationId":"verifyNewPhoneNumberAndUpdate","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/VerifyNewPhoneBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/cancelAccount":{"post":{"tags":["App 用户认证控制器"],"summary":"注销账号","description":"注销账号","operationId":"cancelAccount","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/auth/agreements":{"post":{"tags":["App 用户认证控制器"],"summary":"获取生效的协议配置列表\n ","description":"获取生效的协议配置列表\n

\n 无需登录,返回所有已生效协议的基本信息(ID、类型、编号、版本号、名称)。

访问权限


> **权限策略**:忽略权限检查
","operationId":"listActiveAgreements","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"生效的协议列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAgreementVo"}}}}}}},"/app/auth/agreement/detail":{"post":{"tags":["App 用户认证控制器"],"summary":"获取协议详情\n ","description":"获取协议详情\n

\n 无需登录,根据协议ID返回协议编号、名称、版本号、协议正文及生效时间。

访问权限


> **权限策略**:忽略权限检查
","operationId":"getAgreementDetail","requestBody":{"description":"协议ID","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgreementIdBo"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"协议详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAgreementDetailVo"}}}}}}},"/api/snail/chat/session":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"session","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiEmbedTokenRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiEmbedTokenResponse"}}}}}}},"/api/snail/chat/resource/upload":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"uploadResource","parameters":[{"name":"bizType","in":"query","required":false,"schema":{"type":"string"}},{"name":"bizId","in":"query","required":false,"schema":{"type":"integer","format":"int64"}}],"requestBody":{"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary"}},"required":["file"]}}}},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiResourceResponse"}}}}}}},"/api/snail/chat/completions":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"completions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OpenApiChatRequest"}}},"required":true},"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"text/event-stream":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ServerSentEventString"}}}}}}}},"/api/snail/chat/agent/subscribe":{"post":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"subscribeAgent","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}},"delete":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"unsubscribeAgent","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultVoid"}}}}}}},"/workflow/task/pageByTaskWait":{"get":{"tags":["任务管理 控制层"],"summary":"查询当前用户的待办任务。","description":"查询当前用户的待办任务。","operationId":"pageByTaskWait","parameters":[{"name":"flowTaskBo","in":"query","description":"参数","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"待办任务分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowTaskVo"}}}}}}},"/workflow/task/pageByTaskFinish":{"get":{"tags":["任务管理 控制层"],"summary":"查询当前用户的已办任务。","description":"查询当前用户的已办任务。","operationId":"pageByTaskFinish","parameters":[{"name":"flowTaskBo","in":"query","description":"参数","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"已办任务分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowHisTaskVo"}}}}}}},"/workflow/task/pageByTaskCopy":{"get":{"tags":["任务管理 控制层"],"summary":"查询当前用户收到的抄送任务。","description":"查询当前用户收到的抄送任务。","operationId":"pageByTaskCopy","parameters":[{"name":"flowTaskBo","in":"query","description":"参数","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"抄送任务分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowTaskVo"}}}}}}},"/workflow/task/pageByAllTaskWait":{"get":{"tags":["任务管理 控制层"],"summary":"查询全部待办任务。","description":"查询全部待办任务。

访问权限


**权限校验:**

- `workflow:task:list`

","operationId":"pageByAllTaskWait","parameters":[{"name":"flowTaskBo","in":"query","description":"参数","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"待办任务分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowTaskVo"}}}}}}},"/workflow/task/pageByAllTaskFinish":{"get":{"tags":["任务管理 控制层"],"summary":"查询全部已办任务。","description":"查询全部已办任务。

访问权限


**权限校验:**

- `workflow:task:list`

","operationId":"pageByAllTaskFinish","parameters":[{"name":"flowTaskBo","in":"query","description":"参数","required":true,"schema":{"$ref":"#/components/schemas/FlowTaskBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"已办任务分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowHisTaskVo"}}}}}}},"/workflow/task/getTask/{taskId}":{"get":{"tags":["任务管理 控制层"],"summary":"根据任务 id 查询任务详情。","description":"根据任务 id 查询任务详情。","operationId":"getTask","parameters":[{"name":"taskId","in":"path","description":"任务id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"任务详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowTaskVo"}}}}}}},"/workflow/task/getBackTaskNode/{taskId}/{nowNodeCode}":{"get":{"tags":["任务管理 控制层"],"summary":"获取当前任务可驳回的前置节点。","description":"获取当前任务可驳回的前置节点。","operationId":"getBackTaskNode","parameters":[{"name":"taskId","in":"path","description":"任务id","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"nowNodeCode","in":"path","description":"当前节点","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"可驳回节点列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListNode"}}}}}}},"/workflow/task/currentTaskAllUser/{taskId}":{"get":{"tags":["任务管理 控制层"],"summary":"获取当前任务的所有办理人。","description":"获取当前任务的所有办理人。","operationId":"currentTaskAllUser","parameters":[{"name":"taskId","in":"path","description":"任务id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"办理人列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListUserDTO"}}}}}}},"/workflow/spel/{id}":{"get":{"tags":["流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。"],"summary":"获取流程 SpEL 表达式定义详情。","description":"获取流程 SpEL 表达式定义详情。

访问权限


**权限校验:**

- `workflow:spel:query`

","operationId":"getInfo","parameters":[{"name":"id","in":"path","description":"主键","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"表达式详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowSpelVo"}}}}}}},"/workflow/spel/list":{"get":{"tags":["流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。"],"summary":"分页查询流程 SpEL 表达式定义列表。","description":"分页查询流程 SpEL 表达式定义列表。

访问权限


**权限校验:**

- `workflow:spel:list`

","operationId":"list","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/FlowSpelBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"表达式分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowSpelVo"}}}}}}},"/workflow/leave/{id}":{"get":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"获取请假单详情。","description":"获取请假单详情。

访问权限


**权限校验:**

- `workflow:leave:query`

","operationId":"getInfo_1","parameters":[{"name":"id","in":"path","description":"主键","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"请假详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestLeaveVo"}}}}}}},"/workflow/leave/list":{"get":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"分页查询请假列表。","description":"分页查询请假列表。

访问权限


**权限校验:**

- `workflow:leave:list`

","operationId":"list_1","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/TestLeaveBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"请假分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultTestLeaveVo"}}}}}}},"/workflow/instance/pageByRunning":{"get":{"tags":["流程实例管理 控制层"],"summary":"分页查询正在运行的流程实例。","description":"分页查询正在运行的流程实例。

访问权限


**权限校验:**

- `workflow:instance:list`

","operationId":"selectRunningInstanceList","parameters":[{"name":"flowInstanceBo","in":"query","description":"流程实例","required":true,"schema":{"$ref":"#/components/schemas/FlowInstanceBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"正在运行的流程实例分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowInstanceVo"}}}}}}},"/workflow/instance/pageByFinish":{"get":{"tags":["流程实例管理 控制层"],"summary":"分页查询已结束的流程实例。","description":"分页查询已结束的流程实例。

访问权限


**权限校验:**

- `workflow:instance:list`

","operationId":"selectFinishInstanceList","parameters":[{"name":"flowInstanceBo","in":"query","description":"流程实例","required":true,"schema":{"$ref":"#/components/schemas/FlowInstanceBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"已结束的流程实例分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowInstanceVo"}}}}}}},"/workflow/instance/pageByCurrent":{"get":{"tags":["流程实例管理 控制层"],"summary":"获取当前登录人发起的流程实例列表。","description":"获取当前登录人发起的流程实例列表。

访问权限


**权限校验:**

- `workflow:instance:currentList`

","operationId":"selectCurrentInstanceList","parameters":[{"name":"flowInstanceBo","in":"query","description":"参数","required":true,"schema":{"$ref":"#/components/schemas/FlowInstanceBo"}},{"name":"pageQuery","in":"query","description":"分页","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"当前用户发起的流程实例分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowInstanceVo"}}}}}}},"/workflow/instance/instanceVariable/{instanceId}":{"get":{"tags":["流程实例管理 控制层"],"summary":"获取流程变量。","description":"获取流程变量。

访问权限


**权限校验:**

- `workflow:instance:variableQuery`

","operationId":"instanceVariable","parameters":[{"name":"instanceId","in":"path","description":"流程实例id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程变量","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringObject"}}}}}}},"/workflow/instance/getInfo/{businessId}":{"get":{"tags":["流程实例管理 控制层"],"summary":"根据业务 id 查询流程实例详细信息。","description":"根据业务 id 查询流程实例详细信息。

访问权限


**权限校验:**

- `workflow:instance:query`

","operationId":"getInfo_2","parameters":[{"name":"businessId","in":"path","description":"业务id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程实例详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowInstanceVo"}}}}}}},"/workflow/instance/flowHisTaskList/{businessId}":{"get":{"tags":["流程实例管理 控制层"],"summary":"获取流程图和流程记录,用于展示实例流转轨迹。","description":"获取流程图和流程记录,用于展示实例流转轨迹。

访问权限


**权限校验:**

- `workflow:instance:query`

","operationId":"flowHisTaskList","parameters":[{"name":"businessId","in":"path","description":"业务id","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程图与历史节点信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringObject"}}}}}}},"/workflow/definition/{id}":{"get":{"tags":["流程定义管理 控制层"],"summary":"获取流程定义详细信息。","description":"获取流程定义详细信息。

访问权限


**权限校验:**

- `workflow:definition:query`

","operationId":"getInfo_3","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程定义详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RDefinition"}}}}}}},"/workflow/definition/xmlString/{id}":{"get":{"tags":["流程定义管理 控制层"],"summary":"获取流程定义 JSON 字符串。","description":"获取流程定义 JSON 字符串。

访问权限


**权限校验:**

- `workflow:definition:query`

","operationId":"xmlString","parameters":[{"name":"id","in":"path","description":"流程定义id","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程定义 JSON","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/workflow/definition/unPublishList":{"get":{"tags":["流程定义管理 控制层"],"summary":"分页查询未发布的流程定义列表。","description":"分页查询未发布的流程定义列表。

访问权限


**权限校验:**

- `workflow:definition:list`

","operationId":"unPublishList","parameters":[{"name":"flowDefinition","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/FlowDefinition"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"未发布流程定义分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowDefinitionVo"}}}}}}},"/workflow/definition/list":{"get":{"tags":["流程定义管理 控制层"],"summary":"分页查询流程定义列表。","description":"分页查询流程定义列表。

访问权限


**权限校验:**

- `workflow:definition:list`

","operationId":"list_2","parameters":[{"name":"flowDefinition","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/FlowDefinition"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程定义分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultFlowDefinitionVo"}}}}}}},"/workflow/category/{categoryId}":{"get":{"tags":["流程分类"],"summary":"获取单个流程分类详情。","description":"获取单个流程分类详情。

访问权限


**权限校验:**

- `workflow:category:query`

","operationId":"getInfo_4","parameters":[{"name":"categoryId","in":"path","description":"主键","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程分类详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RFlowCategoryVo"}}}}}},"delete":{"tags":["流程分类"],"summary":"删除流程分类,删除前校验默认分类、子节点和绑定流程定义。","description":"删除流程分类,删除前校验默认分类、子节点和绑定流程定义。

访问权限


**权限校验:**

- `workflow:category:remove`

","operationId":"remove","parameters":[{"name":"categoryId","in":"path","description":"主键","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/category/list":{"get":{"tags":["流程分类"],"summary":"查询流程分类列表。","description":"查询流程分类列表。

访问权限


**权限校验:**

- `workflow:category:list`

","operationId":"list_3","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程分类列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListFlowCategoryVo"}}}}}}},"/workflow/category/categoryTree":{"get":{"tags":["流程分类"],"summary":"获取流程分类树列表,用于流程定义选择分类节点。","description":"获取流程分类树列表,用于流程定义选择分类节点。","operationId":"categoryTree","parameters":[{"name":"categoryBo","in":"query","description":"流程分类","required":true,"schema":{"$ref":"#/components/schemas/FlowCategoryBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"流程分类树","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/warm-flow/query-flow-chart/{id}":{"get":{"tags":["warm-flow-controller"],"operationId":"queryFlowChart","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultDefJson"}}}}}}},"/warm-flow/query-def/{id}":{"get":{"tags":["warm-flow-controller"],"operationId":"queryDef","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultDefJson"}}}}}}},"/warm-flow/query-def":{"get":{"tags":["warm-flow-controller"],"operationId":"queryDef_1","parameters":[],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultDefJson"}}}}}}},"/warm-flow/published-form":{"get":{"tags":["warm-flow-controller"],"operationId":"publishedForm","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListForm"}}}}}}},"/warm-flow/node-ext":{"get":{"tags":["warm-flow-controller"],"operationId":"nodeExt","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListNodeExt"}}}}}}},"/warm-flow/listener-list":{"get":{"tags":["warm-flow-controller"],"operationId":"listenerList","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListListenerVo"}}}}}}},"/warm-flow/handler-type":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerType","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListString"}}}}}}},"/warm-flow/handler-result":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerResult","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/HandlerQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultHandlerSelectVo"}}}}}}},"/warm-flow/handler-feedback":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerFeedback","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/HandlerFeedBackDto"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListHandlerFeedBackVo"}}}}}}},"/warm-flow/handler-dict":{"get":{"tags":["warm-flow-controller"],"operationId":"handlerDict","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultListDict"}}}}}}},"/warm-flow/form-content/{id}":{"get":{"tags":["warm-flow-controller"],"operationId":"getFormContent","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultString"}}}}}}},"/warm-flow/execute/load/{taskId}":{"get":{"tags":["warm-flow-controller"],"operationId":"load","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFlowDto"}}}}}}},"/warm-flow/execute/hisLoad/{taskId}":{"get":{"tags":["warm-flow-controller"],"operationId":"hisLoad","parameters":[{"name":"taskId","in":"path","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultFlowDto"}}}}}}},"/warm-flow-ui/config":{"get":{"tags":["warm-flow-ui-controller"],"operationId":"config","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ApiResultWarmFlowVo"}}}}}}},"/system/user/unlock/{userId}":{"get":{"tags":["用户信息"],"summary":"解锁用户","description":"解锁用户

访问权限


**权限校验:**

- `system:user:edit`

","operationId":"unlock","parameters":[{"name":"userId","in":"path","description":"用户ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/optionselect":{"get":{"tags":["用户信息"],"summary":"根据用户ID串批量获取用户基础信息","description":"根据用户ID串批量获取用户基础信息

访问权限


**权限校验:**

- `system:user:query`

","operationId":"optionselect","parameters":[{"name":"userIds","in":"query","description":"用户ID串","required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"deptId","in":"query","description":"部门ID","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户基础信息列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysUserVo"}}}}}}},"/system/user/list":{"get":{"tags":["用户信息"],"summary":"分页查询用户列表。","description":"分页查询用户列表。

访问权限


**权限校验:**

- `system:user:list`

","operationId":"list_4","parameters":[{"name":"user","in":"query","description":"用户查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户分页列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserVo"}}}}}}},"/system/user/list/dept/{deptId}":{"get":{"tags":["用户信息"],"summary":"获取指定部门下的全部用户信息。","description":"获取指定部门下的全部用户信息。

访问权限


**权限校验:**

- `system:user:list`

","operationId":"listByDept","parameters":[{"name":"deptId","in":"path","description":"部门ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysUserVo"}}}}}}},"/system/user/getInfo":{"get":{"tags":["用户信息"],"summary":"获取用户信息","description":"获取用户信息","operationId":"getInfo_5","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"当前登录用户信息、角色与权限集合","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RUserInfoVo"}}}}}}},"/system/user/deptTree":{"get":{"tags":["用户信息"],"summary":"获取用户筛选用的部门树。","description":"获取用户筛选用的部门树。

访问权限


**权限校验:**

- `system:user:list`

","operationId":"deptTree","parameters":[{"name":"dept","in":"query","description":"部门查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDeptBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"部门树列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/system/user/authRole/{userId}":{"get":{"tags":["用户信息"],"summary":"根据用户编号获取授权角色","description":"根据用户编号获取授权角色

访问权限


**权限校验:**

- `system:user:query`

","operationId":"authRole","parameters":[{"name":"userId","in":"path","description":"用户ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户及其可授权角色信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysUserInfoVo"}}}}}}},"/system/user/{userId}":{"get":{"tags":["用户信息"],"summary":"根据用户编号获取详细信息","description":"根据用户编号获取详细信息

访问权限


**权限校验:**

- `system:user:query`

","operationId":"getInfo_6","parameters":[{"name":"userId","in":"path","description":"用户ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户详情、角色与岗位信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysUserInfoVo"}}}}}}},"/system/user/":{"get":{"tags":["用户信息"],"summary":"根据用户编号获取详细信息","description":"根据用户编号获取详细信息

访问权限


**权限校验:**

- `system:user:query`

","operationId":"getInfo_7","parameters":[],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户详情、角色与岗位信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysUserInfoVo"}}}}}}},"/system/social/list":{"get":{"tags":["社会化关系"],"summary":"查询当前登录用户的社会化账号绑定列表。","description":"查询当前登录用户的社会化账号绑定列表。","operationId":"list_5","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"绑定关系列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysSocialVo"}}}}}}},"/system/role/{roleId}":{"get":{"tags":["角色信息"],"summary":"根据角色编号获取详细信息","description":"根据角色编号获取详细信息

访问权限


**权限校验:**

- `system:role:query`

","operationId":"getInfo_8","parameters":[{"name":"roleId","in":"path","description":"角色ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"角色详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysRoleVo"}}}}}}},"/system/role/optionselect":{"get":{"tags":["角色信息"],"summary":"获取角色选择框列表","description":"获取角色选择框列表

访问权限


**权限校验:**

- `system:role:query`

","operationId":"optionselect_1","parameters":[{"name":"roleIds","in":"query","description":"角色ID串","required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"角色列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysRoleVo"}}}}}}},"/system/role/list":{"get":{"tags":["角色信息"],"summary":"分页查询角色列表。","description":"分页查询角色列表。

访问权限


**权限校验:**

- `system:role:list`

","operationId":"list_6","parameters":[{"name":"role","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysRoleBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"角色分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysRoleVo"}}}}}}},"/system/role/deptTree/{roleId}":{"get":{"tags":["角色信息"],"summary":"获取对应角色部门树列表","description":"获取对应角色部门树列表

访问权限


**权限校验:**

- `system:role:list`

","operationId":"roleDeptTreeselect","parameters":[{"name":"roleId","in":"path","description":"角色ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"角色部门树信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RDeptTreeSelectVo"}}}}}}},"/system/role/authUser/unallocatedList":{"get":{"tags":["角色信息"],"summary":"查询未分配用户角色列表。","description":"查询未分配用户角色列表。

访问权限


**权限校验:**

- `system:role:list`

","operationId":"unallocatedList","parameters":[{"name":"user","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserVo"}}}}}}},"/system/role/authUser/allocatedList":{"get":{"tags":["角色信息"],"summary":"查询已分配用户角色列表。","description":"查询已分配用户角色列表。

访问权限


**权限校验:**

- `system:role:list`

","operationId":"allocatedList","parameters":[{"name":"user","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysUserBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"用户分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserVo"}}}}}}},"/system/post/{postId}":{"get":{"tags":["岗位信息操作处理"],"summary":"根据岗位编号获取详细信息","description":"根据岗位编号获取详细信息

访问权限


**权限校验:**

- `system:post:query`

","operationId":"getInfo_9","parameters":[{"name":"postId","in":"path","description":"岗位ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"岗位详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysPostVo"}}}}}}},"/system/post/optionselect":{"get":{"tags":["岗位信息操作处理"],"summary":"获取岗位选择框列表","description":"获取岗位选择框列表

访问权限


**权限校验:**

- `system:post:query`

","operationId":"optionselect_2","parameters":[{"name":"postIds","in":"query","description":"岗位ID串","required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}},{"name":"deptId","in":"query","description":"部门id","required":false,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"岗位列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysPostVo"}}}}}}},"/system/post/list":{"get":{"tags":["岗位信息操作处理"],"summary":"分页查询岗位列表。","description":"分页查询岗位列表。

访问权限


**权限校验:**

- `system:post:list`

","operationId":"list_7","parameters":[{"name":"post","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysPostBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"岗位分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysPostVo"}}}}}}},"/system/post/deptTree":{"get":{"tags":["岗位信息操作处理"],"summary":"获取岗位筛选用的部门树。","description":"获取岗位筛选用的部门树。

访问权限


**权限校验:**

- `system:post:list`

","operationId":"deptTree_1","parameters":[{"name":"dept","in":"query","description":"部门查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDeptBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"部门树列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/system/notice/{noticeId}":{"get":{"tags":["公告 信息操作处理"],"summary":"根据通知公告编号获取详细信息","description":"根据通知公告编号获取详细信息

访问权限


**权限校验:**

- `system:notice:query`

","operationId":"getInfo_10","parameters":[{"name":"noticeId","in":"path","description":"公告ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"公告详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysNoticeVo"}}}}}}},"/system/notice/list":{"get":{"tags":["公告 信息操作处理"],"summary":"分页查询通知公告列表。","description":"分页查询通知公告列表。

访问权限


**权限校验:**

- `system:notice:list`

","operationId":"list_8","parameters":[{"name":"notice","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysNoticeBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"公告分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysNoticeVo"}}}}}}},"/system/menu/{menuId}":{"get":{"tags":["菜单信息"],"summary":"根据菜单编号获取详细信息","description":"根据菜单编号获取详细信息

访问权限


**权限校验:**

- `system:menu:query`

**角色校验:**

- `superadmin`
","operationId":"getInfo_11","parameters":[{"name":"menuId","in":"path","description":"菜单ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"菜单详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysMenuVo"}}}}}},"delete":{"tags":["菜单信息"],"summary":"删除菜单","description":"删除菜单

访问权限


**权限校验:**

- `system:menu:remove`

**角色校验:**

- `superadmin`
","operationId":"remove_1","parameters":[{"name":"menuId","in":"path","description":"菜单ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/menu/treeselect":{"get":{"tags":["菜单信息"],"summary":"获取菜单下拉树列表。","description":"获取菜单下拉树列表。

访问权限


**权限校验:**

- `system:menu:query`

","operationId":"treeselect","parameters":[{"name":"menu","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysMenuBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"菜单树","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTreeString"}}}}}}},"/system/menu/roleMenuTreeselect/{roleId}":{"get":{"tags":["菜单信息"],"summary":"加载对应角色菜单列表树","description":"加载对应角色菜单列表树

访问权限


**权限校验:**

- `system:menu:query`

","operationId":"roleMenuTreeselect","parameters":[{"name":"roleId","in":"path","description":"角色ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"角色菜单树及选中节点","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMenuTreeSelectVo"}}}}}}},"/system/menu/list":{"get":{"tags":["菜单信息"],"summary":"查询菜单列表。","description":"查询菜单列表。

访问权限


**权限校验:**

- `system:menu:list`

**角色校验:**

- `superadmin`
","operationId":"list_9","parameters":[{"name":"menu","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysMenuBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"菜单列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysMenuVo"}}}}}}},"/system/menu/getRouters":{"get":{"tags":["菜单信息"],"summary":"获取路由信息","description":"获取路由信息","operationId":"getRouters","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"当前用户可访问的路由信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListRouterVo"}}}}}}},"/system/dict/type/{dictId}":{"get":{"tags":["数据字典信息"],"summary":"查询字典类型详细","description":"查询字典类型详细

访问权限


**权限校验:**

- `system:dict:query`

","operationId":"getInfo_12","parameters":[{"name":"dictId","in":"path","description":"字典ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"字典类型详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysDictTypeVo"}}}}}}},"/system/dict/type/optionselect":{"get":{"tags":["数据字典信息"],"summary":"获取字典类型下拉选择列表。","description":"获取字典类型下拉选择列表。","operationId":"optionselect_3","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"字典类型列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDictTypeVo"}}}}}}},"/system/dict/type/list":{"get":{"tags":["数据字典信息"],"summary":"分页查询字典类型列表。","description":"分页查询字典类型列表。

访问权限


**权限校验:**

- `system:dict:list`

","operationId":"list_10","parameters":[{"name":"dictType","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDictTypeBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"字典类型分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysDictTypeVo"}}}}}}},"/system/dict/data/{dictCode}":{"get":{"tags":["数据字典信息"],"summary":"查询字典数据详细","description":"查询字典数据详细

访问权限


**权限校验:**

- `system:dict:query`

","operationId":"getInfo_13","parameters":[{"name":"dictCode","in":"path","description":"字典code","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"字典数据详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysDictDataVo"}}}}}}},"/system/dict/data/type/{dictType}":{"get":{"tags":["数据字典信息"],"summary":"根据字典类型查询字典数据信息","description":"根据字典类型查询字典数据信息","operationId":"dictType","parameters":[{"name":"dictType","in":"path","description":"字典类型","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"字典数据列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDictDataVo"}}}}}}},"/system/dict/data/list":{"get":{"tags":["数据字典信息"],"summary":"分页查询字典数据列表。","description":"分页查询字典数据列表。

访问权限


**权限校验:**

- `system:dict:list`

","operationId":"list_11","parameters":[{"name":"dictData","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDictDataBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"字典数据分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysDictDataVo"}}}}}}},"/system/dept/{deptId}":{"get":{"tags":["部门信息"],"summary":"根据部门编号获取详细信息","description":"根据部门编号获取详细信息

访问权限


**权限校验:**

- `system:dept:query`

","operationId":"getInfo_14","parameters":[{"name":"deptId","in":"path","description":"部门ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"部门详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysDeptVo"}}}}}},"delete":{"tags":["部门信息"],"summary":"删除部门","description":"删除部门

访问权限


**权限校验:**

- `system:dept:remove`

","operationId":"remove_2","parameters":[{"name":"deptId","in":"path","description":"部门ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dept/optionselect":{"get":{"tags":["部门信息"],"summary":"获取部门选择框列表","description":"获取部门选择框列表

访问权限


**权限校验:**

- `system:dept:query`

","operationId":"optionselect_4","parameters":[{"name":"deptIds","in":"query","description":"部门ID串","required":false,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"部门列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDeptVo"}}}}}}},"/system/dept/list":{"get":{"tags":["部门信息"],"summary":"查询部门列表。","description":"查询部门列表。

访问权限


**权限校验:**

- `system:dept:list`

","operationId":"list_12","parameters":[{"name":"dept","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysDeptBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"部门列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDeptVo"}}}}}}},"/system/dept/list/exclude/{deptId}":{"get":{"tags":["部门信息"],"summary":"查询部门列表(排除节点)","description":"查询部门列表(排除节点)

访问权限


**权限校验:**

- `system:dept:list`

","operationId":"excludeChild","parameters":[{"name":"deptId","in":"path","description":"部门ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"过滤后的部门列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysDeptVo"}}}}}}},"/system/config/{configId}":{"get":{"tags":["参数配置 信息操作处理"],"summary":"根据参数编号获取详细信息","description":"根据参数编号获取详细信息

访问权限


**权限校验:**

- `system:config:query`

","operationId":"getInfo_15","parameters":[{"name":"configId","in":"path","description":"参数ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"参数配置详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysConfigVo"}}}}}}},"/system/config/list":{"get":{"tags":["参数配置 信息操作处理"],"summary":"分页查询参数配置列表。","description":"分页查询参数配置列表。

访问权限


**权限校验:**

- `system:config:list`

","operationId":"list_13","parameters":[{"name":"config","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysConfigBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"参数配置分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysConfigVo"}}}}}}},"/system/config/configKey/{configKey}":{"get":{"tags":["参数配置 信息操作处理"],"summary":"根据参数键名查询参数值","description":"根据参数键名查询参数值","operationId":"getConfigKey","parameters":[{"name":"configKey","in":"path","description":"参数Key","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"参数值","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/system/client/{id}":{"get":{"tags":["客户端管理"],"summary":"获取单个客户端的详细配置信息。","description":"获取单个客户端的详细配置信息。

访问权限


**权限校验:**

- `system:client:query`

","operationId":"getInfo_16","parameters":[{"name":"id","in":"path","description":"主键","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"客户端详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysClientVo"}}}}}}},"/system/client/list":{"get":{"tags":["客户端管理"],"summary":"分页查询客户端管理列表。","description":"分页查询客户端管理列表。

访问权限


**权限校验:**

- `system:client:list`

","operationId":"list_14","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysClientBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"客户端分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysClientVo"}}}}}}},"/resource/sms/code":{"get":{"tags":["验证码操作处理"],"summary":"发送短信验证码。","description":"发送短信验证码。

访问权限


> **权限策略**:忽略权限检查
","operationId":"smsCode","parameters":[{"name":"phoneNumber","in":"query","description":"用户手机号","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/list":{"get":{"tags":["文件上传 控制层"],"summary":"分页查询 OSS 对象存储列表。","description":"分页查询 OSS 对象存储列表。

访问权限


**权限校验:**

- `system:oss:list`

","operationId":"list_15","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysOssBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OSS 分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysOssVo"}}}}}}},"/resource/oss/listByIds/{ossIds}":{"get":{"tags":["文件上传 控制层"],"summary":"查询OSS对象基于id串","description":"查询OSS对象基于id串

访问权限


**权限校验:**

- `system:oss:query`

","operationId":"listByIds","parameters":[{"name":"ossIds","in":"path","description":"OSS对象ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OSS 对象列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListSysOssVo"}}}}}}},"/resource/oss/download/{ossId}":{"get":{"tags":["文件上传 控制层"],"summary":"下载OSS对象","description":"下载OSS对象

访问权限


**权限校验:**

- `system:oss:download`

","operationId":"download","parameters":[{"name":"ossId","in":"path","description":"OSS对象ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"OK","content":{"*/*":{"schema":{"type":"string","format":"byte"}}}}}}},"/resource/oss/config/{ossConfigId}":{"get":{"tags":["对象存储配置"],"summary":"获取单个对象存储配置详情。","description":"获取单个对象存储配置详情。

访问权限


**权限校验:**

- `system:ossConfig:list`

","operationId":"getInfo_17","parameters":[{"name":"ossConfigId","in":"path","description":"OSS配置ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"配置详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysOssConfigVo"}}}}}}},"/resource/oss/config/list":{"get":{"tags":["对象存储配置"],"summary":"分页查询对象存储配置列表。","description":"分页查询对象存储配置列表。

访问权限


**权限校验:**

- `system:ossConfig:list`

","operationId":"list_16","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysOssConfigBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"配置分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysOssConfigVo"}}}}}}},"/resource/message":{"get":{"tags":["SSE 控制器"],"summary":"建立当前登录用户的 SSE 连接。","description":"建立当前登录用户的 SSE 连接。","operationId":"connect","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"SSE 发射器","content":{"text/event-stream":{"schema":{"$ref":"#/components/schemas/SseEmitter"}}}}}}},"/resource/message/close":{"get":{"tags":["SSE 控制器"],"summary":"关闭当前登录用户的 SSE 连接。","description":"关闭当前登录用户的 SSE 连接。

访问权限


> **权限策略**:忽略权限检查
","operationId":"close","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/message/box":{"get":{"tags":["消息记录控制器"],"summary":"查询当前用户消息盒子数据","description":"查询当前用户消息盒子数据","operationId":"getBox","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"消息盒子数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RSysMessageBoxVo"}}}}}}},"/resource/email/code":{"get":{"tags":["验证码操作处理"],"summary":"发送邮箱验证码","description":"发送邮箱验证码

访问权限


> **权限策略**:忽略权限检查
","operationId":"emailCode","parameters":[{"name":"email","in":"query","description":"邮箱","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/operlog/list":{"get":{"tags":["操作日志记录"],"summary":"分页查询操作日志记录。","description":"分页查询操作日志记录。

访问权限


**权限校验:**

- `monitor:operlog:list`

","operationId":"list_17","parameters":[{"name":"operLog","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysOperLogBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作日志分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysOperLogVo"}}}}}}},"/monitor/online":{"get":{"tags":["在线用户监控"],"summary":"获取当前登录用户的在线设备列表,仅返回当前账号仍有效的 token 会话。","description":"获取当前登录用户的在线设备列表,仅返回当前账号仍有效的 token 会话。","operationId":"getInfo_18","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"当前用户在线设备列表","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserOnline"}}}}}}},"/monitor/online/list":{"get":{"tags":["在线用户监控"],"summary":"获取在线用户监控列表,并按 IP 或用户名条件过滤当前有效会话。","description":"获取在线用户监控列表,并按 IP 或用户名条件过滤当前有效会话。

访问权限


**权限校验:**

- `monitor:online:list`

","operationId":"list_18","parameters":[{"name":"ipaddr","in":"query","description":"IP地址","required":true,"schema":{"type":"string"}},{"name":"userName","in":"query","description":"用户名","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"在线用户分页数据","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysUserOnline"}}}}}}},"/monitor/loginInfo/unlock/{userName}":{"get":{"tags":["系统访问记录"],"summary":"清除指定用户的登录失败锁定状态。","description":"清除指定用户的登录失败锁定状态。

访问权限


**权限校验:**

- `monitor:logininfo:unlock`

","operationId":"unlock_1","parameters":[{"name":"userName","in":"path","description":"用户名","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/loginInfo/list":{"get":{"tags":["系统访问记录"],"summary":"分页查询系统访问记录。","description":"分页查询系统访问记录。

访问权限


**权限校验:**

- `monitor:logininfo:list`

","operationId":"list_19","parameters":[{"name":"loginInfo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/SysLoginInfoBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"登录日志分页结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultSysLoginInfoVo"}}}}}}},"/monitor/cache":{"get":{"tags":["缓存监控"],"summary":"获取 Redis 缓存监控信息。","description":"获取 Redis 缓存监控信息。

访问权限


**权限校验:**

- `monitor:cache:list`

","operationId":"getInfo_19","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"500":{"description":"Internal Server Error"},"200":{"description":"Redis 信息、库大小与命令统计","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RCacheListInfoVo"}}}}}}},"/device/device/{deviceId}":{"get":{"tags":["后台设备管理。"],"summary":"查询设备详情。运行数据只读。","description":"查询设备详情。运行数据只读。

访问权限


**权限校验:**

- `device:device:query`

","operationId":"getInfo_20","parameters":[{"name":"deviceId","in":"path","description":"设备主键","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"设备详情","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RCzDeviceVo"}}}}}}},"/device/device/productOptions":{"get":{"tags":["后台设备管理。"],"summary":"查询可添加的产品模板。","description":"查询可添加的产品模板。

访问权限


**权限校验:**

- `device:device:query` | `device:device:add`

","operationId":"productOptions","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"产品模板","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListCzProductOptionVo"}}}}}}},"/device/device/locationOptions":{"get":{"tags":["后台设备管理。"],"summary":"查询可选择的房间。","description":"查询可选择的房间。

访问权限


**权限校验:**

- `device:device:query` | `device:device:add` | `device:device:edit`

","operationId":"locationOptions","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"房间","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListCzLocationOptionVo"}}}}}}},"/device/device/list":{"get":{"tags":["后台设备管理。"],"summary":"分页查询设备。","description":"分页查询设备。

访问权限


**权限校验:**

- `device:device:list`

","operationId":"list_20","parameters":[{"name":"bo","in":"query","description":"查询条件","required":true,"schema":{"$ref":"#/components/schemas/CzDeviceBo"}},{"name":"pageQuery","in":"query","description":"分页参数","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"设备分页","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultCzDeviceVo"}}}}}}},"/demo/websocket/send":{"get":{"tags":["WebSocket 演示案例"],"summary":"发布消息","description":"发布消息","operationId":"send","parameters":[{"name":"userId","in":"query","description":"目标用户","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"message","in":"query","description":"发送内容","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/tree/{id}":{"get":{"tags":["测试树表Controller"],"summary":"获取测试树表详细信息","description":"获取测试树表详细信息

访问权限


**权限校验:**

- `demo:tree:query`

","operationId":"getInfo_21","parameters":[{"name":"id","in":"path","description":"测试树ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestTreeVo"}}}}}}},"/demo/tree/list":{"get":{"tags":["测试树表Controller"],"summary":"查询测试树表列表","description":"查询测试树表列表

访问权限


**权限校验:**

- `demo:tree:list`

","operationId":"list_21","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestTreeBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListTestTreeVo"}}}}}}},"/demo/tree/export":{"get":{"tags":["测试树表Controller"],"summary":"导出测试树表列表","description":"导出测试树表列表

访问权限


**权限校验:**

- `demo:tree:export`

","operationId":"export_13","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestTreeBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/sms/sendTencent":{"get":{"tags":["短信演示案例"],"summary":"发送短信Tencent","description":"发送短信Tencent","operationId":"sendTencent","parameters":[{"name":"phones","in":"query","description":"电话号","required":true,"schema":{"type":"string"}},{"name":"templateId","in":"query","description":"模板ID","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sms/sendAliyun":{"get":{"tags":["短信演示案例"],"summary":"发送短信Aliyun","description":"发送短信Aliyun","operationId":"sendAliyun","parameters":[{"name":"phones","in":"query","description":"电话号","required":true,"schema":{"type":"string"}},{"name":"templateId","in":"query","description":"模板ID","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sms/removeBlacklist":{"get":{"tags":["短信演示案例"],"summary":"移除黑名单","description":"移除黑名单","operationId":"removeBlacklist","parameters":[{"name":"phone","in":"query","description":"手机号","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sms/addBlacklist":{"get":{"tags":["短信演示案例"],"summary":"添加黑名单","description":"添加黑名单","operationId":"addBlacklist","parameters":[{"name":"phone","in":"query","description":"手机号","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RObject"}}}}}}},"/demo/sensitive/test":{"get":{"tags":["测试数据脱敏控制器"],"summary":"测试数据脱敏","description":"测试数据脱敏","operationId":"test","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestSensitive"}}}}}}},"/demo/saTokenDoc/special/tempPermission":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景15:临时权限校验(SaCheckPermission逻辑:临时权限>永久权限)\n 注:临时权限需通过SaToken API手动设置,如 SaHolder.getStpLogic().setTempPermission(\"system:temp:test\")","description":"场景15:临时权限校验(SaCheckPermission逻辑:临时权限>永久权限)\n 注:临时权限需通过SaToken API手动设置,如 SaHolder.getStpLogic().setTempPermission(\"system:temp:test\")

访问权限


**权限校验:**

- `system:temp:test`

","operationId":"tempPermission","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/special/loginTypeSpecify":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景16:登录类型指定(多端登录场景,如PC/APP/小程序)\n 注:需配合SaToken多账号体系配置","description":"场景16:登录类型指定(多端登录场景,如PC/APP/小程序)\n 注:需配合SaToken多账号体系配置","operationId":"loginTypeSpecify","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/special/ignoreOverride":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景14:SaIgnore局部覆盖(方法注解覆盖类注解,若有)\n 假设类上有@SaCheckLogin,方法上@SaIgnore会覆盖","description":"场景14:SaIgnore局部覆盖(方法注解覆盖类注解,若有)\n 假设类上有@SaCheckLogin,方法上@SaIgnore会覆盖

访问权限


> **权限策略**:忽略权限检查
","operationId":"ignoreOverride","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/singleRole":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景2:单一角色校验(AND模式,默认)","description":"场景2:单一角色校验(AND模式,默认)

访问权限


**角色校验:**

- `admin`
","operationId":"singleRole","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/singlePermission":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景3:单一权限校验(AND模式,默认)","description":"场景3:单一权限校验(AND模式,默认)

访问权限


**权限校验:**

- `system:user:view`

","operationId":"singlePermission","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/loginOnly":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景1:仅登录校验(无角色/权限限制,只需登录态)","description":"场景1:仅登录校验(无角色/权限限制,只需登录态)","operationId":"loginOnly","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/basic/ignoreAll":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景4:忽略所有权限校验(SaIgnore优先级最高)","description":"场景4:忽略所有权限校验(SaIgnore优先级最高)

访问权限


> **权限策略**:忽略权限检查
","operationId":"ignoreAll","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/roleWildcardPrefix":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景10:角色通配符匹配(前缀匹配)\n 拥有admin_* 即可匹配所有admin开头的角色","description":"场景10:角色通配符匹配(前缀匹配)\n 拥有admin_* 即可匹配所有admin开头的角色

访问权限


**角色校验:**

- `admin_*`
","operationId":"roleWildcardPrefix","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/permWithOrRole":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景13:orRole参数(权限校验失败时,兜底角色校验)\n 核心逻辑:无system:user:export权限时,检查是否有admin/operator角色","description":"场景13:orRole参数(权限校验失败时,兜底角色校验)\n 核心逻辑:无system:user:export权限时,检查是否有admin/operator角色

访问权限


**权限校验:**

- `system:user:export`
- 或角色:`admin` & `operator`

","operationId":"permWithOrRole","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/permWildcardPrefix":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景9:权限通配符匹配(前缀匹配)\n 拥有system:user:* 即可匹配所有用户模块权限","description":"场景9:权限通配符匹配(前缀匹配)\n 拥有system:user:* 即可匹配所有用户模块权限

访问权限


**权限校验:**

- `system:user:*`

","operationId":"permWildcardPrefix","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/mixRolePermOr":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景12:权限+角色混合OR模式(任一条件满足即可)\n 满足任一:拥有super_admin角色 | 拥有system:manage权限","description":"场景12:权限+角色混合OR模式(任一条件满足即可)\n 满足任一:拥有super_admin角色 | 拥有system:manage权限

访问权限


**权限校验:**

- `system:manage`

**角色校验:**

- `super_admin`
","operationId":"mixRolePermOr","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advanced/mixRolePermAnd":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景11:权限+角色混合AND模式(所有条件必须满足)\n 需同时满足:拥有admin角色 + 拥有system:user:all权限","description":"场景11:权限+角色混合AND模式(所有条件必须满足)\n 需同时满足:拥有admin角色 + 拥有system:user:all权限

访问权限


**权限校验:**

- `system:user:all`

**角色校验:**

- `admin`
","operationId":"mixRolePermAnd","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiRoleOr":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景6:多角色OR模式(拥有任一角色即可)","description":"场景6:多角色OR模式(拥有任一角色即可)

访问权限


**角色校验:**

- `admin` | `test`
","operationId":"multiRoleOr","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiRoleAnd":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景5:多角色AND模式(必须同时拥有所有角色)","description":"场景5:多角色AND模式(必须同时拥有所有角色)

访问权限


**角色校验:**

- `admin` & `operator`
","operationId":"multiRoleAnd","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiPermOr":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景8:多权限OR模式(拥有任一权限即可)","description":"场景8:多权限OR模式(拥有任一权限即可)

访问权限


**权限校验:**

- `system:user:add` | `system:user:delete`

","operationId":"multiPermOr","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/saTokenDoc/advance/multiPermAnd":{"get":{"tags":["SaToken 权限测试 接口文档输出测试"],"summary":"场景7:多权限AND模式(必须同时拥有所有权限)","description":"场景7:多权限AND模式(必须同时拥有所有权限)

访问权限


**权限校验:**

- `system:user:edit` & `system:log:view`

","operationId":"multiPermAnd","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/redisLock/testLock4j":{"get":{"tags":["测试分布式锁的样例"],"summary":"测试lock4j 注解","description":"测试lock4j 注解","operationId":"testLock4j","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/redisLock/testLock4jLockTemplate":{"get":{"tags":["测试分布式锁的样例"],"summary":"测试lock4j 工具","description":"测试lock4j 工具","operationId":"testLock4jLockTemplate","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/redis/pubsub/sub":{"get":{"tags":["Redis 发布订阅 演示案例"],"summary":"订阅消息","description":"订阅消息","operationId":"sub","parameters":[{"name":"key","in":"query","description":"通道Key","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/redis/pubsub/pub":{"get":{"tags":["Redis 发布订阅 演示案例"],"summary":"发布消息","description":"发布消息","operationId":"pub","parameters":[{"name":"key","in":"query","description":"通道Key","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","description":"发送内容","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/rateLimiter/testip":{"get":{"tags":["测试分布式限流样例"],"summary":"测试请求IP限流\n 同一IP请求受影响","description":"测试请求IP限流\n 同一IP请求受影响","operationId":"testip","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/rateLimiter/testcluster":{"get":{"tags":["测试分布式限流样例"],"summary":"测试集群实例限流\n 启动两个后端服务互不影响","description":"测试集群实例限流\n 启动两个后端服务互不影响","operationId":"testcluster","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/rateLimiter/test":{"get":{"tags":["测试分布式限流样例"],"summary":"测试全局限流\n 全局影响","description":"测试全局限流\n 全局影响","operationId":"test_1","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/rateLimiter/testObj":{"get":{"tags":["测试分布式限流样例"],"summary":"测试请求IP限流(key基于参数获取)\n 同一IP请求受影响\n ","description":"测试请求IP限流(key基于参数获取)\n 同一IP请求受影响\n

\n 简单变量获取 #变量 复杂表达式 #{#变量 != 1 ? 1 : 0}","operationId":"testObj","parameters":[{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/queue/priority/remove":{"get":{"tags":["优先队列 演示案例"],"summary":"删除队列数据","description":"删除队列数据","operationId":"remove_3","parameters":[{"name":"queueName","in":"query","description":"队列名","required":true,"schema":{"type":"string"}},{"name":"name","in":"query","description":"对象名","required":true,"schema":{"type":"string"}},{"name":"orderNum","in":"query","description":"排序号","required":true,"schema":{"type":"integer","format":"int32"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/queue/priority/get":{"get":{"tags":["优先队列 演示案例"],"summary":"获取队列数据","description":"获取队列数据","operationId":"get","parameters":[{"name":"queueName","in":"query","description":"队列名","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/queue/priority/add":{"get":{"tags":["优先队列 演示案例"],"summary":"添加队列数据","description":"添加队列数据","operationId":"add_19","parameters":[{"name":"queueName","in":"query","description":"队列名","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/mqtt/send":{"get":{"tags":["mqtt 演示案例"],"summary":"发布一条 MQTT 测试消息。","description":"发布一条 MQTT 测试消息。","operationId":"send_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"是否发送成功","content":{"*/*":{"schema":{"type":"boolean","description":"是否更新已存在数据"}}}}}}},"/demo/mcp/tools":{"get":{"tags":["MCP Client 演示案例。"],"summary":"查询外部 MCP Server 工具列表。","description":"查询外部 MCP Server 工具列表。","operationId":"tools","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringListString"}}}}}}},"/demo/mcp/resource":{"get":{"tags":["MCP Client 演示案例。"],"summary":"读取外部 MCP 资源。","description":"读取外部 MCP 资源。","operationId":"resource","parameters":[{"name":"uri","in":"query","required":false,"schema":{"type":"string","default":"demo://summary"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringMcpResourceReadResult"}}}}}}},"/demo/mcp/receive":{"get":{"tags":["MCP Client 演示案例。"],"summary":"调用外部 MCP 工具并模拟业务处理。","description":"调用外部 MCP 工具并模拟业务处理。","operationId":"receive","parameters":[{"name":"toolName","in":"query","required":false,"schema":{"type":"string","default":"demo_get_data"}},{"name":"id","in":"query","required":false,"schema":{"type":"string","default":"1"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMcpDemoHandleResult"}}}}}}},"/demo/mail/sendSimpleMessage":{"get":{"tags":["邮件发送案例"],"summary":"发送邮件","description":"发送邮件","operationId":"sendSimpleMessage","parameters":[{"name":"to","in":"query","description":"接收人","required":true,"schema":{"type":"string"}},{"name":"subject","in":"query","description":"标题","required":true,"schema":{"type":"string"}},{"name":"text","in":"query","description":"内容","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/mail/sendMessageWithAttachments":{"get":{"tags":["邮件发送案例"],"summary":"发送邮件(多附件)","description":"发送邮件(多附件)","operationId":"sendMessageWithAttachments","parameters":[{"name":"to","in":"query","description":"接收人","required":true,"schema":{"type":"string"}},{"name":"subject","in":"query","description":"标题","required":true,"schema":{"type":"string"}},{"name":"text","in":"query","description":"内容","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/mail/sendMessageWithAttachment":{"get":{"tags":["邮件发送案例"],"summary":"发送邮件(带附件)","description":"发送邮件(带附件)","operationId":"sendMessageWithAttachment","parameters":[{"name":"to","in":"query","description":"接收人","required":true,"schema":{"type":"string"}},{"name":"subject","in":"query","description":"标题","required":true,"schema":{"type":"string"}},{"name":"text","in":"query","description":"内容","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/i18n":{"get":{"tags":["测试国际化"],"summary":"通过code获取国际化内容\n code为 messages","description":"通过code获取国际化内容\n code为 messages.properties 中的 key\n

\n 测试使用 user.register.success","operationId":"get_1","parameters":[{"name":"code","in":"query","description":"国际化code","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/i18n/test2":{"get":{"tags":["测试国际化"],"summary":"Bean 校验国际化\n 不传值 分别查看异常返回\n ","description":"Bean 校验国际化\n 不传值 分别查看异常返回\n

\n 测试使用 not.null","operationId":"test2","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestI18nBo"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestI18nBo"}}}}}}},"/demo/i18n/test1":{"get":{"tags":["测试国际化"],"summary":"Validator 校验国际化\n 不传值 分别查看异常返回\n ","description":"Validator 校验国际化\n 不传值 分别查看异常返回\n

\n 测试使用 not.null","operationId":"test1","parameters":[{"name":"str","in":"query","required":true,"schema":{"type":"string","minLength":1}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/excel/exportWithOptions":{"get":{"tags":["测试Excel功能"],"summary":"导出下拉框","description":"导出下拉框","operationId":"exportWithOptions","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/exportTemplateOne":{"get":{"tags":["测试Excel功能"],"summary":"单列表多数据","description":"单列表多数据","operationId":"exportTemplateOne","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/exportTemplateMultiSheet":{"get":{"tags":["测试Excel功能"],"summary":"多个sheet导出","description":"多个sheet导出","operationId":"exportTemplateMultiSheet","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/exportTemplateMuliti":{"get":{"tags":["测试Excel功能"],"summary":"多列表多数据","description":"多列表多数据","operationId":"exportTemplateMuliti","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/excel/customExport":{"get":{"tags":["测试Excel功能"],"summary":"自定义导出","description":"自定义导出","operationId":"customExport","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK"}}}},"/demo/encrypt":{"get":{"tags":["测试数据库加解密功能"],"summary":"测试数据库加解密","description":"测试数据库加解密","operationId":"test_2","parameters":[{"name":"key","in":"query","description":"测试key","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","description":"测试value","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RMapStringTestDemoEncrypt"}}}}}}},"/demo/demo/{id}":{"get":{"tags":["测试单表Controller"],"summary":"获取测试单表详细信息","description":"获取测试单表详细信息

访问权限


**权限校验:**

- `demo:demo:query`

","operationId":"getInfo_22","parameters":[{"name":"id","in":"path","description":"测试ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RTestDemoVo"}}}}}}},"/demo/demo/page":{"get":{"tags":["测试单表Controller"],"summary":"自定义分页查询","description":"自定义分页查询

访问权限


**权限校验:**

- `demo:demo:list`

","operationId":"page","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestDemoBo"}},{"name":"pageQuery","in":"query","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultTestDemoVo"}}}}}}},"/demo/demo/list":{"get":{"tags":["测试单表Controller"],"summary":"查询测试单表列表","description":"查询测试单表列表

访问权限


**权限校验:**

- `demo:demo:list`

","operationId":"list_22","parameters":[{"name":"bo","in":"query","required":true,"schema":{"$ref":"#/components/schemas/TestDemoBo"}},{"name":"pageQuery","in":"query","required":true,"schema":{"$ref":"#/components/schemas/PageQuery"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RPageResultTestDemoVo"}}}}}}},"/demo/cache/test6":{"get":{"tags":["spring-cache 演示案例"],"summary":"测试设置过期时间\n 手动设置过期时间10秒\n 11秒后获取 判断是否相等","description":"测试设置过期时间\n 手动设置过期时间10秒\n 11秒后获取 判断是否相等","operationId":"test6","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RBoolean"}}}}}}},"/demo/cache/test3":{"get":{"tags":["spring-cache 演示案例"],"summary":"测试 @CacheEvict\n ","description":"测试 @CacheEvict\n

\n 使用了CacheEvict注解的方法,会清空指定缓存\n 「一般用在删除的方法上」\n

\n cacheNames 命名规则 查看 {@link CacheNames CacheNames} 注释 支持多参数","operationId":"test3","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/cache/test2":{"get":{"tags":["spring-cache 演示案例"],"summary":"测试 @CachePut\n ","description":"测试 @CachePut\n

\n 加了@CachePut注解的方法,会把方法的返回值put到缓存里面缓存起来,供其它地方使用\n 它「通常用在新增或者实时更新方法上」\n

\n cacheNames 命名规则 查看 {@link CacheNames CacheNames} 注释 支持多参数","operationId":"test2_1","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/demo/cache/test1":{"get":{"tags":["spring-cache 演示案例"],"summary":"测试 @Cacheable\n ","description":"测试 @Cacheable\n

\n 表示这个方法有了缓存的功能,方法的返回值会被缓存下来\n 下一次调用该方法前,会去检查是否缓存中已经有值\n 如果有就直接返回,不调用方法\n 如果没有,就调用方法,然后把结果缓存起来\n 这个注解「一般用在查询方法上」\n

\n 重点说明: 缓存注解严谨与其他筛选数据功能一起使用\n 例如: 数据权限注解 会造成 缓存击穿 与 数据不一致问题\n

\n cacheNames 命名规则 查看 {@link CacheNames CacheNames} 注释 支持多参数","operationId":"test1_1","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string"}},{"name":"value","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/auth/code":{"get":{"tags":["验证码操作处理"],"summary":"获取图片验证码。","description":"获取图片验证码。

访问权限


> **权限策略**:忽略权限检查
","operationId":"getCode","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"验证码信息","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RCaptchaVo"}}}}}}},"/auth/binding/{source}":{"get":{"tags":["认证控制器,提供登录、注册、社交绑定和退出能力。"],"summary":"获取第三方绑定跳转地址。","description":"获取第三方绑定跳转地址。

访问权限


> **权限策略**:忽略权限检查
","operationId":"authBinding","parameters":[{"name":"source","in":"path","description":"登录来源","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"跳转地址","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RString"}}}}}}},"/app/profile":{"get":{"tags":["App 用户资料控制器"],"summary":"获取当前用户资料","description":"获取当前用户资料","operationId":"getProfile","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RAppUserProfileVo"}}}}}}},"/app/location/list/{homeId}":{"get":{"tags":["App 房间位置管理控制器"],"summary":"查询指定家庭的所有房间位置列表","description":"查询指定家庭的所有房间位置列表","operationId":"listLocations","parameters":[{"name":"homeId","in":"path","description":"家庭ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"位置列表(按排序值升序、创建时间升序排列)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAppLocationVo"}}}}}}},"/app/home/list":{"get":{"tags":["App 家庭管理控制器"],"summary":"查询当前用户的所有家庭列表","description":"查询当前用户的所有家庭列表","operationId":"listHomes","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"家庭列表(按是否默认降序、创建时间升序排列,包含位置数量统计)","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RListAppHomeVo"}}}}}}},"/api/snail/chat/my-agents":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"myAgents","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListOpenApiAgentVO"}}}}}}},"/api/snail/chat/conversations/messages":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"getMessages","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"conversationId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListOpenApiMessageVO"}}}}}}},"/api/snail/chat/messages":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"getMessages_1","parameters":[{"name":"agentId","in":"query","required":true,"schema":{"type":"integer","format":"int64"}},{"name":"conversationId","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultListOpenApiMessageVO"}}}}}}},"/api/snail/chat/config":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"config_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultMapStringObject"}}}}}}},"/api/snail/chat/agents":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"listAgents","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OpenApiAgentQueryRequest"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/PageResultListOpenApiAgentVO"}}}}}}},"/api/snail/chat/agent":{"get":{"tags":["snail-ai-chat-gateway-controller"],"operationId":"getAgent","parameters":[{"name":"arg0","in":"query","required":true,"schema":{"$ref":"#/components/schemas/OpenApiAgentIdentityRequest"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/ResultOpenApiAgentVO"}}}}}}},"/":{"get":{"tags":["首页"],"summary":"访问首页时返回引导提示。","description":"访问首页时返回引导提示。

访问权限


> **权限策略**:忽略权限检查
","operationId":"index","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"首页提示语","content":{"*/*":{"schema":{"type":"string"}}}}}}},"/workflow/spel/{ids}":{"delete":{"tags":["流程 SpEL 表达式定义控制器,负责表达式规则的增删改查。"],"summary":"批量删除流程 SpEL 表达式定义。","description":"批量删除流程 SpEL 表达式定义。

访问权限


**权限校验:**

- `workflow:spel:remove`

","operationId":"remove_4","parameters":[{"name":"ids","in":"path","description":"主键串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/leave/{ids}":{"delete":{"tags":["请假示例控制器,演示业务单据与流程引擎联动的典型用法。"],"summary":"批量删除请假单。","description":"批量删除请假单。

访问权限


**权限校验:**

- `workflow:leave:remove`

","operationId":"remove_5","parameters":[{"name":"ids","in":"path","description":"主键串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/deleteHisByInstanceIds/{instanceIds}":{"delete":{"tags":["流程实例管理 控制层"],"summary":"按实例 id 批量删除已完成的流程实例。","description":"按实例 id 批量删除已完成的流程实例。

访问权限


**权限校验:**

- `workflow:instance:remove`

","operationId":"deleteHisByInstanceIds","parameters":[{"name":"instanceIds","in":"path","description":"实例id","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/deleteByInstanceIds/{instanceIds}":{"delete":{"tags":["流程实例管理 控制层"],"summary":"按实例 id 批量删除流程实例。","description":"按实例 id 批量删除流程实例。

访问权限


**权限校验:**

- `workflow:instance:remove`

","operationId":"deleteByInstanceIds","parameters":[{"name":"instanceIds","in":"path","description":"实例id","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/instance/deleteByBusinessIds/{businessIds}":{"delete":{"tags":["流程实例管理 控制层"],"summary":"按业务 id 批量删除流程实例。","description":"按业务 id 批量删除流程实例。

访问权限


**权限校验:**

- `workflow:instance:remove`

","operationId":"deleteByBusinessIds","parameters":[{"name":"businessIds","in":"path","description":"业务id","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/workflow/definition/{ids}":{"delete":{"tags":["流程定义管理 控制层"],"summary":"批量删除流程定义。","description":"批量删除流程定义。

访问权限


**权限校验:**

- `workflow:definition:remove`

","operationId":"remove_6","parameters":[{"name":"ids","in":"path","description":"流程定义ID集合","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/user/{userIds}":{"delete":{"tags":["用户信息"],"summary":"删除用户","description":"删除用户

访问权限


**权限校验:**

- `system:user:remove`

","operationId":"remove_7","parameters":[{"name":"userIds","in":"path","description":"用户ID数组","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/role/{roleIds}":{"delete":{"tags":["角色信息"],"summary":"删除角色","description":"删除角色

访问权限


**权限校验:**

- `system:role:remove`

","operationId":"remove_8","parameters":[{"name":"roleIds","in":"path","description":"角色ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/post/{postIds}":{"delete":{"tags":["岗位信息操作处理"],"summary":"删除岗位","description":"删除岗位

访问权限


**权限校验:**

- `system:post:remove`

","operationId":"remove_9","parameters":[{"name":"postIds","in":"path","description":"岗位ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/notice/{noticeIds}":{"delete":{"tags":["公告 信息操作处理"],"summary":"删除通知公告","description":"删除通知公告

访问权限


**权限校验:**

- `system:notice:remove`

","operationId":"remove_10","parameters":[{"name":"noticeIds","in":"path","description":"公告ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/menu/cascade/{menuIds}":{"delete":{"tags":["菜单信息"],"summary":"批量级联删除菜单","description":"批量级联删除菜单

访问权限


**权限校验:**

- `system:menu:remove`

**角色校验:**

- `superadmin`
","operationId":"remove_11","parameters":[{"name":"menuIds","in":"path","description":"菜单ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/type/{dictIds}":{"delete":{"tags":["数据字典信息"],"summary":"删除字典类型","description":"删除字典类型

访问权限


**权限校验:**

- `system:dict:remove`

","operationId":"remove_12","parameters":[{"name":"dictIds","in":"path","description":"字典ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/type/refreshCache":{"delete":{"tags":["数据字典信息"],"summary":"刷新字典缓存。","description":"刷新字典缓存。

访问权限


**权限校验:**

- `system:dict:remove`

","operationId":"refreshCache","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/dict/data/{dictCodes}":{"delete":{"tags":["数据字典信息"],"summary":"删除字典数据","description":"删除字典数据

访问权限


**权限校验:**

- `system:dict:remove`

","operationId":"remove_13","parameters":[{"name":"dictCodes","in":"path","description":"字典code串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config/{configIds}":{"delete":{"tags":["参数配置 信息操作处理"],"summary":"删除参数配置","description":"删除参数配置

访问权限


**权限校验:**

- `system:config:remove`

","operationId":"remove_14","parameters":[{"name":"configIds","in":"path","description":"参数ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/config/refreshCache":{"delete":{"tags":["参数配置 信息操作处理"],"summary":"刷新参数缓存。","description":"刷新参数缓存。

访问权限


**权限校验:**

- `system:config:remove`

","operationId":"refreshCache_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/system/client/{ids}":{"delete":{"tags":["客户端管理"],"summary":"批量删除客户端配置。","description":"批量删除客户端配置。

访问权限


**权限校验:**

- `system:client:remove`

","operationId":"remove_15","parameters":[{"name":"ids","in":"path","description":"主键串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/{ossIds}":{"delete":{"tags":["文件上传 控制层"],"summary":"删除OSS对象存储","description":"删除OSS对象存储

访问权限


**权限校验:**

- `system:oss:remove`

","operationId":"remove_16","parameters":[{"name":"ossIds","in":"path","description":"OSS对象ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/resource/oss/config/{ossConfigIds}":{"delete":{"tags":["对象存储配置"],"summary":"批量删除对象存储配置。","description":"批量删除对象存储配置。

访问权限


**权限校验:**

- `system:ossConfig:remove`

","operationId":"remove_17","parameters":[{"name":"ossConfigIds","in":"path","description":"OSS配置ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/operlog/{operIds}":{"delete":{"tags":["操作日志记录"],"summary":"批量删除操作日志记录","description":"批量删除操作日志记录

访问权限


**权限校验:**

- `monitor:operlog:remove`

","operationId":"remove_18","parameters":[{"name":"operIds","in":"path","description":"日志ids","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/operlog/clean":{"delete":{"tags":["操作日志记录"],"summary":"清空操作日志记录。","description":"清空操作日志记录。

访问权限


**权限校验:**

- `monitor:operlog:remove`

","operationId":"clean","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/online/{tokenId}":{"delete":{"tags":["在线用户监控"],"summary":"按 token 强制用户下线,适用于管理员踢除异常会话。","description":"按 token 强制用户下线,适用于管理员踢除异常会话。

访问权限


**权限校验:**

- `monitor:online:forceLogout`

","operationId":"forceLogout","parameters":[{"name":"tokenId","in":"path","description":"token值","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/online/myself/{tokenId}":{"delete":{"tags":["在线用户监控"],"summary":"强退当前账号下指定在线设备,避免误踢其他账号的会话。","description":"强退当前账号下指定在线设备,避免误踢其他账号的会话。","operationId":"remove_19","parameters":[{"name":"tokenId","in":"path","description":"token值","required":true,"schema":{"type":"string"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/loginInfo/{infoIds}":{"delete":{"tags":["系统访问记录"],"summary":"批量删除登录日志","description":"批量删除登录日志

访问权限


**权限校验:**

- `monitor:logininfo:remove`

","operationId":"remove_20","parameters":[{"name":"infoIds","in":"path","description":"日志ids","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/monitor/loginInfo/clean":{"delete":{"tags":["系统访问记录"],"summary":"清空系统访问记录。","description":"清空系统访问记录。

访问权限


**权限校验:**

- `monitor:logininfo:remove`

","operationId":"clean_1","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/device/device/{deviceIds}":{"delete":{"tags":["后台设备管理。"],"summary":"删除设备。","description":"删除设备。

访问权限


**权限校验:**

- `device:device:remove`

","operationId":"remove_21","parameters":[{"name":"deviceIds","in":"path","description":"设备主键","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/tree/{ids}":{"delete":{"tags":["测试树表Controller"],"summary":"删除测试树表","description":"删除测试树表

访问权限


**权限校验:**

- `demo:tree:remove`

","operationId":"remove_22","parameters":[{"name":"ids","in":"path","description":"测试树ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/demo/{ids}":{"delete":{"tags":["测试单表Controller"],"summary":"删除测试单表","description":"删除测试单表

访问权限


**权限校验:**

- `demo:demo:remove`

","operationId":"remove_23","parameters":[{"name":"ids","in":"path","description":"测试ID串","required":true,"schema":{"type":"array","items":{"type":"integer","format":"int64"}}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/demo/batch":{"delete":{"tags":["测试批量方法"],"summary":"删除批量方法","description":"删除批量方法","operationId":"remove_24","responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"OK","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/auth/unlock/{socialId}":{"delete":{"tags":["认证控制器,提供登录、注册、社交绑定和退出能力。"],"summary":"取消当前用户的社交账号授权。","description":"取消当前用户的社交账号授权。

访问权限


> **权限策略**:忽略权限检查
","operationId":"unlockSocial","parameters":[{"name":"socialId","in":"path","description":"socialId","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/location/{locationId}":{"delete":{"tags":["App 房间位置管理控制器"],"summary":"删除房间位置(软删除)","description":"删除房间位置(软删除)","operationId":"deleteLocation","parameters":[{"name":"locationId","in":"path","description":"要删除的位置ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}},"/app/home/{homeId}":{"delete":{"tags":["App 家庭管理控制器"],"summary":"删除家庭\n ","description":"删除家庭\n

\n 软删除指定家庭及其下所有位置,默认家庭不允许删除。","operationId":"deleteHome","parameters":[{"name":"homeId","in":"path","description":"要删除的家庭ID","required":true,"schema":{"type":"integer","format":"int64"}}],"responses":{"401":{"description":"Unauthorized","content":{"*/*":{"schema":{"type":"string"}}}},"200":{"description":"操作结果","content":{"*/*":{"schema":{"$ref":"#/components/schemas/RVoid"}}}}}}}},"components":{"schemas":{"RVoid":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"description":"响应业务数据"}}},"FlowSpelBo":{"type":"object","description":"流程spel表达式定义业务对象 flow_spel","properties":{"id":{"type":"integer","format":"int64","description":"主键id"},"componentName":{"type":"string","description":"组件名称"},"methodName":{"type":"string","description":"方法名"},"methodParams":{"type":"string","description":"参数"},"viewSpel":{"type":"string","description":"预览spel值","minLength":1},"status":{"type":"string","description":"状态(0正常 1停用)","minLength":1},"remark":{"type":"string","description":"备注"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}},"required":["status","viewSpel"]},"TestLeaveBo":{"type":"object","description":"请假业务对象 test_leave","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"flowCode":{"type":"string","description":"流程code"},"applyCode":{"type":"string","description":"申请编号"},"leaveType":{"type":"string","description":"请假类型","minLength":1},"startDate":{"type":"string","format":"date-time","description":"开始时间"},"endDate":{"type":"string","format":"date-time","description":"结束时间"},"leaveDays":{"type":"integer","format":"int32","description":"请假天数"},"startLeaveDays":{"type":"integer","format":"int32","description":"开始时间"},"endLeaveDays":{"type":"integer","format":"int32","description":"结束时间"},"remark":{"type":"string","description":"请假原因"},"status":{"type":"string","description":"状态"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}},"required":["endDate","id","leaveType","startDate"]},"RTestLeaveVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/TestLeaveVo","description":"响应业务数据"}}},"TestLeaveVo":{"type":"object","description":"请假视图对象 test_leave","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"applyCode":{"type":"string","description":"申请编号"},"leaveType":{"type":"string","description":"请假类型"},"startDate":{"type":"string","format":"date-time","description":"开始时间"},"endDate":{"type":"string","format":"date-time","description":"结束时间"},"leaveDays":{"type":"integer","format":"int32","description":"请假天数"},"remark":{"type":"string","description":"备注"},"status":{"type":"string","description":"状态"}}},"FlowVariableBo":{"type":"object","description":"流程变量参数","properties":{"instanceId":{"type":"integer","format":"int64","description":"流程实例 ID"},"key":{"type":"string","description":"变量键"},"value":{"type":"string","description":"变量值"}}},"FlowCancelBo":{"type":"object","description":"撤销流程请求对象。","properties":{"businessId":{"type":"string","description":"业务 ID"},"message":{"type":"string","description":"撤销说明"}}},"RBoolean":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"boolean","description":"响应业务数据"}}},"FlowDefinition":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"createTime":{"type":"string","format":"date-time"},"updateTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateBy":{"type":"string"},"tenantId":{"type":"string"},"delFlag":{"type":"string"},"flowCode":{"type":"string"},"flowName":{"type":"string"},"modelValue":{"type":"string"},"category":{"type":"string"},"version":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"activityStatus":{"type":"integer","format":"int32"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"ext":{"type":"string"},"nodeList":{"type":"array","items":{"$ref":"#/components/schemas/Node"}},"userList":{"type":"array","items":{"$ref":"#/components/schemas/User"}}}},"Node":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"version":{"type":"string","deprecated":true},"tenantId":{"type":"string"},"listenerPath":{"type":"string"},"definitionId":{"type":"integer","format":"int64"},"anyNodeSkip":{"type":"string"},"coordinate":{"type":"string"},"skipList":{"type":"array","items":{"$ref":"#/components/schemas/Skip"}},"listenerType":{"type":"string"},"updateBy":{"type":"string"},"nodeType":{"type":"integer","format":"int32"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"nodeName":{"type":"string"},"nodeCode":{"type":"string"},"nodeRatio":{"type":"string"},"updateTime":{"type":"string","format":"date-time"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"permissionFlag":{"type":"string"}}},"Skip":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"nextNodeType":{"type":"integer","format":"int32"},"nowNodeType":{"type":"integer","format":"int32"},"tenantId":{"type":"string"},"definitionId":{"type":"integer","format":"int64"},"coordinate":{"type":"string"},"skipCondition":{"type":"string"},"nowNodeCode":{"type":"string"},"skipName":{"type":"string"},"nextNodeCode":{"type":"string"},"skipType":{"type":"string"},"nodeId":{"type":"integer","format":"int64"},"updateBy":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateTime":{"type":"string","format":"date-time"}}},"User":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string"},"tenantId":{"type":"string"},"updateBy":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"processedBy":{"type":"string"},"associated":{"type":"integer","format":"int64"},"updateTime":{"type":"string","format":"date-time"}}},"FlowCategoryBo":{"type":"object","description":"流程分类业务对象 wf_category","properties":{"categoryId":{"type":"integer","format":"int64","description":"流程分类ID"},"parentId":{"type":"integer","format":"int64","description":"父流程分类id"},"categoryName":{"type":"string","description":"流程分类名称","minLength":1},"orderNum":{"type":"integer","format":"int64","description":"显示顺序"}},"required":["categoryId","categoryName","parentId"]},"SysUserBo":{"type":"object","description":"用户信息业务对象 sys_user","properties":{"userId":{"type":"integer","format":"int64","description":"用户ID"},"deptId":{"type":"integer","format":"int64","description":"部门ID"},"userName":{"type":"string","description":"用户账号","maxLength":30,"minLength":2},"nickName":{"type":"string","description":"用户昵称","maxLength":30,"minLength":0},"userType":{"type":"string","description":"用户类型(sys_user系统用户)"},"email":{"type":"string","format":"email","description":"用户邮箱","maxLength":50,"minLength":0},"phoneNumber":{"type":"string","description":"手机号码"},"gender":{"type":"string","description":"用户性别(0男 1女 2未知)"},"avatar":{"type":"integer","format":"int64","description":"头像 OSS ID"},"password":{"type":"string","description":"密码"},"status":{"type":"string","description":"账号状态(0正常 1停用)"},"remark":{"type":"string","description":"备注"},"roleIds":{"type":"array","description":"角色组","items":{"type":"integer","format":"int64"},"maxItems":2147483647,"minItems":1},"postIds":{"type":"array","description":"岗位组","items":{"type":"integer","format":"int64"}},"roleId":{"type":"integer","format":"int64","description":"数据权限 当前角色ID"},"userIds":{"type":"string","description":"用户ID"},"excludeUserIds":{"type":"string","description":"排除不查询的用户(工作流用)"},"createBy":{"type":"integer","format":"int64","description":"创建者"},"updateBy":{"type":"integer","format":"int64","description":"更新者"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"},"superAdmin":{"type":"boolean","description":"判断当前用户是否为超级管理员。"}},"required":["nickName","userName"]},"SysUserProfileBo":{"type":"object","description":"个人信息业务处理","properties":{"nickName":{"type":"string","description":"用户昵称","maxLength":30,"minLength":0},"email":{"type":"string","format":"email","description":"用户邮箱","maxLength":50,"minLength":0},"phoneNumber":{"type":"string","description":"手机号码","pattern":"(?:0|86|\\+86)?1[3-9]\\d{9}"},"gender":{"type":"string","description":"用户性别(0男 1女 2未知)"},"avatar":{"type":"integer","format":"int64","description":"头像 OSS ID"}}},"SysUserPasswordBo":{"type":"object","description":"用户密码修改","properties":{"oldPassword":{"type":"string","description":"旧密码","minLength":1},"newPassword":{"type":"string","description":"新密码","minLength":1}},"required":["newPassword","oldPassword"]},"SysRoleBo":{"type":"object","description":"角色信息业务对象 sys_role","properties":{"roleId":{"type":"integer","format":"int64","description":"角色ID"},"roleName":{"type":"string","description":"角色名称","maxLength":30,"minLength":0},"roleKey":{"type":"string","description":"角色权限字符串","maxLength":100,"minLength":0},"roleSort":{"type":"integer","format":"int32","description":"显示顺序"},"dataScope":{"type":"string","description":"数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)"},"menuCheckStrictly":{"type":"boolean","description":"菜单树选择项是否关联显示"},"deptCheckStrictly":{"type":"boolean","description":"部门树选择项是否关联显示"},"status":{"type":"string","description":"角色状态(0正常 1停用)"},"remark":{"type":"string","description":"备注"},"menuIds":{"type":"array","description":"菜单组","items":{"type":"integer","format":"int64"}},"deptIds":{"type":"array","description":"部门组(数据权限)","items":{"type":"integer","format":"int64"}},"params":{"type":"object","additionalProperties":{},"description":"请求参数"},"superAdmin":{"type":"boolean","description":"判断当前角色是否为超级管理员角色。"}},"required":["roleKey","roleName","roleSort"]},"SysUserRole":{"type":"object","description":"用户和角色关联 sys_user_role","properties":{"userId":{"type":"integer","format":"int64","description":"用户ID"},"roleId":{"type":"integer","format":"int64","description":"角色ID"}}},"SysPostBo":{"type":"object","description":"岗位信息业务对象 sys_post","properties":{"postId":{"type":"integer","format":"int64","description":"岗位ID"},"deptId":{"type":"integer","format":"int64","description":"部门id(单部门)"},"belongDeptId":{"type":"integer","format":"int64","description":"归属部门id(部门树)"},"postCode":{"type":"string","description":"岗位编码","maxLength":64,"minLength":0},"postName":{"type":"string","description":"岗位名称","maxLength":50,"minLength":0},"postCategory":{"type":"string","description":"岗位类别编码","maxLength":100,"minLength":0},"postSort":{"type":"integer","format":"int32","description":"显示顺序"},"status":{"type":"string","description":"状态(0正常 1停用)"},"remark":{"type":"string","description":"备注"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}},"required":["deptId","postCode","postName","postSort"]},"SysNoticeBo":{"type":"object","description":"通知公告业务对象 sys_notice","properties":{"noticeId":{"type":"integer","format":"int64","description":"公告ID"},"noticeTitle":{"type":"string","description":"公告标题","maxLength":50,"minLength":0},"noticeType":{"type":"string","description":"公告类型(1通知 2公告)"},"noticeContent":{"type":"string","description":"公告内容"},"status":{"type":"string","description":"公告状态(0正常 1关闭)"},"remark":{"type":"string","description":"备注"},"createByName":{"type":"string","description":"创建人名称"}},"required":["noticeTitle"]},"SysMenuBo":{"type":"object","description":"菜单权限业务对象 sys_menu","properties":{"menuId":{"type":"integer","format":"int64","description":"菜单ID"},"parentId":{"type":"integer","format":"int64","description":"父菜单ID"},"menuName":{"type":"string","description":"菜单名称","maxLength":50,"minLength":0},"orderNum":{"type":"integer","format":"int32","description":"显示顺序"},"path":{"type":"string","description":"路由地址","maxLength":200,"minLength":0},"component":{"type":"string","description":"组件路径","maxLength":200,"minLength":0},"queryParam":{"type":"string","description":"路由参数"},"isFrame":{"type":"string","description":"是否为外链(Y是 N否)"},"isCache":{"type":"string","description":"是否缓存(Y缓存 N不缓存)"},"menuType":{"type":"string","description":"菜单类型(M目录 C菜单 F按钮)","minLength":1},"visible":{"type":"string","description":"显示状态(0显示 1隐藏)"},"status":{"type":"string","description":"菜单状态(0正常 1停用)"},"perms":{"type":"string","description":"权限标识","maxLength":100,"minLength":0,"pattern":"^$|^[a-zA-Z0-9_]+:[a-zA-Z0-9_*]+:[a-zA-Z0-9_*]+$"},"icon":{"type":"string","description":"菜单图标"},"activeMenu":{"type":"string","description":"激活菜单路径","maxLength":255,"minLength":0},"ext":{"type":"string","description":"扩展字段","maxLength":2000,"minLength":0},"remark":{"type":"string","description":"备注"}},"required":["menuName","menuType","orderNum"]},"SysDictTypeBo":{"type":"object","description":"字典类型业务对象 sys_dict_type","properties":{"dictId":{"type":"integer","format":"int64","description":"字典主键"},"dictName":{"type":"string","description":"字典名称","maxLength":100,"minLength":0},"dictType":{"type":"string","description":"字典类型","maxLength":100,"minLength":0,"pattern":"^[a-z][a-z0-9_]*$"},"remark":{"type":"string","description":"备注"}},"required":["dictName","dictType"]},"SysDictDataBo":{"type":"object","description":"字典数据业务对象 sys_dict_data","properties":{"dictCode":{"type":"integer","format":"int64","description":"字典编码"},"dictSort":{"type":"integer","format":"int32","description":"字典排序"},"dictLabel":{"type":"string","description":"字典标签","maxLength":100,"minLength":0},"dictValue":{"type":"string","description":"字典键值","maxLength":100,"minLength":0},"dictType":{"type":"string","description":"字典类型","maxLength":100,"minLength":0},"cssClass":{"type":"string","description":"样式属性(其他样式扩展)","maxLength":100,"minLength":0},"listClass":{"type":"string","description":"表格回显样式"},"isDefault":{"type":"string","description":"是否默认(Y是 N否)"},"createDept":{"type":"integer","format":"int64","description":"创建部门"},"remark":{"type":"string","description":"备注"}},"required":["dictLabel","dictType","dictValue"]},"SysDeptBo":{"type":"object","description":"部门业务对象 sys_dept","properties":{"deptId":{"type":"integer","format":"int64","description":"部门id"},"parentId":{"type":"integer","format":"int64","description":"父部门ID"},"deptName":{"type":"string","description":"部门名称","maxLength":30,"minLength":0},"deptCategory":{"type":"string","description":"部门类别编码","maxLength":100,"minLength":0},"orderNum":{"type":"integer","format":"int32","description":"显示顺序"},"leader":{"type":"integer","format":"int64","description":"负责人"},"phone":{"type":"string","description":"联系电话","maxLength":11,"minLength":0},"email":{"type":"string","format":"email","description":"邮箱","maxLength":50,"minLength":0},"status":{"type":"string","description":"部门状态(0正常 1停用)"},"belongDeptId":{"type":"integer","format":"int64","description":"归属部门id(部门树)"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}},"required":["deptName","orderNum"]},"SysConfigBo":{"type":"object","description":"参数配置业务对象 sys_config","properties":{"configId":{"type":"integer","format":"int64","description":"参数主键"},"configName":{"type":"string","description":"参数名称","maxLength":100,"minLength":0},"configKey":{"type":"string","description":"参数键名","maxLength":100,"minLength":0},"configValue":{"type":"string","description":"参数键值","maxLength":500,"minLength":0},"configType":{"type":"string","description":"系统内置(Y是 N否)"},"remark":{"type":"string","description":"备注"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}},"required":["configKey","configName","configValue"]},"SysClientBo":{"type":"object","description":"授权管理业务对象 sys_client","properties":{"id":{"type":"integer","format":"int64","description":"id"},"clientId":{"type":"string","description":"客户端id"},"clientKey":{"type":"string","description":"客户端key","minLength":1},"clientSecret":{"type":"string","description":"客户端秘钥","minLength":1},"grantTypeList":{"type":"array","description":"授权类型","items":{"type":"string"}},"grantType":{"type":"string","description":"授权类型"},"deviceType":{"type":"string","description":"设备类型"},"accessPath":{"type":"string","description":"允许访问路径"},"accessPathList":{"type":"array","description":"允许访问路径列表","items":{"type":"string"}},"ipWhitelist":{"type":"string","description":"IP白名单"},"ipWhitelistList":{"type":"array","description":"IP白名单列表","items":{"type":"string"}},"activeTimeout":{"type":"integer","format":"int64","description":"token活跃超时时间"},"timeout":{"type":"integer","format":"int64","description":"token固定超时时间"},"status":{"type":"string","description":"状态(0正常 1停用)"}},"required":["clientKey","clientSecret","grantTypeList","id"]},"SysOssConfigBo":{"type":"object","description":"对象存储配置业务对象 sys_oss_config","properties":{"ossConfigId":{"type":"integer","format":"int64","description":"主键"},"configKey":{"type":"string","description":"配置key","maxLength":100,"minLength":2},"accessKey":{"type":"string","description":"accessKey","maxLength":100,"minLength":2},"secretKey":{"type":"string","description":"秘钥","maxLength":100,"minLength":2},"bucketName":{"type":"string","description":"桶名称","maxLength":100,"minLength":2},"prefix":{"type":"string","description":"前缀"},"endpoint":{"type":"string","description":"访问站点","maxLength":100,"minLength":2},"domainUrl":{"type":"string","description":"自定义域名"},"isHttps":{"type":"string","description":"是否https(Y=是,N=否)"},"status":{"type":"string","description":"是否默认(Y=是,N=否)"},"region":{"type":"string","description":"域"},"ext1":{"type":"string","description":"扩展字段"},"remark":{"type":"string","description":"备注"},"accessPolicy":{"type":"string","description":"桶权限类型(0private 1public 2custom)","minLength":1}},"required":["accessKey","accessPolicy","bucketName","configKey","endpoint","ossConfigId","secretKey"]},"CzDeviceBo":{"type":"object","description":"后台设备管理业务对象。","properties":{"deviceId":{"type":"integer","format":"int64","description":"设备主键"},"name":{"type":"string","description":"设备名称","maxLength":20,"minLength":0},"productId":{"type":"integer","format":"int64","description":"产品模板"},"mac":{"type":"string","description":"MAC"},"locationId":{"type":"integer","format":"int64","description":"所在房间"},"filterTotalDays":{"type":"integer","format":"int32","description":"初始滤芯总寿命天数,仅滤芯类产品使用"},"remark":{"type":"string","description":"备注","maxLength":500,"minLength":0},"model":{"type":"string","description":"型号"},"sn":{"type":"string","description":"序列号"},"status":{"type":"string","description":"状态(0未激活 1在线 2离线)"},"homeId":{"type":"integer","format":"int64","description":"家庭"},"keyword":{"type":"string","description":"名称、型号、MAC、序列号或设备编号"}},"required":["deviceId","locationId","name"]},"TestTreeBo":{"type":"object","description":"测试树表业务对象 test_tree","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"parentId":{"type":"integer","format":"int64","description":"父ID"},"deptId":{"type":"integer","format":"int64","description":"部门id"},"userId":{"type":"integer","format":"int64","description":"用户id"},"treeName":{"type":"string","description":"树节点名","minLength":1}},"required":["deptId","id","treeName","userId"]},"TestDemoBo":{"type":"object","description":"测试单表业务对象 test_demo","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"deptId":{"type":"integer","format":"int64","description":"部门id"},"userId":{"type":"integer","format":"int64","description":"用户id"},"orderNum":{"type":"integer","format":"int32","description":"排序号"},"testKey":{"type":"string","description":"key键","minLength":1},"value":{"type":"string","description":"值","minLength":1},"version":{"type":"integer","format":"int64","description":"版本"}},"required":["deptId","id","orderNum","testKey","userId","value"]},"OpenApiConversationUpdateTitleRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"},"conversationId":{"type":"string","minLength":1},"openId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}},"required":["agentId","conversationId","openId","title"]},"ResultVoid":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{}}},"FlowUrgeTaskBo":{"type":"object","description":"流程变量参数","properties":{"taskIdList":{"type":"array","description":"任务id","items":{"type":"integer","format":"int64"}},"messageType":{"type":"array","description":"消息类型","items":{"type":"string"}},"message":{"type":"string","description":"催办内容"}}},"FlowTerminationBo":{"type":"object","description":"终止任务请求对象","properties":{"taskId":{"type":"integer","format":"int64","description":"任务 ID"},"comment":{"type":"string","description":"终止意见"}}},"TaskOperationBo":{"type":"object","description":"任务操作业务对象,用于描述任务委派、转办、加签等操作的必要参数\n 包含了用户ID、任务ID、任务相关的消息、以及加签/减签的用户ID","properties":{"userId":{"type":"string","description":"委派/转办人的用户ID(必填,准对委派/转办人操作)"},"userIds":{"type":"array","description":"加签/减签人的用户ID列表(必填,针对加签/减签操作)","items":{"type":"string"}},"taskId":{"type":"integer","format":"int64","description":"任务ID(必填)"},"messageType":{"type":"array","description":"消息类型","items":{"type":"string"}},"message":{"type":"string","description":"意见或备注信息(可选)"}},"required":["taskId"]},"FlowInstanceBizExt":{"type":"object","description":"流程实例业务扩展对象 flow_instance_biz_ext","properties":{"createBy":{"type":"integer","format":"int64","description":"创建者"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateBy":{"type":"integer","format":"int64","description":"更新者"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"id":{"type":"integer","format":"int64","description":"主键"},"instanceId":{"type":"integer","format":"int64","description":"流程实例ID"},"businessId":{"type":"string","description":"业务ID"},"businessCode":{"type":"string","description":"业务编码"},"businessTitle":{"type":"string","description":"业务标题"},"delFlag":{"type":"string","description":"删除标志(0代表存在 1代表删除)"}}},"StartProcessBo":{"type":"object","description":"启动流程对象","properties":{"businessId":{"type":"string","description":"业务唯一值id","minLength":1},"flowCode":{"type":"string","description":"流程定义编码","minLength":1},"handler":{"type":"string","description":"办理人(可不填 用于覆盖当前节点办理人)"},"variables":{"type":"object","additionalProperties":{},"description":"流程变量,前端会提交一个元素{'entity': {业务详情数据对象}}"},"bizExt":{"$ref":"#/components/schemas/FlowInstanceBizExt","description":"流程业务扩展信息"}},"required":["businessId","flowCode"]},"RStartProcessReturnDTO":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/StartProcessReturnDTO","description":"响应业务数据"}}},"StartProcessReturnDTO":{"type":"object","description":"启动流程后的返回结果对象。","properties":{"processInstanceId":{"type":"integer","format":"int64","description":"流程实例 ID"},"taskId":{"type":"integer","format":"int64","description":"首个任务 ID"}}},"FlowNextNodeBo":{"type":"object","description":"查询下一节点信息的请求对象。","properties":{"taskId":{"type":"integer","format":"int64","description":"任务id"},"variables":{"type":"object","additionalProperties":{},"description":"流程变量"}}},"FlowNode":{"type":"object","properties":{"skipList":{"type":"array","items":{"$ref":"#/components/schemas/Skip"}},"id":{"type":"integer","format":"int64"},"createTime":{"type":"string","format":"date-time"},"updateTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateBy":{"type":"string"},"tenantId":{"type":"string"},"delFlag":{"type":"string"},"nodeType":{"type":"integer","format":"int32"},"definitionId":{"type":"integer","format":"int64"},"nodeCode":{"type":"string"},"nodeName":{"type":"string"},"permissionFlag":{"type":"string"},"nodeRatio":{"type":"string"},"coordinate":{"type":"string"},"version":{"type":"string","deprecated":true},"anyNodeSkip":{"type":"string"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"ext":{"type":"string"}}},"RListFlowNode":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/FlowNode"}}}},"CompleteTaskBo":{"type":"object","description":"办理任务请求对象","properties":{"taskId":{"type":"integer","format":"int64","description":"任务id"},"fileId":{"type":"string","description":"附件id"},"flowCopyList":{"type":"array","description":"抄送人员","items":{"$ref":"#/components/schemas/FlowCopyBo"}},"messageType":{"type":"array","description":"消息类型","items":{"type":"string"}},"message":{"type":"string","description":"办理意见"},"notice":{"type":"string","description":"消息通知"},"handler":{"type":"string","description":"办理人(可不填 用于覆盖当前节点办理人)"},"variables":{"type":"object","additionalProperties":{},"description":"流程变量"},"assigneeMap":{"type":"object","additionalProperties":{},"description":"弹窗选择的办理人"},"ext":{"type":"string","description":"扩展变量(此处为逗号分隔的ossId)"}},"required":["taskId"]},"FlowCopyBo":{"type":"object","description":"流程抄送请求对象。","properties":{"userId":{"type":"integer","format":"int64","description":"用户id"},"nickName":{"type":"string","description":"用户昵称"}}},"BackProcessBo":{"type":"object","description":"驳回参数请求","properties":{"taskId":{"type":"integer","format":"int64","description":"任务ID"},"fileId":{"type":"string","description":"附件id"},"messageType":{"type":"array","description":"消息类型","items":{"type":"string"}},"nodeCode":{"type":"string","description":"驳回的节点id(目前未使用,直接驳回到申请人)"},"message":{"type":"string","description":"办理意见"},"notice":{"type":"string","description":"通知"},"variables":{"type":"object","additionalProperties":{},"description":"流程变量"}},"required":["taskId"]},"FlowInvalidBo":{"type":"object","description":"作废流程请求对象。","properties":{"id":{"type":"integer","format":"int64","description":"流程实例 ID"},"comment":{"type":"string","description":"作废意见"}}},"DefJson":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"flowCode":{"type":"string"},"flowName":{"type":"string"},"modelValue":{"type":"string"},"category":{"type":"string"},"version":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"instance":{"$ref":"#/components/schemas/Instance"},"ext":{"type":"string"},"extMap":{"type":"object","additionalProperties":{}},"nodeList":{"type":"array","items":{"$ref":"#/components/schemas/NodeJson"}},"chartStatusColor":{"type":"array","items":{"type":"string"}},"topText":{"type":"string"},"topTextShow":{"type":"boolean"},"createBy":{"type":"string"},"updateBy":{"type":"string"},"categoryList":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}},"formPathList":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}}}},"InfoItem":{"type":"object","properties":{"prefix":{"type":"string"},"prefixStyle":{"type":"object","additionalProperties":{}},"content":{"type":"string"},"contentStyle":{"type":"object","additionalProperties":{}},"rowStyle":{"type":"object","additionalProperties":{}}}},"Instance":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"tenantId":{"type":"string"},"activityStatus":{"type":"integer","format":"int32"},"defJson":{"type":"string"},"definitionId":{"type":"integer","format":"int64"},"variable":{"type":"string"},"updateBy":{"type":"string"},"nodeType":{"type":"integer","format":"int32"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"nodeName":{"type":"string"},"flowStatus":{"type":"string"},"businessId":{"type":"string"},"nodeCode":{"type":"string"},"flowName":{"type":"string"},"variableMap":{"type":"object","additionalProperties":{}},"updateTime":{"type":"string","format":"date-time"},"formCustom":{"type":"string"},"formPath":{"type":"string"}}},"NodeJson":{"type":"object","properties":{"nodeType":{"type":"integer","format":"int32"},"nodeCode":{"type":"string"},"nodeName":{"type":"string"},"version":{"type":"string"},"permissionFlag":{"type":"string"},"nodeRatio":{"type":"string"},"coordinate":{"type":"string"},"anyNodeSkip":{"type":"string"},"listenerType":{"type":"string"},"listenerPath":{"type":"string"},"formCustom":{"type":"string"},"formPath":{"type":"string"},"ext":{"type":"string"},"status":{"type":"integer","format":"int32"},"extMap":{"type":"object","additionalProperties":{}},"promptContent":{"$ref":"#/components/schemas/PromptContent"},"skipList":{"type":"array","items":{"$ref":"#/components/schemas/SkipJson"}},"createBy":{"type":"string"},"updateBy":{"type":"string"}}},"PromptContent":{"type":"object","properties":{"dialogStyle":{"type":"object","additionalProperties":{}},"info":{"type":"array","items":{"$ref":"#/components/schemas/InfoItem"}}}},"SkipJson":{"type":"object","properties":{"nowNodeCode":{"type":"string"},"nextNodeCode":{"type":"string"},"skipName":{"type":"string"},"skipType":{"type":"string"},"skipCondition":{"type":"string"},"coordinate":{"type":"string"},"status":{"type":"integer","format":"int32"},"extMap":{"type":"object","additionalProperties":{}},"promptContent":{"type":"array","items":{"type":"string"}},"createBy":{"type":"string"},"updateBy":{"type":"string"}}},"Tree":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"parentId":{"type":"string"},"children":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}}}},"ApiResultVoid":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{}}},"FlowDto":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"formContent":{"type":"string"},"form":{"$ref":"#/components/schemas/Form"},"data":{}}},"Form":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"version":{"type":"string"},"tenantId":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"formContent":{"type":"string"},"formCode":{"type":"string"},"formType":{"type":"integer","format":"int32"},"formName":{"type":"string"},"updateBy":{"type":"string"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"updateTime":{"type":"string","format":"date-time"},"formPath":{"type":"string"}}},"ApiResultInstance":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/Instance"}}},"RString":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"string","description":"响应业务数据"}}},"OpenApiUserVO":{"type":"object","properties":{"openId":{"type":"string"},"externalId":{"type":"string"},"nickname":{"type":"string"},"avatarUrl":{"type":"string"},"created":{"type":"boolean"}}},"ROpenApiUserVO":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/OpenApiUserVO","description":"响应业务数据"}}},"RSysOssUploadVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysOssUploadVo","description":"响应业务数据"}}},"SysOssUploadVo":{"type":"object","description":"OSS 上传响应对象。","properties":{"url":{"type":"string","description":"文件访问地址"},"fileName":{"type":"string","description":"原始文件名"},"ossId":{"type":"string","description":"OSS 对象 ID"}}},"SysOperLogBo":{"type":"object","description":"操作日志记录业务对象 sys_oper_log","properties":{"operId":{"type":"integer","format":"int64","description":"日志主键"},"title":{"type":"string","description":"模块标题"},"businessType":{"type":"integer","format":"int32","description":"业务类型(0其它 1新增 2修改 3删除)"},"businessTypes":{"type":"array","description":"业务类型数组","items":{"type":"integer","format":"int32"}},"method":{"type":"string","description":"方法名称"},"requestMethod":{"type":"string","description":"请求方式"},"operatorType":{"type":"integer","format":"int32","description":"操作类别(0其它 1后台用户 2手机端用户)"},"operName":{"type":"string","description":"操作人员"},"userId":{"type":"integer","format":"int64","description":"操作用户ID"},"deptId":{"type":"integer","format":"int64","description":"操作部门ID"},"deptName":{"type":"string","description":"部门名称"},"clientKey":{"type":"string","description":"客户端"},"deviceType":{"type":"string","description":"设备类型"},"browser":{"type":"string","description":"浏览器类型"},"os":{"type":"string","description":"操作系统"},"operUrl":{"type":"string","description":"请求URL"},"operIp":{"type":"string","description":"主机地址"},"operLocation":{"type":"string","description":"操作地点"},"operParam":{"type":"string","description":"请求参数"},"jsonResult":{"type":"string","description":"返回参数"},"status":{"type":"integer","format":"int32","description":"操作状态(0正常 1异常)"},"errorMsg":{"type":"string","description":"错误消息"},"operTime":{"type":"string","format":"date-time","description":"操作时间"},"costTime":{"type":"integer","format":"int64","description":"消耗时间"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}}},"SysLoginInfoBo":{"type":"object","description":"系统访问记录业务对象 sys_login_info","properties":{"infoId":{"type":"integer","format":"int64","description":"访问ID"},"userName":{"type":"string","description":"用户账号"},"clientKey":{"type":"string","description":"客户端"},"deviceType":{"type":"string","description":"设备类型"},"ipaddr":{"type":"string","description":"登录IP地址"},"loginLocation":{"type":"string","description":"登录地点"},"browser":{"type":"string","description":"浏览器类型"},"os":{"type":"string","description":"操作系统"},"status":{"type":"string","description":"登录状态(0成功 1失败)"},"msg":{"type":"string","description":"提示消息"},"loginTime":{"type":"string","format":"date-time","description":"访问时间"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}}},"ExportDemoVo":{"type":"object","description":"带有下拉选的Excel导出","properties":{"nickName":{"type":"string","description":"用户昵称"},"userStatus":{"type":"string","description":"用户类型\n

\n 使用ExcelEnumFormat注解需要进行下拉选的部分"},"gender":{"type":"string","description":"性别\n

\n 使用ExcelDictFormat注解需要进行下拉选的部分"},"phoneNumber":{"type":"string","description":"手机号"},"email":{"type":"string","description":"Email"},"province":{"type":"string","description":"省\n

\n 级联下拉,仅判断是否选了"},"provinceId":{"type":"integer","format":"int32","description":"数据库中的省ID\n

\n 处理完毕后再判断是否市正确的值"},"city":{"type":"string","description":"市\n

\n 级联下拉"},"cityId":{"type":"integer","format":"int32","description":"数据库中的市ID"},"area":{"type":"string","description":"县\n

\n 级联下拉"},"areaId":{"type":"integer","format":"int32","description":"数据库中的县ID"}}},"SocialLoginBody":{"type":"object","description":"第三方平台登录绑定请求对象。","properties":{"clientId":{"type":"string","description":"客户端id","minLength":1},"grantType":{"type":"string","description":"授权类型","minLength":1},"code":{"type":"string","description":"验证码"},"uuid":{"type":"string","description":"验证码唯一标识。"},"source":{"type":"string","description":"第三方登录平台","minLength":1},"socialCode":{"type":"string","description":"第三方登录code","minLength":1},"socialState":{"type":"string","description":"第三方登录socialState","minLength":1}},"required":["clientId","grantType","socialCode","socialState","source"]},"RegisterBody":{"type":"object","description":"用户注册对象","properties":{"clientId":{"type":"string","description":"客户端id","minLength":1},"grantType":{"type":"string","description":"授权类型","minLength":1},"code":{"type":"string","description":"验证码"},"uuid":{"type":"string","description":"验证码唯一标识。"},"username":{"type":"string","description":"用户名","minLength":1},"password":{"type":"string","description":"用户密码","minLength":1},"userType":{"type":"string","description":"用户类型"}},"required":["clientId","grantType","password","username"]},"LoginVo":{"type":"object","description":"登录成功后的令牌信息返回对象。","properties":{"scope":{"type":"string","description":"令牌权限"},"openid":{"type":"string","description":"用户 openid"},"access_token":{"type":"string","description":"授权令牌"},"refresh_token":{"type":"string","description":"刷新令牌"},"expire_in":{"type":"integer","format":"int64","description":"授权令牌 access_token 的有效期"},"refresh_expire_in":{"type":"integer","format":"int64","description":"刷新令牌 refresh_token 的有效期"},"client_id":{"type":"string","description":"应用id"}}},"RLoginVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/LoginVo","description":"响应业务数据"}}},"UpdateProfileBo":{"type":"object","description":"修改用户资料请求体","properties":{"nickName":{"type":"string","description":"用户昵称","maxLength":10,"minLength":1},"avatarOssId":{"type":"integer","format":"int64","description":"头像 OSS ID"},"avatarUrl":{"type":"string","description":"头像 URL"},"gender":{"type":"string","description":"性别(0未知 1男 2女)"},"birthday":{"type":"string","description":"生日"},"province":{"type":"string","description":"省份","maxLength":10,"minLength":0},"city":{"type":"string","description":"城市","maxLength":10,"minLength":0},"district":{"type":"string","description":"区县","maxLength":10,"minLength":0}}},"AvatarUploadVo":{"type":"object","description":"头像上传响应对象","properties":{"url":{"type":"string"},"fileName":{"type":"string"},"ossId":{"type":"string"}}},"RAvatarUploadVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/AvatarUploadVo","description":"响应业务数据"}}},"UpdateLocationBo":{"type":"object","properties":{"locationId":{"type":"integer","format":"int64"},"locationName":{"type":"string","maxLength":10,"minLength":1},"icon":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"}},"required":["locationId","locationName"]},"CreateLocationBo":{"type":"object","properties":{"homeId":{"type":"integer","format":"int64"},"locationName":{"type":"string","maxLength":10,"minLength":1},"icon":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"}},"required":["homeId","locationName"]},"CreateHomeBo":{"type":"object","properties":{"homeName":{"type":"string","maxLength":10,"minLength":2}},"required":["homeName"]},"UpdateDeviceRuntimeBo":{"type":"object","description":"设备运行数据更新参数\n

\n 前端通过蓝牙同步设备运行状态时提交。","properties":{"deviceId":{"type":"integer","format":"int64","description":"设备ID"},"status":{"type":"string","description":"状态(0未激活 1在线 2离线)"},"bluetoothConnected":{"type":"string","description":"蓝牙连接状态(0未连接 1已连接)"},"signalLevel":{"type":"string","description":"信号强度(0离线 1弱 2一般 3强)"},"charging":{"type":"string","description":"充电状态(0未充电 1充电中)"},"runMode":{"type":"string","description":"运行模式(0自动 1车载 2桌面)"},"fanLevel":{"type":"string","description":"风速挡位(0标准 1强力 2低档)"},"tvoc":{"type":"number","description":"TVOC 原始值"},"powerMode":{"type":"string","description":"供电模式(0USB 1电池)"},"filterTotalDays":{"type":"string","description":"滤芯总寿命天数"},"filterRemainDays":{"type":"string","description":"滤芯剩余天数"},"parkingShutdown":{"type":"string","description":"停机模式(0关机 1开机)"}},"required":["deviceId"]},"DeviceRuntimeQueryBo":{"type":"object","description":"设备运行数据查询参数","properties":{"deviceId":{"type":"integer","format":"int64","description":"设备ID"}},"required":["deviceId"]},"AppDeviceRuntimeVo":{"type":"object","description":"设备运行数据视图对象\n

\n 包含净化器运行状态信息。","properties":{"deviceId":{"type":"integer","format":"int64","description":"设备ID"},"deviceNo":{"type":"string","description":"设备编号"},"name":{"type":"string","description":"设备名称"},"status":{"type":"string","description":"状态(0未激活 1在线 2离线)"},"runMode":{"type":"string","description":"运行模式(0自动 1车载 2桌面)"},"fanLevel":{"type":"string","description":"风速挡位(0标准 1强力 2低档)"},"tvoc":{"type":"number","description":"TVOC 原始值"},"powerMode":{"type":"string","description":"供电模式(0USB 1电池)"},"filterTotalDays":{"type":"string","description":"滤芯总寿命天数"},"filterRemainDays":{"type":"string","description":"滤芯剩余天数"},"filterLife":{"type":"integer","format":"int32","description":"滤芯寿命(0-100)"},"filterReplaceTime":{"type":"string","format":"date-time","description":"最近一次确认更换滤芯时间"},"parkingShutdown":{"type":"string","description":"停机模式(0关机 1开机)"}}},"RAppDeviceRuntimeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/AppDeviceRuntimeVo","description":"响应业务数据"}}},"DeviceQueryBo":{"type":"object","description":"设备列表查询参数","properties":{"homeId":{"type":"integer","format":"int64","description":"家庭ID"},"locationId":{"type":"integer","format":"int64","description":"位置ID"}}},"AppDeviceVo":{"type":"object","description":"设备视图对象","properties":{"deviceId":{"type":"integer","format":"int64","description":"设备ID"},"deviceNo":{"type":"string","description":"设备编号"},"name":{"type":"string","description":"设备名称"},"imei":{"type":"string","description":"设备IMEI"},"mac":{"type":"string","description":"设备MAC"},"homeId":{"type":"integer","format":"int64","description":"家庭ID"},"locationId":{"type":"integer","format":"int64","description":"位置ID"},"status":{"type":"string","description":"状态(0未激活 1在线 2离线)"},"bluetoothConnected":{"type":"string","description":"蓝牙连接状态(0未连接 1已连接)"},"signalLevel":{"type":"string","description":"信号强度(0离线 1弱 2一般 3强)"},"charging":{"type":"string","description":"充电状态(0未充电 1充电中)"},"bindTime":{"type":"string","format":"date-time","description":"绑定时间"}}},"RListAppDeviceVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/AppDeviceVo"}}}},"DeviceBindBo":{"type":"object","description":"设备绑定请求参数\n

\n 前端通过蓝牙配对设备后,将配对获取到的设备信息提交绑定。","properties":{"deviceNo":{"type":"string","description":"设备编号","minLength":1},"imei":{"type":"string","description":"设备IMEI"},"mac":{"type":"string","description":"设备MAC"},"name":{"type":"string","description":"设备名称"},"homeId":{"type":"integer","format":"int64","description":"家庭ID"},"locationId":{"type":"integer","format":"int64","description":"位置ID"}},"required":["deviceNo"]},"SendSmsCodeBo":{"type":"object","description":"发送短信验证码请求","properties":{"phonenumber":{"type":"string","description":"手机号码","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"scene":{"type":"string","description":"业务场景:register / login / reset / change_phone_old / change_phone_new","minLength":1}},"required":["phonenumber","scene"]},"RegisterBo":{"type":"object","description":"App 用户注册请求(手机号、验证码、密码、确认密码四个字段)","properties":{"phonenumber":{"type":"string","description":"手机号码","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"smsCode":{"type":"string","description":"短信验证码","minLength":1},"password":{"type":"string","description":"密码","maxLength":20,"minLength":6},"confirmPassword":{"type":"string","description":"确认密码","minLength":1}},"required":["confirmPassword","password","phonenumber","smsCode"]},"AppLoginVo":{"type":"object","description":"App 登录响应(包含访问令牌与基础用户信息)","properties":{"accessToken":{"type":"string","description":"访问令牌"},"expireIn":{"type":"integer","format":"int64","description":"令牌有效期(秒)"},"userId":{"type":"integer","format":"int64","description":"用户ID"},"userName":{"type":"string","description":"用户名"},"nickName":{"type":"string","description":"昵称"}}},"RAppLoginVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/AppLoginVo","description":"响应业务数据"}}},"LoginSmsBo":{"type":"object","description":"短信验证码登录请求","properties":{"phonenumber":{"type":"string","description":"手机号码","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"smsCode":{"type":"string","description":"短信验证码","minLength":1}},"required":["phonenumber","smsCode"]},"LoginPasswordBo":{"type":"object","description":"账号密码登录请求(account 支持用户名或手机号)","properties":{"account":{"type":"string","description":"登录账号(用户名或手机号)","minLength":1},"password":{"type":"string","description":"密码","minLength":1}},"required":["account","password"]},"VerifyResetSmsCodeBo":{"type":"object","properties":{"phonenumber":{"type":"string","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"smsCode":{"type":"string","minLength":1}},"required":["phonenumber","smsCode"]},"DoResetPasswordBo":{"type":"object","properties":{"resetToken":{"type":"string","minLength":1},"newPassword":{"type":"string","maxLength":20,"minLength":6},"confirmPassword":{"type":"string","minLength":1}},"required":["confirmPassword","newPassword","resetToken"]},"VerifyOldPhoneBo":{"type":"object","description":"换绑手机号第一步:校验原手机号验证码请求对象","properties":{"oldPhonenumber":{"type":"string","description":"原手机号码","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"oldSmsCode":{"type":"string","description":"原手机号短信验证码","minLength":1}},"required":["oldPhonenumber","oldSmsCode"]},"VerifyNewPhoneBo":{"type":"object","description":"换绑手机号第二步:校验新手机号验证码并更新请求对象","properties":{"changeToken":{"type":"string","description":"第一步校验通过后返回的临时令牌","minLength":1},"newPhonenumber":{"type":"string","description":"新手机号码","minLength":1,"pattern":"^1[3-9]\\d{9}$"},"newSmsCode":{"type":"string","description":"新手机号短信验证码","minLength":1}},"required":["changeToken","newPhonenumber","newSmsCode"]},"AgreementVo":{"type":"object","description":"协议配置视图对象","properties":{"agreementId":{"type":"integer","format":"int64","description":"协议ID"},"agreementType":{"type":"string","description":"协议类型(user/privacy/service)"},"agreementNo":{"type":"string","description":"协议编号"},"versionName":{"type":"string","description":"版本号"},"name":{"type":"string","description":"协议名称"}}},"RListAgreementVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/AgreementVo"}}}},"AgreementIdBo":{"type":"object","description":"协议详情查询参数","properties":{"agreementId":{"type":"integer","format":"int64","description":"协议ID"}},"required":["agreementId"]},"AgreementDetailVo":{"type":"object","description":"协议详情视图对象","properties":{"agreementNo":{"type":"string","description":"协议编号"},"name":{"type":"string","description":"协议名称"},"versionName":{"type":"string","description":"版本号"},"content":{"type":"string","description":"协议正文"},"publishTime":{"type":"string","format":"date-time","description":"生效时间"}}},"RAgreementDetailVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/AgreementDetailVo","description":"响应业务数据"}}},"OpenApiEmbedTokenRequest":{"type":"object","properties":{"openId":{"type":"string","minLength":1},"trustedCredential":{"type":"string"},"ttlSeconds":{"type":"integer","format":"int32","maximum":86400,"minimum":60}},"required":["openId"]},"OpenApiEmbedTokenResponse":{"type":"object","properties":{"token":{"type":"string"},"tokenType":{"type":"string"},"authHeader":{"type":"string"},"expiresAt":{"type":"string","format":"date-time"},"ttlSeconds":{"type":"integer","format":"int32"},"openId":{"type":"string"},"nickname":{"type":"string"},"avatarUrl":{"type":"string"}}},"ResultOpenApiEmbedTokenResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiEmbedTokenResponse"}}},"OpenApiResourceResponse":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"storageKey":{"type":"string"},"originalName":{"type":"string"},"fileSize":{"type":"integer","format":"int64"},"mimeType":{"type":"string"},"storageType":{"type":"string"},"accessUrl":{"type":"string"},"bizType":{"type":"string"},"bizId":{"type":"integer","format":"int64"},"creatorId":{"type":"integer","format":"int64"},"createDt":{"type":"string","format":"date-time"}}},"ResultOpenApiResourceResponse":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiResourceResponse"}}},"OpenApiCreateConversationRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"},"openId":{"type":"string","minLength":1},"title":{"type":"string","minLength":1}},"required":["agentId","openId","title"]},"OpenApiConversationVO":{"type":"object","properties":{"conversationId":{"type":"string"},"agentId":{"type":"integer","format":"int64"},"title":{"type":"string"},"createDt":{"type":"string"},"updateDt":{"type":"string"}}},"ResultOpenApiConversationVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiConversationVO"}}},"OpenApiChatAttachmentRequest":{"type":"object","properties":{"resourceId":{"type":"integer","format":"int64"},"type":{"type":"string","minLength":1}},"required":["resourceId","type"]},"OpenApiChatRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"},"openId":{"type":"string","minLength":1},"conversationId":{"type":"string","minLength":1},"content":{"type":"string","minLength":1},"attachments":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiChatAttachmentRequest"}},"disabledMcpServerIds":{"type":"array","items":{"type":"integer","format":"int64"}},"disabledSkillIds":{"type":"array","items":{"type":"integer","format":"int64"}},"deepPlanEnabled":{"type":"boolean"},"webSearchEnabled":{"type":"boolean"},"sid":{"type":"string"},"timeout":{"type":"integer","format":"int64"}},"required":["agentId","content","conversationId","openId"]},"ServerSentEventString":{},"FlowTaskBo":{"type":"object","description":"任务请求对象","properties":{"nodeName":{"type":"string","description":"任务名称"},"flowName":{"type":"string","description":"流程定义名称"},"flowCode":{"type":"string","description":"流程定义编码"},"category":{"type":"string","description":"流程分类id"},"instanceId":{"type":"integer","format":"int64","description":"流程实例id"},"flowStatus":{"type":"string","description":"流程状态"},"permissionList":{"type":"array","description":"权限列表","items":{"type":"string"}},"createByIds":{"type":"array","description":"申请人Ids","items":{"type":"integer","format":"int64"}},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}}},"PageQuery":{"type":"object","description":"分页查询实体类","properties":{"pageSize":{"type":"integer","format":"int32","description":"分页大小"},"pageNum":{"type":"integer","format":"int32","description":"当前页数"},"orderByColumn":{"type":"string","description":"排序列"},"isAsc":{"type":"string","description":"排序的方向desc或者asc"}}},"ButtonPermissionVo":{"type":"object","description":"按钮权限视图对象。","properties":{"code":{"type":"string","description":"唯一编码"},"value":{"type":"string","description":"选项值"},"show":{"type":"boolean","description":"是否显示"}}},"FlowCopyVo":{"type":"object","description":"流程抄送视图对象。","properties":{"userId":{"type":"integer","format":"int64","description":"用户id"},"nickName":{"type":"string","description":"用户昵称"}}},"FlowTaskVo":{"type":"object","description":"流程任务视图对象。","properties":{"id":{"type":"integer","format":"int64","description":"任务ID。"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"delFlag":{"type":"string","description":"删除标记"},"definitionId":{"type":"integer","format":"int64","description":"对应flow_definition表的id"},"instanceId":{"type":"integer","format":"int64","description":"流程实例表id"},"flowName":{"type":"string","description":"流程定义名称"},"businessId":{"type":"string","description":"业务id"},"nodeCode":{"type":"string","description":"节点编码"},"nodeName":{"type":"string","description":"节点名称"},"nodeType":{"type":"integer","format":"int32","description":"节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)"},"permissionList":{"type":"array","description":"权限标识 permissionFlag的list形式","items":{"type":"string"}},"userList":{"type":"array","description":"流程用户列表","items":{"$ref":"#/components/schemas/User"}},"formCustom":{"type":"string","description":"审批表单是否自定义(Y是 N否)"},"formPath":{"type":"string","description":"审批表单"},"flowCode":{"type":"string","description":"流程定义编码"},"version":{"type":"string","description":"流程版本号"},"flowStatus":{"type":"string","description":"流程状态"},"category":{"type":"string","description":"流程分类id"},"categoryName":{"type":"string","description":"流程分类名称"},"flowStatusName":{"type":"string","description":"流程状态"},"type":{"type":"string","description":"办理人类型"},"assigneeIds":{"type":"string","description":"办理人ids"},"assigneeNames":{"type":"string","description":"办理人名称"},"processedBy":{"type":"string","description":"抄送人id"},"processedByName":{"type":"string","description":"抄送人名称"},"nodeRatio":{"type":"string","description":"流程签署比例值 大于0为票签,会签"},"createBy":{"type":"string","description":"申请人id"},"createByName":{"type":"string","description":"申请人名称"},"applyNode":{"type":"boolean","description":"是否为申请人节点"},"buttonList":{"type":"array","description":"按钮权限","items":{"$ref":"#/components/schemas/ButtonPermissionVo"}},"copyList":{"type":"array","description":"抄送对象 ID 集合\n

\n 根据扩展属性中 CopySettingEnum 类型的数据生成,存储需要抄送的对象 ID","items":{"$ref":"#/components/schemas/FlowCopyVo"}},"varList":{"type":"object","additionalProperties":{"type":"string"},"description":"自定义参数 Map\n

\n 根据扩展属性中 VariablesEnum 类型的数据生成,存储 key=value 格式的自定义参数"},"businessCode":{"type":"string","description":"业务编码"},"businessTitle":{"type":"string","description":"业务标题"}}},"PageResultFlowTaskVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/FlowTaskVo"}}}},"RPageResultFlowTaskVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultFlowTaskVo","description":"响应业务数据"}}},"FlowHisTaskVo":{"type":"object","description":"历史任务视图","properties":{"id":{"type":"integer","format":"int64","description":"历史任务主键"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"delFlag":{"type":"string","description":"删除标记"},"definitionId":{"type":"integer","format":"int64","description":"对应flow_definition表的id"},"flowName":{"type":"string","description":"流程定义名称"},"instanceId":{"type":"integer","format":"int64","description":"流程实例表id"},"taskId":{"type":"integer","format":"int64","description":"任务表id"},"cooperateType":{"type":"integer","format":"int32","description":"协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)"},"cooperateTypeName":{"type":"string","description":"协作方式(1审批 2转办 3委派 4会签 5票签 6加签 7减签)"},"businessId":{"type":"string","description":"业务id"},"nodeCode":{"type":"string","description":"开始节点编码"},"nodeName":{"type":"string","description":"开始节点名称"},"nodeType":{"type":"integer","format":"int32","description":"开始节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)"},"targetNodeCode":{"type":"string","description":"目标节点编码"},"targetNodeName":{"type":"string","description":"结束节点名称"},"approver":{"type":"string","description":"审批者"},"approverName":{"type":"string","description":"审批者"},"collaborator":{"type":"string","description":"协作人(只有转办、会签、票签、委派)"},"permissionList":{"type":"array","description":"权限标识 permissionFlag的list形式","items":{"type":"string"}},"skipType":{"type":"string","description":"跳转类型(PASS通过 REJECT退回 NONE无动作)"},"flowStatus":{"type":"string","description":"流程状态"},"flowTaskStatus":{"type":"string","description":"任务状态"},"flowStatusName":{"type":"string","description":"流程状态"},"message":{"type":"string","description":"审批意见"},"ext":{"type":"string","description":"业务详情 存业务类的json"},"createBy":{"type":"string","description":"创建者"},"createByName":{"type":"string","description":"申请人"},"category":{"type":"string","description":"流程分类id"},"categoryName":{"type":"string","description":"流程分类名称"},"formCustom":{"type":"string","description":"审批表单是否自定义(Y是 N否)"},"formPath":{"type":"string","description":"审批表单路径"},"flowCode":{"type":"string","description":"流程定义编码"},"version":{"type":"string","description":"流程版本号"},"runDuration":{"type":"string","description":"运行时长"},"businessCode":{"type":"string","description":"业务编码"},"businessTitle":{"type":"string","description":"业务标题"}}},"PageResultFlowHisTaskVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/FlowHisTaskVo"}}}},"RPageResultFlowHisTaskVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultFlowHisTaskVo","description":"响应业务数据"}}},"RFlowTaskVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/FlowTaskVo","description":"响应业务数据"}}},"RListNode":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/Node"}}}},"RListUserDTO":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/UserDTO"}}}},"UserDTO":{"type":"object","description":"用户","properties":{"userId":{"type":"integer","format":"int64","description":"用户ID"},"deptId":{"type":"integer","format":"int64","description":"部门ID"},"userName":{"type":"string","description":"用户账号"},"nickName":{"type":"string","description":"用户昵称"},"userType":{"type":"string","description":"用户类型(sys_user系统用户)"},"email":{"type":"string","description":"用户邮箱"},"phoneNumber":{"type":"string","description":"手机号码"},"gender":{"type":"string","description":"用户性别(0男 1女 2未知)"},"status":{"type":"string","description":"账号状态(0正常 1停用)"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"FlowSpelVo":{"type":"object","description":"流程spel表达式定义视图对象 flow_spel","properties":{"id":{"type":"integer","format":"int64","description":"主键id"},"componentName":{"type":"string","description":"组件名称"},"methodName":{"type":"string","description":"方法名"},"methodParams":{"type":"string","description":"参数"},"viewSpel":{"type":"string","description":"预览spel值"},"status":{"type":"string","description":"状态(0正常 1停用)"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RFlowSpelVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/FlowSpelVo","description":"响应业务数据"}}},"PageResultFlowSpelVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/FlowSpelVo"}}}},"RPageResultFlowSpelVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultFlowSpelVo","description":"响应业务数据"}}},"PageResultTestLeaveVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/TestLeaveVo"}}}},"RPageResultTestLeaveVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultTestLeaveVo","description":"响应业务数据"}}},"FlowInstanceBo":{"type":"object","description":"流程实例查询条件对象。","properties":{"flowName":{"type":"string","description":"流程定义名称"},"flowCode":{"type":"string","description":"流程定义编码"},"startUserId":{"type":"string","description":"任务发起人"},"businessId":{"type":"string","description":"业务id"},"category":{"type":"string","description":"流程分类id"},"nodeName":{"type":"string","description":"任务名称"},"createByIds":{"type":"array","description":"申请人Ids","items":{"type":"string"}}}},"FlowInstanceVo":{"type":"object","description":"流程实例视图对象。","properties":{"id":{"type":"integer","format":"int64","description":"流程实例ID。"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"delFlag":{"type":"string","description":"删除标记"},"definitionId":{"type":"integer","format":"int64","description":"对应flow_definition表的id"},"flowName":{"type":"string","description":"流程定义名称"},"flowCode":{"type":"string","description":"流程定义编码"},"businessId":{"type":"string","description":"业务id"},"nodeType":{"type":"integer","format":"int32","description":"节点类型(0开始节点 1中间节点 2结束节点 3互斥网关 4并行网关)"},"nodeCode":{"type":"string","description":"流程节点编码 每个流程的nodeCode是唯一的,即definitionId+nodeCode唯一,在数据库层面做了控制"},"nodeName":{"type":"string","description":"流程节点名称"},"variable":{"type":"string","description":"流程变量"},"flowStatus":{"type":"string","description":"流程状态"},"flowStatusName":{"type":"string","description":"流程状态"},"activityStatus":{"type":"integer","format":"int32","description":"流程激活状态(0挂起 1激活)"},"formCustom":{"type":"string","description":"审批表单是否自定义(Y是 N否)"},"formPath":{"type":"string","description":"审批表单路径"},"ext":{"type":"string","description":"扩展字段,预留给业务系统使用"},"version":{"type":"string","description":"流程定义版本"},"createBy":{"type":"string","description":"创建者"},"createByName":{"type":"string","description":"申请人"},"category":{"type":"string","description":"流程分类id"},"categoryName":{"type":"string","description":"流程分类名称"},"businessCode":{"type":"string","description":"业务编码"},"businessTitle":{"type":"string","description":"业务标题"}}},"PageResultFlowInstanceVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/FlowInstanceVo"}}}},"RPageResultFlowInstanceVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultFlowInstanceVo","description":"响应业务数据"}}},"RMapStringObject":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"object","additionalProperties":{},"description":"响应业务数据"}}},"RFlowInstanceVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/FlowInstanceVo","description":"响应业务数据"}}},"Definition":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"version":{"type":"string"},"tenantId":{"type":"string"},"isPublish":{"type":"integer","format":"int32"},"modelValue":{"type":"string"},"userList":{"type":"array","items":{"$ref":"#/components/schemas/User"}},"nodeList":{"type":"array","items":{"$ref":"#/components/schemas/Node"}},"listenerPath":{"type":"string"},"activityStatus":{"type":"integer","format":"int32"},"listenerType":{"type":"string"},"updateBy":{"type":"string"},"ext":{"type":"string"},"delFlag":{"type":"string"},"createTime":{"type":"string","format":"date-time"},"createBy":{"type":"string"},"category":{"type":"string"},"flowName":{"type":"string"},"flowCode":{"type":"string"},"updateTime":{"type":"string","format":"date-time"},"formCustom":{"type":"string"},"formPath":{"type":"string"}}},"RDefinition":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/Definition","description":"响应业务数据"}}},"FlowDefinitionVo":{"type":"object","description":"流程定义视图","properties":{"id":{"type":"integer","format":"int64","description":"流程定义主键"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"delFlag":{"type":"string","description":"删除标记"},"flowCode":{"type":"string","description":"流程定义编码"},"flowName":{"type":"string","description":"流程定义名称"},"category":{"type":"string","description":"流程分类id"},"categoryName":{"type":"string","description":"流程分类名称"},"version":{"type":"string","description":"流程版本"},"isPublish":{"type":"integer","format":"int32","description":"是否发布(0未发布 1已发布 9失效)"},"formCustom":{"type":"string","description":"审批表单是否自定义(Y是 N否)"},"formPath":{"type":"string","description":"审批表单路径"},"activityStatus":{"type":"integer","format":"int32","description":"流程激活状态(0挂起 1激活)"},"listenerType":{"type":"string","description":"监听器类型"},"listenerPath":{"type":"string","description":"监听器路径"},"ext":{"type":"string","description":"扩展字段,预留给业务系统使用"}}},"PageResultFlowDefinitionVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/FlowDefinitionVo"}}}},"RPageResultFlowDefinitionVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultFlowDefinitionVo","description":"响应业务数据"}}},"FlowCategoryVo":{"type":"object","description":"流程分类视图对象 wf_category","properties":{"categoryId":{"type":"integer","format":"int64","description":"流程分类ID"},"parentId":{"type":"integer","format":"int64","description":"父级分类id"},"parentName":{"type":"string","description":"父级分类名称"},"ancestors":{"type":"string","description":"祖级列表"},"categoryName":{"type":"string","description":"流程分类名称"},"orderNum":{"type":"integer","format":"int64","description":"显示顺序"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RFlowCategoryVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/FlowCategoryVo","description":"响应业务数据"}}},"RListFlowCategoryVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/FlowCategoryVo"}}}},"RListTreeString":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/TreeString"}}}},"TreeNodeConfig":{"type":"object","properties":{"idKey":{"type":"string"},"parentIdKey":{"type":"string"},"weightKey":{"type":"string"},"nameKey":{"type":"string"},"childrenKey":{"type":"string"},"deep":{"type":"integer","format":"int32"}}},"TreeString":{"type":"object","additionalProperties":{},"properties":{"name":{"type":"object","properties":{"empty":{"type":"boolean"}}},"id":{"type":"string"},"weight":{},"parentId":{"type":"string"},"config":{"$ref":"#/components/schemas/TreeNodeConfig"},"empty":{"type":"boolean"}}},"ApiResultDefJson":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/DefJson"}}},"ApiResultListForm":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Form"}}}},"ApiResultListNodeExt":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/NodeExt"}}}},"ChildNode":{"type":"object","properties":{"code":{"type":"string"},"desc":{"type":"string"},"label":{"type":"string"},"type":{"type":"integer","format":"int32"},"must":{"type":"boolean"},"multiple":{"type":"boolean"},"precision":{"type":"integer","format":"int32"},"step":{"type":"string"},"min":{"type":"string"},"dateType":{"type":"string"},"dateFormat":{"type":"string"},"dict":{"type":"array","items":{"$ref":"#/components/schemas/DictItem"}}}},"DictItem":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"selected":{"type":"boolean"}}},"NodeExt":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"},"desc":{"type":"string"},"type":{"type":"integer","format":"int32"},"childs":{"type":"array","items":{"$ref":"#/components/schemas/ChildNode"}}}},"ApiResultListListenerVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/ListenerVo"}}}},"ListenerVo":{"type":"object","properties":{"type":{"type":"string"},"path":{"type":"string"},"description":{"type":"string"}}},"ApiResultListString":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"type":"string"}}}},"HandlerQuery":{"type":"object","properties":{"handlerCode":{"type":"string"},"handlerName":{"type":"string"},"handlerType":{"type":"string"},"groupId":{"type":"string"},"pageNum":{"type":"integer","format":"int32"},"pageSize":{"type":"integer","format":"int32"},"beginTime":{"type":"string"},"endTime":{"type":"string"}}},"ApiResultHandlerSelectVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/HandlerSelectVo"}}},"FlowPageHandlerAuth":{"type":"object","properties":{"total":{"type":"integer","format":"int64"},"rows":{"type":"array","items":{"$ref":"#/components/schemas/HandlerAuth"}},"code":{"type":"integer","format":"int32"},"msg":{"type":"string"}}},"HandlerAuth":{"type":"object","properties":{"storageId":{"type":"string"},"handlerCode":{"type":"string"},"handlerName":{"type":"string"},"groupName":{"type":"string"},"createTime":{"type":"string"}}},"HandlerSelectVo":{"type":"object","properties":{"handlerAuths":{"$ref":"#/components/schemas/FlowPageHandlerAuth"},"treeSelections":{"type":"array","items":{"$ref":"#/components/schemas/Tree"}}}},"HandlerFeedBackDto":{"type":"object","properties":{"storageIds":{"type":"array","items":{"type":"string"}}}},"ApiResultListHandlerFeedBackVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/HandlerFeedBackVo"}}}},"HandlerFeedBackVo":{"type":"object","properties":{"storageId":{"type":"string"},"handlerName":{"type":"string"}}},"ApiResultListDict":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Dict"}}}},"Dict":{"type":"object","properties":{"label":{"type":"string"},"value":{"type":"string"},"childList":{"type":"array","items":{"$ref":"#/components/schemas/Dict"}}}},"ApiResultString":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"type":"string"}}},"ApiResultFlowDto":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/FlowDto"}}},"ApiResultWarmFlowVo":{"type":"object","properties":{"code":{"type":"integer","format":"int32"},"msg":{"type":"string"},"data":{"$ref":"#/components/schemas/WarmFlowVo"}}},"WarmFlowVo":{"type":"object","properties":{"tokenNameList":{"type":"array","items":{"type":"string"}},"framework":{"type":"string"}}},"ProfileUserVo":{"type":"object","description":"用户信息视图对象 sys_user","properties":{"userId":{"type":"integer","format":"int64","description":"用户ID"},"deptId":{"type":"integer","format":"int64","description":"部门ID"},"userName":{"type":"string","description":"用户账号"},"nickName":{"type":"string","description":"用户昵称"},"userType":{"type":"string","description":"用户类型(sys_user系统用户)"},"email":{"type":"string","description":"用户邮箱"},"phoneNumber":{"type":"string","description":"手机号码"},"gender":{"type":"string","description":"用户性别(0男 1女 2未知)"},"avatar":{"type":"integer","format":"int64","description":"头像 OSS ID"},"avatarUrl":{"type":"string","description":"头像地址"},"loginIp":{"type":"string","description":"最后登录IP"},"loginDate":{"type":"string","format":"date-time","description":"最后登录时间"},"deptName":{"type":"string","description":"部门名"}}},"ProfileVo":{"type":"object","description":"用户个人信息","properties":{"user":{"$ref":"#/components/schemas/ProfileUserVo","description":"用户信息"},"roleGroup":{"type":"string","description":"用户所属角色组"},"postGroup":{"type":"string","description":"用户所属岗位组"}}},"RProfileVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/ProfileVo","description":"响应业务数据"}}},"RListSysUserVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysUserVo"}}}},"SysRoleVo":{"type":"object","description":"角色信息视图对象 sys_role","properties":{"roleId":{"type":"integer","format":"int64","description":"角色ID"},"roleName":{"type":"string","description":"角色名称"},"roleKey":{"type":"string","description":"角色权限字符串"},"roleSort":{"type":"integer","format":"int32","description":"显示顺序"},"dataScope":{"type":"string","description":"数据范围(1:全部数据权限 2:自定数据权限 3:本部门数据权限 4:本部门及以下数据权限 5:仅本人数据权限 6:部门及以下或本人数据权限)"},"menuCheckStrictly":{"type":"boolean","description":"菜单树选择项是否关联显示"},"deptCheckStrictly":{"type":"boolean","description":"部门树选择项是否关联显示"},"status":{"type":"string","description":"角色状态(0正常 1停用)"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"flag":{"type":"boolean","description":"用户是否存在此角色标识 默认不存在"},"superAdmin":{"type":"boolean","description":"判断当前角色是否为超级管理员角色。"}}},"SysUserVo":{"type":"object","description":"用户信息视图对象 sys_user","properties":{"userId":{"type":"integer","format":"int64","description":"用户ID"},"deptId":{"type":"integer","format":"int64","description":"部门ID"},"userName":{"type":"string","description":"用户账号"},"nickName":{"type":"string","description":"用户昵称"},"userType":{"type":"string","description":"用户类型(sys_user系统用户)"},"email":{"type":"string","description":"用户邮箱"},"phoneNumber":{"type":"string","description":"手机号码"},"gender":{"type":"string","description":"用户性别(0男 1女 2未知)"},"avatar":{"type":"integer","format":"int64","description":"头像 OSS ID"},"avatarUrl":{"type":"string","description":"头像地址"},"status":{"type":"string","description":"账号状态(0正常 1停用)"},"loginIp":{"type":"string","description":"最后登录IP"},"loginDate":{"type":"string","format":"date-time","description":"最后登录时间"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"deptName":{"type":"string","description":"部门名"},"roles":{"type":"array","description":"角色对象","items":{"$ref":"#/components/schemas/SysRoleVo"}},"roleIds":{"type":"array","description":"角色组","items":{"type":"integer","format":"int64"}},"postIds":{"type":"array","description":"岗位组","items":{"type":"integer","format":"int64"}},"roleId":{"type":"integer","format":"int64","description":"数据权限 当前角色ID"}}},"PageResultSysUserVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysUserVo"}}}},"RPageResultSysUserVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysUserVo","description":"响应业务数据"}}},"RUserInfoVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/UserInfoVo","description":"响应业务数据"}}},"UserInfoVo":{"type":"object","description":"登录用户信息","properties":{"user":{"$ref":"#/components/schemas/SysUserVo","description":"用户基本信息"},"permissions":{"type":"array","description":"菜单权限","items":{"type":"string"},"uniqueItems":true},"roles":{"type":"array","description":"角色权限","items":{"type":"string"},"uniqueItems":true}}},"RSysUserInfoVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysUserInfoVo","description":"响应业务数据"}}},"SysPostVo":{"type":"object","description":"岗位信息视图对象 sys_post","properties":{"postId":{"type":"integer","format":"int64","description":"岗位ID"},"deptId":{"type":"integer","format":"int64","description":"部门id"},"postCode":{"type":"string","description":"岗位编码"},"postName":{"type":"string","description":"岗位名称"},"postCategory":{"type":"string","description":"岗位类别编码"},"postSort":{"type":"integer","format":"int32","description":"显示顺序"},"status":{"type":"string","description":"状态(0正常 1停用)"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"deptName":{"type":"string","description":"部门名"}}},"SysUserInfoVo":{"type":"object","description":"用户信息","properties":{"user":{"$ref":"#/components/schemas/SysUserVo","description":"用户信息"},"roleIds":{"type":"array","description":"角色ID列表","items":{"type":"integer","format":"int64"}},"roles":{"type":"array","description":"角色列表","items":{"$ref":"#/components/schemas/SysRoleVo"}},"postIds":{"type":"array","description":"岗位ID列表","items":{"type":"integer","format":"int64"}},"posts":{"type":"array","description":"岗位列表","items":{"$ref":"#/components/schemas/SysPostVo"}}}},"RListSysSocialVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysSocialVo"}}}},"SysSocialVo":{"type":"object","description":"社会化关系视图对象 sys_social","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"userId":{"type":"integer","format":"int64","description":"用户ID"},"authId":{"type":"string","description":"的唯一ID"},"source":{"type":"string","description":"用户来源"},"accessToken":{"type":"string","description":"用户的授权令牌"},"expireIn":{"type":"integer","format":"int32","description":"用户的授权令牌的有效期,部分平台可能没有"},"refreshToken":{"type":"string","description":"刷新令牌,部分平台可能没有"},"openId":{"type":"string","description":"用户的 open id"},"userName":{"type":"string","description":"授权的第三方账号"},"nickName":{"type":"string","description":"授权的第三方昵称"},"email":{"type":"string","description":"授权的第三方邮箱"},"avatar":{"type":"string","description":"授权的第三方头像地址"},"accessCode":{"type":"string","description":"平台的授权信息,部分平台可能没有"},"unionId":{"type":"string","description":"用户的 unionid"},"scope":{"type":"string","description":"授予的权限,部分平台可能没有"},"tokenType":{"type":"string","description":"个别平台的授权信息,部分平台可能没有"},"idToken":{"type":"string","description":"id token,部分平台可能没有"},"macAlgorithm":{"type":"string","description":"小米平台用户的附带属性,部分平台可能没有"},"macKey":{"type":"string","description":"小米平台用户的附带属性,部分平台可能没有"},"code":{"type":"string","description":"用户的授权code,部分平台可能没有"},"oauthToken":{"type":"string","description":"Twitter平台用户的附带属性,部分平台可能没有"},"oauthTokenSecret":{"type":"string","description":"Twitter平台用户的附带属性,部分平台可能没有"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RSysRoleVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysRoleVo","description":"响应业务数据"}}},"RListSysRoleVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysRoleVo"}}}},"PageResultSysRoleVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysRoleVo"}}}},"RPageResultSysRoleVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysRoleVo","description":"响应业务数据"}}},"DeptTreeSelectVo":{"type":"object","description":"角色部门列表树信息","properties":{"checkedKeys":{"type":"array","description":"选中部门列表","items":{"type":"integer","format":"int64"}},"depts":{"type":"array","description":"下拉树结构列表","items":{"$ref":"#/components/schemas/TreeString"}}}},"RDeptTreeSelectVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/DeptTreeSelectVo","description":"响应业务数据"}}},"RSysPostVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysPostVo","description":"响应业务数据"}}},"RListSysPostVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysPostVo"}}}},"PageResultSysPostVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysPostVo"}}}},"RPageResultSysPostVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysPostVo","description":"响应业务数据"}}},"RSysNoticeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysNoticeVo","description":"响应业务数据"}}},"SysNoticeVo":{"type":"object","description":"通知公告视图对象 sys_notice","properties":{"noticeId":{"type":"integer","format":"int64","description":"公告ID"},"noticeTitle":{"type":"string","description":"公告标题"},"noticeType":{"type":"string","description":"公告类型(1通知 2公告)"},"noticeContent":{"type":"string","description":"公告内容"},"status":{"type":"string","description":"公告状态(0正常 1关闭)"},"remark":{"type":"string","description":"备注"},"createBy":{"type":"integer","format":"int64","description":"创建者"},"createByName":{"type":"string","description":"创建人名称"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"PageResultSysNoticeVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysNoticeVo"}}}},"RPageResultSysNoticeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysNoticeVo","description":"响应业务数据"}}},"RSysMenuVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysMenuVo","description":"响应业务数据"}}},"SysMenuVo":{"type":"object","description":"菜单权限视图对象 sys_menu","properties":{"menuId":{"type":"integer","format":"int64","description":"菜单ID"},"menuName":{"type":"string","description":"菜单名称"},"parentId":{"type":"integer","format":"int64","description":"父菜单ID"},"orderNum":{"type":"integer","format":"int32","description":"显示顺序"},"path":{"type":"string","description":"路由地址"},"component":{"type":"string","description":"组件路径"},"queryParam":{"type":"string","description":"路由参数"},"isFrame":{"type":"string","description":"是否为外链(Y是 N否)"},"isCache":{"type":"string","description":"是否缓存(Y缓存 N不缓存)"},"menuType":{"type":"string","description":"菜单类型(M目录 C菜单 F按钮)"},"visible":{"type":"string","description":"显示状态(0显示 1隐藏)"},"status":{"type":"string","description":"菜单状态(0正常 1停用)"},"perms":{"type":"string","description":"权限标识"},"icon":{"type":"string","description":"菜单图标"},"activeMenu":{"type":"string","description":"激活菜单路径"},"ext":{"type":"string","description":"扩展字段"},"createDept":{"type":"integer","format":"int64","description":"创建部门"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"children":{"type":"array","description":"子菜单","items":{"$ref":"#/components/schemas/SysMenuVo"}}}},"MenuTreeSelectVo":{"type":"object","description":"角色菜单列表树信息","properties":{"checkedKeys":{"type":"array","description":"选中菜单列表","items":{"type":"integer","format":"int64"}},"menus":{"type":"array","description":"菜单下拉树结构列表","items":{"$ref":"#/components/schemas/TreeString"}}}},"RMenuTreeSelectVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/MenuTreeSelectVo","description":"响应业务数据"}}},"RListSysMenuVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysMenuVo"}}}},"MetaVo":{"type":"object","description":"路由显示信息","properties":{"title":{"type":"string","description":"设置该路由在侧边栏和面包屑中展示的名字"},"icon":{"type":"string","description":"设置该路由的图标,对应路径src/assets/icons/svg"},"noCache":{"type":"boolean","description":"设置为true,则不会被 缓存"},"link":{"type":"string","description":"内链地址(http(s)://开头)"},"activeMenu":{"type":"string","description":"激活菜单"}}},"RListRouterVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/RouterVo"}}}},"RouterVo":{"type":"object","description":"路由配置信息","properties":{"name":{"type":"string","description":"路由名字"},"path":{"type":"string","description":"路由地址"},"hidden":{"type":"boolean","description":"是否隐藏路由,当设置 true 的时候该路由不会再侧边栏出现"},"redirect":{"type":"string","description":"重定向地址,当设置 noRedirect 的时候该路由在面包屑导航中不可被点击"},"component":{"type":"string","description":"组件地址"},"query":{"type":"string","description":"路由参数:如 {\"id\": 1, \"name\": \"ry\"}"},"ext":{"type":"string","description":"扩展字段"},"alwaysShow":{"type":"boolean","description":"当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面"},"meta":{"$ref":"#/components/schemas/MetaVo","description":"其他元素"},"children":{"type":"array","description":"子路由","items":{"$ref":"#/components/schemas/RouterVo"}}}},"RSysDictTypeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysDictTypeVo","description":"响应业务数据"}}},"SysDictTypeVo":{"type":"object","description":"字典类型视图对象 sys_dict_type","properties":{"dictId":{"type":"integer","format":"int64","description":"字典主键"},"dictName":{"type":"string","description":"字典名称"},"dictType":{"type":"string","description":"字典类型"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RListSysDictTypeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysDictTypeVo"}}}},"PageResultSysDictTypeVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysDictTypeVo"}}}},"RPageResultSysDictTypeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysDictTypeVo","description":"响应业务数据"}}},"RSysDictDataVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysDictDataVo","description":"响应业务数据"}}},"SysDictDataVo":{"type":"object","description":"字典数据视图对象 sys_dict_data","properties":{"dictCode":{"type":"integer","format":"int64","description":"字典编码"},"dictSort":{"type":"integer","format":"int32","description":"字典排序"},"dictLabel":{"type":"string","description":"字典标签"},"dictValue":{"type":"string","description":"字典键值"},"dictType":{"type":"string","description":"字典类型"},"cssClass":{"type":"string","description":"样式属性(其他样式扩展)"},"listClass":{"type":"string","description":"表格回显样式"},"isDefault":{"type":"string","description":"是否默认(Y是 N否)"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RListSysDictDataVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysDictDataVo"}}}},"PageResultSysDictDataVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysDictDataVo"}}}},"RPageResultSysDictDataVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysDictDataVo","description":"响应业务数据"}}},"RSysDeptVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysDeptVo","description":"响应业务数据"}}},"SysDeptVo":{"type":"object","description":"部门视图对象 sys_dept","properties":{"deptId":{"type":"integer","format":"int64","description":"部门id"},"parentId":{"type":"integer","format":"int64","description":"父部门id"},"parentName":{"type":"string","description":"父部门名称"},"ancestors":{"type":"string","description":"祖级列表"},"deptName":{"type":"string","description":"部门名称"},"deptCategory":{"type":"string","description":"部门类别编码"},"orderNum":{"type":"integer","format":"int32","description":"显示顺序"},"leader":{"type":"integer","format":"int64","description":"负责人ID"},"leaderName":{"type":"string","description":"负责人"},"phone":{"type":"string","description":"联系电话"},"email":{"type":"string","description":"邮箱"},"status":{"type":"string","description":"部门状态(0正常 1停用)"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"children":{"type":"array","description":"子部门","items":{"$ref":"#/components/schemas/SysDeptVo"}}}},"RListSysDeptVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysDeptVo"}}}},"RSysConfigVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysConfigVo","description":"响应业务数据"}}},"SysConfigVo":{"type":"object","description":"参数配置视图对象 sys_config","properties":{"configId":{"type":"integer","format":"int64","description":"参数主键"},"configName":{"type":"string","description":"参数名称"},"configKey":{"type":"string","description":"参数键名"},"configValue":{"type":"string","description":"参数键值"},"configType":{"type":"string","description":"系统内置(Y是 N否)"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"PageResultSysConfigVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysConfigVo"}}}},"RPageResultSysConfigVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysConfigVo","description":"响应业务数据"}}},"RSysClientVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysClientVo","description":"响应业务数据"}}},"SysClientVo":{"type":"object","description":"授权管理视图对象 sys_client","properties":{"id":{"type":"integer","format":"int64","description":"id"},"clientId":{"type":"string","description":"客户端id"},"clientKey":{"type":"string","description":"客户端key"},"clientSecret":{"type":"string","description":"客户端秘钥"},"grantTypeList":{"type":"array","description":"授权类型","items":{"type":"string"}},"grantType":{"type":"string","description":"授权类型"},"deviceType":{"type":"string","description":"设备类型"},"accessPath":{"type":"string","description":"允许访问路径"},"accessPathList":{"type":"array","description":"允许访问路径列表","items":{"type":"string"}},"ipWhitelist":{"type":"string","description":"IP白名单"},"ipWhitelistList":{"type":"array","description":"IP白名单列表","items":{"type":"string"}},"activeTimeout":{"type":"integer","format":"int64","description":"token活跃超时时间"},"timeout":{"type":"integer","format":"int64","description":"token固定超时时间"},"status":{"type":"string","description":"状态(0正常 1停用)"}}},"PageResultSysClientVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysClientVo"}}}},"RPageResultSysClientVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysClientVo","description":"响应业务数据"}}},"SysOssBo":{"type":"object","description":"OSS对象存储分页查询对象 sys_oss","properties":{"ossId":{"type":"integer","format":"int64","description":"ossId"},"fileName":{"type":"string","description":"文件名"},"originalName":{"type":"string","description":"原名"},"fileSuffix":{"type":"string","description":"文件后缀名"},"url":{"type":"string","description":"URL地址"},"ext1":{"type":"string","description":"扩展字段"},"service":{"type":"string","description":"服务商"},"createBy":{"type":"integer","format":"int64","description":"创建者"},"params":{"type":"object","additionalProperties":{},"description":"请求参数"}}},"PageResultSysOssVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysOssVo"}}}},"RPageResultSysOssVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysOssVo","description":"响应业务数据"}}},"SysOssVo":{"type":"object","description":"OSS对象存储视图对象 sys_oss","properties":{"ossId":{"type":"integer","format":"int64","description":"对象存储主键"},"fileName":{"type":"string","description":"文件名"},"originalName":{"type":"string","description":"原名"},"fileSuffix":{"type":"string","description":"文件后缀名"},"url":{"type":"string","description":"URL地址"},"ext1":{"type":"string","description":"扩展字段"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"createBy":{"type":"integer","format":"int64","description":"上传人"},"createByName":{"type":"string","description":"上传人名称"},"service":{"type":"string","description":"服务商"}}},"RListSysOssVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/SysOssVo"}}}},"RSysOssConfigVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysOssConfigVo","description":"响应业务数据"}}},"SysOssConfigVo":{"type":"object","description":"对象存储配置视图对象 sys_oss_config","properties":{"ossConfigId":{"type":"integer","format":"int64","description":"主键"},"configKey":{"type":"string","description":"配置key"},"accessKey":{"type":"string","description":"accessKey"},"secretKey":{"type":"string","description":"秘钥"},"bucketName":{"type":"string","description":"桶名称"},"prefix":{"type":"string","description":"前缀"},"endpoint":{"type":"string","description":"访问站点"},"domainUrl":{"type":"string","description":"自定义域名"},"isHttps":{"type":"string","description":"是否https(Y=是,N=否)"},"region":{"type":"string","description":"域"},"status":{"type":"string","description":"是否默认(Y=是,N=否)"},"ext1":{"type":"string","description":"扩展字段"},"remark":{"type":"string","description":"备注"},"accessPolicy":{"type":"string","description":"桶权限类型(0private 1public 2custom)"}}},"PageResultSysOssConfigVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysOssConfigVo"}}}},"RPageResultSysOssConfigVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysOssConfigVo","description":"响应业务数据"}}},"SseEmitter":{"type":"object","properties":{"timeout":{"type":"integer","format":"int64"}}},"RSysMessageBoxVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/SysMessageBoxVo","description":"响应业务数据"}}},"SysMessageBoxVo":{"type":"object","description":"消息盒子视图对象","properties":{"systemList":{"type":"array","description":"系统消息","items":{"$ref":"#/components/schemas/SysMessageVo"}},"noticeList":{"type":"array","description":"通知公告消息","items":{"$ref":"#/components/schemas/SysMessageVo"}},"workflowList":{"type":"array","description":"工作流消息","items":{"$ref":"#/components/schemas/SysMessageVo"}}}},"SysMessageVo":{"type":"object","description":"消息记录视图对象 sys_message","properties":{"messageId":{"type":"integer","format":"int64","description":"消息ID"},"category":{"type":"string","description":"消息分组"},"type":{"type":"string","description":"消息类型"},"source":{"type":"string","description":"消息来源"},"title":{"type":"string","description":"标题"},"message":{"type":"string","description":"摘要消息"},"content":{"type":"string","description":"详细内容"},"data":{"description":"扩展数据"},"path":{"type":"string","description":"前端跳转路径"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"PageResultSysOperLogVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysOperLogVo"}}}},"RPageResultSysOperLogVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysOperLogVo","description":"响应业务数据"}}},"SysOperLogVo":{"type":"object","description":"操作日志记录视图对象 sys_oper_log","properties":{"operId":{"type":"integer","format":"int64","description":"日志主键"},"title":{"type":"string","description":"模块标题"},"businessType":{"type":"integer","format":"int32","description":"业务类型(0其它 1新增 2修改 3删除)"},"businessTypes":{"type":"array","description":"业务类型数组","items":{"type":"integer","format":"int32"}},"method":{"type":"string","description":"方法名称"},"requestMethod":{"type":"string","description":"请求方式"},"operatorType":{"type":"integer","format":"int32","description":"操作类别(0其它 1后台用户 2手机端用户)"},"operName":{"type":"string","description":"操作人员"},"userId":{"type":"integer","format":"int64","description":"操作用户ID"},"deptId":{"type":"integer","format":"int64","description":"操作部门ID"},"deptName":{"type":"string","description":"部门名称"},"clientKey":{"type":"string","description":"客户端"},"deviceType":{"type":"string","description":"设备类型"},"browser":{"type":"string","description":"浏览器类型"},"os":{"type":"string","description":"操作系统"},"operUrl":{"type":"string","description":"请求URL"},"operIp":{"type":"string","description":"主机地址"},"operLocation":{"type":"string","description":"操作地点"},"operParam":{"type":"string","description":"请求参数"},"jsonResult":{"type":"string","description":"返回参数"},"status":{"type":"integer","format":"int32","description":"操作状态(0正常 1异常)"},"errorMsg":{"type":"string","description":"错误消息"},"operTime":{"type":"string","format":"date-time","description":"操作时间"},"costTime":{"type":"integer","format":"int64","description":"消耗时间"}}},"PageResultSysUserOnline":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysUserOnline"}}}},"RPageResultSysUserOnline":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysUserOnline","description":"响应业务数据"}}},"SysUserOnline":{"type":"object","description":"当前在线会话","properties":{"tokenId":{"type":"string","description":"会话编号"},"deptName":{"type":"string","description":"部门名称"},"userName":{"type":"string","description":"用户账号"},"clientKey":{"type":"string","description":"客户端"},"deviceType":{"type":"string","description":"设备类型"},"ipaddr":{"type":"string","description":"登录IP地址"},"loginLocation":{"type":"string","description":"登录地址"},"browser":{"type":"string","description":"浏览器类型"},"os":{"type":"string","description":"操作系统"},"loginTime":{"type":"integer","format":"int64","description":"登录时间"}}},"PageResultSysLoginInfoVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/SysLoginInfoVo"}}}},"RPageResultSysLoginInfoVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultSysLoginInfoVo","description":"响应业务数据"}}},"SysLoginInfoVo":{"type":"object","description":"系统访问记录视图对象 sys_login_info","properties":{"infoId":{"type":"integer","format":"int64","description":"访问ID"},"userName":{"type":"string","description":"用户账号"},"clientKey":{"type":"string","description":"客户端"},"deviceType":{"type":"string","description":"设备类型"},"status":{"type":"string","description":"登录状态(0成功 1失败)"},"ipaddr":{"type":"string","description":"登录IP地址"},"loginLocation":{"type":"string","description":"登录地点"},"browser":{"type":"string","description":"浏览器类型"},"os":{"type":"string","description":"操作系统"},"msg":{"type":"string","description":"提示消息"},"loginTime":{"type":"string","format":"date-time","description":"访问时间"}}},"CacheListInfoVo":{"type":"object","description":"缓存监控列表信息","properties":{"info":{"type":"object","additionalProperties":{"type":"string"},"description":"信息"},"dbSize":{"type":"integer","format":"int64","description":"数据库"},"commandStats":{"type":"array","description":"命令统计","items":{"type":"object","additionalProperties":{"type":"string"}}}}},"RCacheListInfoVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/CacheListInfoVo","description":"响应业务数据"}}},"CzDeviceVo":{"type":"object","description":"后台设备管理视图对象。","properties":{"deviceId":{"type":"integer","format":"int64","description":"设备主键"},"deviceNo":{"type":"string","description":"设备编号"},"name":{"type":"string","description":"设备名称"},"productId":{"type":"integer","format":"int64","description":"产品模板"},"productName":{"type":"string","description":"产品名称"},"category":{"type":"string","description":"品类"},"model":{"type":"string","description":"型号"},"mac":{"type":"string","description":"MAC"},"sn":{"type":"string","description":"序列号"},"homeId":{"type":"integer","format":"int64","description":"家庭"},"homeName":{"type":"string","description":"家庭名称"},"locationId":{"type":"integer","format":"int64","description":"房间"},"locationName":{"type":"string","description":"房间名称"},"status":{"type":"string","description":"状态(0未激活 1在线 2离线)"},"statusName":{"type":"string","description":"状态名称"},"bindUserId":{"type":"integer","format":"int64","description":"绑定用户"},"bindUserName":{"type":"string","description":"绑定用户昵称"},"bindUserPhone":{"type":"string","description":"绑定用户手机号"},"bindTime":{"type":"string","format":"date-time","description":"绑定时间"},"purifier":{"type":"boolean","description":"是否有净化器运行态"},"runMode":{"type":"string","description":"运行模式(0自动 1车载 2桌面)"},"fanLevel":{"type":"string","description":"风速档位(0标准 1强力 2低档)"},"airLevel":{"type":"string","description":"空气质量(0优 1良 2差 3污染)"},"tvoc":{"type":"number","description":"TVOC 原始值"},"powerMode":{"type":"string","description":"供电模式(0USB 1电池)"},"charging":{"type":"string","description":"充电(0否 1充电中)"},"deviceBattery":{"type":"integer","format":"int32","description":"设备电量"},"filterTotalDays":{"type":"integer","format":"int32","description":"滤芯总寿命天数"},"filterRemainDays":{"type":"integer","format":"int32","description":"滤芯剩余天数"},"filterLife":{"type":"integer","format":"int32","description":"滤芯寿命"},"filterReplaceTime":{"type":"string","format":"date-time","description":"最近一次确认更换滤芯时间"},"parkingShutdown":{"type":"string","description":"停车关机模式(0关 1开)"},"bluetoothConnected":{"type":"string","description":"蓝牙连接(0未连接 1已连接)"},"lastReportTime":{"type":"string","format":"date-time","description":"最近上报时间"},"lastOnlineTime":{"type":"string","format":"date-time","description":"最后在线时间"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"}}},"RCzDeviceVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/CzDeviceVo","description":"响应业务数据"}}},"CzProductOptionVo":{"type":"object","description":"新增设备时可选的产品模板。","properties":{"productId":{"type":"integer","format":"int64","description":"产品主键"},"model":{"type":"string","description":"型号"},"name":{"type":"string","description":"产品名称"},"category":{"type":"string","description":"品类"},"connectTypes":{"type":"string","description":"可添加方式"},"filterEnabled":{"type":"boolean","description":"是否需要填写滤芯天数"},"filterTotalDays":{"type":"integer","format":"int32","description":"滤芯默认天数"},"capabilities":{"type":"array","description":"能力编码","items":{"type":"string"}}}},"RListCzProductOptionVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/CzProductOptionVo"}}}},"CzLocationOptionVo":{"type":"object","description":"新增设备时可选的房间。","properties":{"locationId":{"type":"integer","format":"int64","description":"房间主键"},"locationName":{"type":"string","description":"房间名称"},"homeId":{"type":"integer","format":"int64","description":"家庭主键"},"homeName":{"type":"string","description":"家庭名称"}}},"RListCzLocationOptionVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/CzLocationOptionVo"}}}},"PageResultCzDeviceVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/CzDeviceVo"}}}},"RPageResultCzDeviceVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultCzDeviceVo","description":"响应业务数据"}}},"RTestTreeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/TestTreeVo","description":"响应业务数据"}}},"TestTreeVo":{"type":"object","description":"测试树表视图对象 test_tree","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"parentId":{"type":"integer","format":"int64","description":"父id"},"deptId":{"type":"integer","format":"int64","description":"部门id"},"userId":{"type":"integer","format":"int64","description":"用户id"},"treeName":{"type":"string","description":"树节点名"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RListTestTreeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/TestTreeVo"}}}},"RObject":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"description":"响应业务数据"}}},"RTestSensitive":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/TestSensitive","description":"响应业务数据"}}},"TestSensitive":{"type":"object","description":"脱敏测试对象。","properties":{"idCard":{"type":"string","description":"身份证"},"phone":{"type":"string","description":"电话"},"address":{"type":"string","description":"地址"},"email":{"type":"string","description":"邮箱"},"bankCard":{"type":"string","description":"银行卡"}}},"RMapStringListString":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"object","additionalProperties":{"type":"array","items":{"type":"string"}},"description":"响应业务数据"}}},"BlobResourceContents":{"allOf":[{"$ref":"#/components/schemas/ResourceContents"},{"type":"object","properties":{"uri":{"type":"string"},"mimeType":{"type":"string"},"blob":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"McpResourceReadResult":{"type":"object","description":"MCP 资源读取结果。","properties":{"serverName":{"type":"string"},"contents":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/BlobResourceContents"},{"$ref":"#/components/schemas/TextResourceContents"}]}}}},"RMapStringMcpResourceReadResult":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpResourceReadResult"},"description":"响应业务数据"}}},"ResourceContents":{},"TextResourceContents":{"allOf":[{"$ref":"#/components/schemas/ResourceContents"},{"type":"object","properties":{"uri":{"type":"string"},"mimeType":{"type":"string"},"text":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"Annotations":{"type":"object","properties":{"audience":{"type":"array","items":{"type":"string","enum":["user","assistant"]}},"priority":{"type":"number","format":"double"},"lastModified":{"type":"string"}}},"AudioContent":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"data":{"type":"string"},"mimeType":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"Content":{"discriminator":{"propertyName":"type"},"properties":{"type":{"type":"string"}},"required":["type"]},"EmbeddedResource":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"resource":{"oneOf":[{"$ref":"#/components/schemas/BlobResourceContents"},{"$ref":"#/components/schemas/TextResourceContents"}]},"_meta":{"type":"object","additionalProperties":{}}}}]},"ImageContent":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"data":{"type":"string"},"mimeType":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"McpDemoHandleResult":{"type":"object","description":"MCP 数据处理结果。","properties":{"sourceType":{"type":"string","description":"数据来源类型"},"handled":{"type":"boolean","description":"是否已处理"},"data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/McpToolCallResult"},"description":"MCP 原始返回数据"}}},"McpToolCallResult":{"type":"object","description":"MCP 工具调用结果。","properties":{"serverName":{"type":"string"},"error":{"type":"boolean"},"content":{"type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/AudioContent"},{"$ref":"#/components/schemas/EmbeddedResource"},{"$ref":"#/components/schemas/ImageContent"},{"$ref":"#/components/schemas/ResourceLink"},{"$ref":"#/components/schemas/TextContent"}]}},"structuredContent":{}}},"RMcpDemoHandleResult":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/McpDemoHandleResult","description":"响应业务数据"}}},"ResourceLink":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"uri":{"type":"string"},"description":{"type":"string"},"mimeType":{"type":"string"},"size":{"type":"integer","format":"int64"},"annotations":{"$ref":"#/components/schemas/Annotations"},"_meta":{"type":"object","additionalProperties":{}}}}]},"TextContent":{"allOf":[{"$ref":"#/components/schemas/Content"},{"type":"object","properties":{"annotations":{"$ref":"#/components/schemas/Annotations"},"text":{"type":"string"},"_meta":{"type":"object","additionalProperties":{}}}}]},"TestI18nBo":{"type":"object","description":"国际化 Bean 校验测试对象。","properties":{"name":{"type":"string","description":"名称。","minLength":1},"age":{"type":"integer","format":"int32","description":"年龄。"}},"required":["age","name"]},"RTestI18nBo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/TestI18nBo","description":"响应业务数据"}}},"RMapStringTestDemoEncrypt":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/TestDemoEncrypt"},"description":"响应业务数据"}}},"TestDemoEncrypt":{"type":"object","description":"测试加密字段实体。","properties":{"createBy":{"type":"integer","format":"int64","description":"创建者"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"updateBy":{"type":"integer","format":"int64","description":"更新者"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"id":{"type":"integer","format":"int64","description":"主键"},"deptId":{"type":"integer","format":"int64","description":"部门id"},"userId":{"type":"integer","format":"int64","description":"用户id"},"orderNum":{"type":"integer","format":"int32","description":"排序号"},"testKey":{"type":"string","description":"key键"},"value":{"type":"string","description":"值"},"version":{"type":"integer","format":"int64","description":"版本"},"delFlag":{"type":"integer","format":"int64","description":"删除标志"}}},"RTestDemoVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/TestDemoVo","description":"响应业务数据"}}},"TestDemoVo":{"type":"object","description":"测试单表视图对象 test_demo","properties":{"id":{"type":"integer","format":"int64","description":"主键"},"deptId":{"type":"integer","format":"int64","description":"部门id"},"userId":{"type":"integer","format":"int64","description":"用户id"},"orderNum":{"type":"integer","format":"int32","description":"排序号"},"testKey":{"type":"string","description":"key键"},"value":{"type":"string","description":"值"},"createTime":{"type":"string","format":"date-time","description":"创建时间"},"createBy":{"type":"integer","format":"int64","description":"创建人"},"createByName":{"type":"string","description":"创建人账号"},"updateTime":{"type":"string","format":"date-time","description":"更新时间"},"updateBy":{"type":"integer","format":"int64","description":"更新人"},"updateByName":{"type":"string","description":"更新人账号"},"version":{"type":"integer","format":"int64","description":"版本"}}},"PageResultTestDemoVo":{"type":"object","description":"表格分页数据对象","properties":{"total":{"type":"integer","format":"int64","description":"总记录数"},"rows":{"type":"array","description":"列表数据","items":{"$ref":"#/components/schemas/TestDemoVo"}}}},"RPageResultTestDemoVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/PageResultTestDemoVo","description":"响应业务数据"}}},"CaptchaVo":{"type":"object","description":"图片验证码响应对象。","properties":{"captchaEnabled":{"type":"boolean","description":"是否启用验证码"},"uuid":{"type":"string","description":"验证码标识"},"img":{"type":"string","description":"Base64 图片数据"}}},"RCaptchaVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/CaptchaVo","description":"响应业务数据"}}},"AppUserProfileVo":{"type":"object","description":"App 用户资料返回对象","properties":{"userId":{"type":"integer","format":"int64","description":"用户ID"},"userName":{"type":"string","description":"用户账号(默认使用手机号)"},"userNo":{"type":"string","description":"用户展示编号"},"phonenumber":{"type":"string","description":"手机号码"},"nickName":{"type":"string","description":"用户昵称"},"avatarOssId":{"type":"integer","format":"int64","description":"头像 OSS ID"},"avatarUrl":{"type":"string","description":"头像 URL"},"gender":{"type":"string","description":"性别(0未知 1男 2女)"},"birthday":{"type":"string","description":"生日"},"province":{"type":"string","description":"省份"},"city":{"type":"string","description":"城市"},"district":{"type":"string","description":"区县"},"remark":{"type":"string","description":"备注"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RAppUserProfileVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"$ref":"#/components/schemas/AppUserProfileVo","description":"响应业务数据"}}},"AppLocationVo":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"homeId":{"type":"integer","format":"int64"},"locationName":{"type":"string"},"sortOrder":{"type":"integer","format":"int32"},"icon":{"type":"string"},"status":{"type":"string"},"createTime":{"type":"string","format":"date-time"}}},"RListAppLocationVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/AppLocationVo"}}}},"AppHomeVo":{"type":"object","description":"App 家庭视图对象\n

\n 用于前端展示家庭列表信息,包含家庭基本信息及位置数量统计。","properties":{"id":{"type":"integer","format":"int64","description":"家庭ID"},"homeName":{"type":"string","description":"家庭名称(如:我的家、父母家)"},"isDefault":{"type":"string","description":"是否默认家庭(1是 0否)"},"locationCount":{"type":"integer","format":"int32","description":"位置数量(该家庭下的房间/位置总数)"},"createTime":{"type":"string","format":"date-time","description":"创建时间"}}},"RListAppHomeVo":{"type":"object","description":"响应信息主体","properties":{"code":{"type":"integer","format":"int32","description":"响应状态码"},"msg":{"type":"string","description":"响应提示信息"},"data":{"type":"array","description":"响应业务数据","items":{"$ref":"#/components/schemas/AppHomeVo"}}}},"OpenApiAgentToolVO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"}}},"OpenApiAgentVO":{"type":"object","properties":{"id":{"type":"integer","format":"int64"},"name":{"type":"string"},"description":{"type":"string"},"avatar":{"type":"string"},"greeting":{"type":"string"},"presetQuestions":{"type":"array","items":{"type":"string"}},"capabilities":{"type":"array","items":{"type":"string"}},"mcpEnabled":{"type":"boolean"},"mcpServers":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentToolVO"}},"skillEnabled":{"type":"boolean"},"skills":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentToolVO"}},"webSearchEnabled":{"type":"boolean"},"viewCount":{"type":"integer","format":"int32"},"isFeatured":{"type":"boolean"},"status":{"type":"integer","format":"int32"},"createDt":{"type":"string","format":"date-time"},"updateDt":{"type":"string","format":"date-time"},"subscribed":{"type":"boolean"}}},"ResultListOpenApiAgentVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentVO"}}}},"PageResultListOpenApiConversationVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiConversationVO"}},"page":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"OpenApiMessageVO":{"type":"object","properties":{"role":{"type":"string"},"content":{"type":"string"},"thinking":{"type":"string"},"status":{"type":"integer","format":"int32"},"createDt":{"type":"string"}}},"ResultListOpenApiMessageVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiMessageVO"}}}},"ResultMapStringObject":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"object","additionalProperties":{}}}},"OpenApiAgentQueryRequest":{"type":"object","properties":{"page":{"type":"integer","format":"int32","minimum":1},"size":{"type":"integer","format":"int32","minimum":1},"appId":{"type":"string"}}},"PageResultListOpenApiAgentVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/OpenApiAgentVO"}},"page":{"type":"integer","format":"int64"},"size":{"type":"integer","format":"int64"},"total":{"type":"integer","format":"int64"}}},"OpenApiAgentIdentityRequest":{"type":"object","properties":{"agentId":{"type":"integer","format":"int64"}},"required":["agentId"]},"ResultOpenApiAgentVO":{"type":"object","properties":{"status":{"type":"integer","format":"int32"},"message":{"type":"string"},"data":{"$ref":"#/components/schemas/OpenApiAgentVO"}}}}}} \ No newline at end of file