From 2086a560b19ba31709950cf016f5e61e1f03426d Mon Sep 17 00:00:00 2001 From: zhaodongsheng Date: Sat, 14 Sep 2024 20:18:07 +0800 Subject: [PATCH] =?UTF-8?q?refactor(headless):=20=E4=BD=BF=E7=94=A8=20Colu?= =?UTF-8?q?mnReq=20=E8=AF=B7=E6=B1=82=E5=AF=B9=E8=B1=A1=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=20getColumnsBySql=E5=BC=95=E5=85=A5=20ColumnReq=20=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=AF=B9=E8=B1=A1=E4=BB=A5=E7=BB=9F=E4=B8=80=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=8F=82=E6=95=B0=EF=BC=8C=E5=B9=B6=E5=9C=A8=20Databa?= =?UTF-8?q?seController=20=E4=B8=AD=E6=9B=BF=E6=8D=A2=20getColumnsBySql=20?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E4=BB=A5=E4=BD=BF=E7=94=A8=E6=AD=A4=E5=AF=B9?= =?UTF-8?q?=E8=B1=A1=E3=80=82=E7=9B=B8=E5=BA=94=E5=9C=B0=EF=BC=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20service.ts=20=E4=B8=AD=E7=9A=84=E5=87=BD=E6=95=B0?= =?UTF-8?q?=E4=BB=A5=E5=8C=B9=E9=85=8D=E6=96=B0=E7=AB=AF=E7=82=B9=20listCo?= =?UTF-8?q?lumnsBySql=EF=BC=8C=E5=B9=B6=E5=9C=A8=20SqlDetail.tsx=20?= =?UTF-8?q?=E4=B8=AD=E8=B0=83=E7=94=A8=E6=9B=B4=E6=96=B0=E5=90=8E=E7=9A=84?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E3=80=82=20(#1678)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../supersonic/headless/api/pojo/request/ColumnReq.java | 9 +++++++++ .../headless/server/rest/DatabaseController.java | 9 ++++----- .../SemanticModel/Datasource/components/SqlDetail.tsx | 4 ++-- .../supersonic-fe/src/pages/SemanticModel/service.ts | 4 ++-- 4 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ColumnReq.java diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ColumnReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ColumnReq.java new file mode 100644 index 000000000..9ea6c16a6 --- /dev/null +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/ColumnReq.java @@ -0,0 +1,9 @@ +package com.tencent.supersonic.headless.api.pojo.request; + +import lombok.Data; + +@Data +public class ColumnReq { + private Long databaseId; + private String sql; +} diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java index a3a05ec90..0d93ccad0 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/DatabaseController.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletResponse; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.auth.api.authentication.utils.UserHolder; import com.tencent.supersonic.headless.api.pojo.DBColumn; +import com.tencent.supersonic.headless.api.pojo.request.ColumnReq; import com.tencent.supersonic.headless.api.pojo.request.DatabaseReq; import com.tencent.supersonic.headless.api.pojo.request.SqlExecuteReq; import com.tencent.supersonic.headless.api.pojo.response.DatabaseResp; @@ -103,11 +104,9 @@ public class DatabaseController { return databaseService.getColumns(databaseId, db, table); } - @RequestMapping("/getColumnsBySql") - public List getColumnsBySql( - @RequestParam("databaseId") Long databaseId, @RequestParam("sql") String sql) - throws SQLException { - return databaseService.getColumns(databaseId, sql); + @PostMapping("/listColumnsBySql") + public List listColumnsBySql(@RequestBody ColumnReq columnReq) throws SQLException { + return databaseService.getColumns(columnReq.getDatabaseId(), columnReq.getSql()); } @GetMapping("/getDatabaseParameters") diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/SqlDetail.tsx b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/SqlDetail.tsx index 963103f92..eeee90f6e 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/SqlDetail.tsx +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/Datasource/components/SqlDetail.tsx @@ -18,7 +18,7 @@ import { isFunction } from 'lodash'; import FullScreen from '@/components/FullScreen'; import SqlEditor from '@/components/SqlEditor'; import type { TaskResultItem, TaskResultColumn } from '../data'; -import { executeSql, getColumnsBySql } from '@/pages/SemanticModel/service'; +import { executeSql, listColumnsBySql } from '@/pages/SemanticModel/service'; import SqlParams from './SqlParams'; import styles from '../style.less'; @@ -249,7 +249,7 @@ const SqlDetail: React.FC = ({ sqlVariables: sqlParams, }); - const { code: getColumnCode, data: getColumnData } = await getColumnsBySql({ + const { code: getColumnCode, data: getColumnData } = await listColumnsBySql({ sql: value, databaseId: currentDatabaseItem.key, }); diff --git a/webapp/packages/supersonic-fe/src/pages/SemanticModel/service.ts b/webapp/packages/supersonic-fe/src/pages/SemanticModel/service.ts index 0352a0b95..d8229d619 100644 --- a/webapp/packages/supersonic-fe/src/pages/SemanticModel/service.ts +++ b/webapp/packages/supersonic-fe/src/pages/SemanticModel/service.ts @@ -364,8 +364,8 @@ export async function executeSql(params: ExcuteSqlParams) { return request.post(`${process.env.API_BASE_URL}database/executeSql`, { data }); } -export async function getColumnsBySql(params: { databaseId: number; sql: string }) { - return request.get(`${process.env.API_BASE_URL}database/getColumnsBySql`, { +export async function listColumnsBySql(params: { databaseId: number; sql: string }) { + return request.get(`${process.env.API_BASE_URL}database/listColumnsBySql`, { params, }); }