From 7201205af85508421037119ba66b3a6a48de61ec Mon Sep 17 00:00:00 2001 From: guang <guang@guang.com> Date: 星期六, 06 五月 2023 11:58:57 +0800 Subject: [PATCH] 分布及druid --- src/main/java/com/hx/other/service/controller/SqlQueryController.java | 99 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 94 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/hx/other/service/controller/SqlQueryController.java b/src/main/java/com/hx/other/service/controller/SqlQueryController.java index 1d88b38..9ecabf9 100644 --- a/src/main/java/com/hx/other/service/controller/SqlQueryController.java +++ b/src/main/java/com/hx/other/service/controller/SqlQueryController.java @@ -12,6 +12,8 @@ import com.hx.other.service.vo.ai.SqlVo; import com.hx.resultTool.Result; import com.hx.util.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -36,7 +38,8 @@ @Resource private SqlQueryTempService sqlQueryTempService; - @Resource + @Autowired + @Qualifier("readJdbcTemplate") private JdbcTemplate jdbcTemplate; @Resource @@ -49,16 +52,16 @@ public Result query(@RequestBody(required = false) BaseVo baseVo) { - if(baseVo == null || StringUtils.isEmpty(baseVo.getContent())) + if(baseVo == null || StringUtils.isEmpty(baseVo.getKeyWord())) { throwParamException("璇疯緭鍏ユ煡璇㈡潯浠�"); } QueryRecord queryRecord = new QueryRecord(); - queryRecord.setContent(baseVo.getContent()); + queryRecord.setContent(baseVo.getKeyWord()); //鍏堜粠妯℃澘閲屽尮閰� - String sql = sqlQueryTempService.selectByContent(baseVo.getContent()); + String sql = sqlQueryTempService.selectByContent(baseVo.getKeyWord()); if(StringUtils.isEmpty(sql)) { //璁板綍鍚慳i鏌ヨ鏃剁殑姣鏁� @@ -66,7 +69,7 @@ //妯℃澘閲屾病鏈夛紝浠巃i閲屾煡璇� JSONObject obj = new JSONObject(); - obj.put("msg", baseVo.getContent()); + obj.put("msg", baseVo.getKeyWord()); obj = AiQueryUtil.aiQuery(sqlAiApi, obj); //璁板綍ai杩斿洖鐨勮豹绉掓暟 @@ -104,6 +107,7 @@ } SqlVo sqlVo = new SqlVo(); + sqlVo.setNow(sql); sqlVo.setOrigin(queryRecord.getAiResult()); sqlVo.setQueryContent(queryRecord.getAiQueryContent()); sqlVo.setIsArr(1); @@ -134,4 +138,89 @@ return Result.success(sqlVo); } + + @PostMapping("/query/test") + public Result queryTest(@RequestBody(required = false) BaseVo baseVo) + { + + if(baseVo == null || StringUtils.isEmpty(baseVo.getKeyWord())) + { + throwParamException("璇疯緭鍏ユ煡璇㈡潯浠�"); + } + + QueryRecord queryRecord = new QueryRecord(); + queryRecord.setContent(baseVo.getKeyWord()); + + //鍏堜粠妯℃澘閲屽尮閰� + String sql = sqlQueryTempService.selectByContent(baseVo.getKeyWord()); + if(StringUtils.isEmpty(sql)) + { + //璁板綍鍚慳i鏌ヨ鏃剁殑姣鏁� + queryRecord.setQueryTime(Calendar.getInstance().getTimeInMillis()); + + //妯℃澘閲屾病鏈夛紝浠巃i閲屾煡璇� + JSONObject obj = new JSONObject(); + obj.put("msg", baseVo.getKeyWord()); + obj = AiQueryUtil.aiQuery(sqlAiApi, obj); + + //璁板綍ai杩斿洖鐨勮豹绉掓暟 + queryRecord.setAiResultTime(Calendar.getInstance().getTimeInMillis()); + + if(obj != null && 100 == obj.getIntValue("code")) + { + //鍒ゆ柇杩斿洖鏄惁sql + if(obj.getBooleanValue("isSql")) + { + //鏄痵ql + sql = obj.getString("now"); + //璁板綍ai杩斿洖鐨勭粨鏋� + queryRecord.setAiResult(obj.getString("origin")); + + } + + //璁板綍ai鏌ヨ鐨刢ontent + queryRecord.setAiQueryContent(obj.getString("content")); + } + }else{ + queryRecord.setIsFromQuery(BaseEntity.YES); + } + + List<Map<String, Object>> list = null; + if(!StringUtils.isEmpty(sql)) + { + //璁板綍鏌ヨ鐨剆ql + queryRecord.setSqlStr(sql); + + list = AiQueryUtil.jdbcQuery(jdbcTemplate, sql); + + //璁板綍sql鏌ヨ杩斿洖鐨勮豹绉掓暟 + queryRecord.setSqlTime(Calendar.getInstance().getTimeInMillis()); + } + + SqlVo sqlVo = new SqlVo(); + sqlVo.setIsArr(1); + sqlVo.setStatus(StringUtils.isEmpty(sql) ? 0 : 1); + sqlVo.setMsg(list == null ? "鏌ユ棤淇℃伅" : list); + + if(list != null) + { + //褰撹繑鍥炴槸涓粺璁℃暟鍊兼椂锛岀洿鎺ヨ繑鍥炴暟鍊� + if(list.size() == 1) + { + Set<String> set = list.get(0).keySet(); + if(set.size() == 1) { + for (String key : set) { + if (key.toUpperCase().indexOf("COUNT") != -1 || key.toUpperCase().indexOf("SUM") != -1) { + sqlVo.setIsArr(0); + sqlVo.setMsg(list.get(0).get(key)); + } + } + } + } + } + + queryRecordService.insert(queryRecord); + + return Result.success(sqlVo); + } } -- Gitblit v1.8.0