From 6044ac660b623034eaf0d7d8512aff99463458d1 Mon Sep 17 00:00:00 2001
From: guang <guang@guang.com>
Date: 星期一, 24 四月 2023 15:34:01 +0800
Subject: [PATCH] 初始

---
 src/main/java/com/hx/other/service/controller/SqlQueryController.java |   93 ++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 89 insertions(+), 4 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..bc41cd9 100644
--- a/src/main/java/com/hx/other/service/controller/SqlQueryController.java
+++ b/src/main/java/com/hx/other/service/controller/SqlQueryController.java
@@ -49,16 +49,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 +66,7 @@
 
             //妯℃澘閲屾病鏈夛紝浠巃i閲屾煡璇�
             JSONObject obj = new JSONObject();
-            obj.put("msg", baseVo.getContent());
+            obj.put("msg", baseVo.getKeyWord());
             obj = AiQueryUtil.aiQuery(sqlAiApi, obj);
 
             //璁板綍ai杩斿洖鐨勮豹绉掓暟
@@ -134,4 +134,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