From 5af76fa7dc2eda877f1f8195a05e1c7d0ed7c310 Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Fri, 21 Jun 2024 18:11:14 +0800 Subject: [PATCH] (improvement)(Headless) Supports configuring term-related metrics and dimensions (#1184) Co-authored-by: lxwcodemonkey --- .../headless/api/pojo/request/TermReq.java | 4 +++ .../headless/api/pojo/response/TermResp.java | 4 +++ .../server/persistence/dataobject/TermDO.java | 4 +++ .../server/service/impl/TermServiceImpl.java | 26 ++++++++++++------- .../resources/config.update/sql-update.sql | 5 +++- .../src/main/resources/db/schema-h2.sql | 2 ++ .../src/main/resources/db/schema-mysql.sql | 2 ++ .../src/test/resources/db/schema-h2.sql | 2 ++ 8 files changed, 39 insertions(+), 10 deletions(-) diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/TermReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/TermReq.java index bd73ff70e..26d90ae14 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/TermReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/TermReq.java @@ -21,4 +21,8 @@ public class TermReq extends RecordInfo { private List alias = Lists.newArrayList(); + private List relatedMetrics = Lists.newArrayList(); + + private List relateDimensions = Lists.newArrayList(); + } diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/TermResp.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/TermResp.java index 39109f834..7b84cc421 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/TermResp.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/response/TermResp.java @@ -23,4 +23,8 @@ public class TermResp extends RecordInfo { private List alias = Lists.newArrayList(); + private List relatedMetrics = Lists.newArrayList(); + + private List relateDimensions = Lists.newArrayList(); + } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/TermDO.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/TermDO.java index 7252fc7be..ab357b98f 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/TermDO.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/TermDO.java @@ -22,6 +22,10 @@ public class TermDO { private String alias; + private String relatedMetrics; + + private String relatedDimensions; + private Date createdAt; private String createdBy; diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TermServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TermServiceImpl.java index c1ef4b77f..8076bb382 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TermServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TermServiceImpl.java @@ -24,17 +24,16 @@ import java.util.stream.Collectors; public class TermServiceImpl extends ServiceImpl implements TermService { @Override - public void saveOrUpdate(TermReq termSetReq, User user) { + public void saveOrUpdate(TermReq termReq, User user) { QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.lambda().eq(TermDO::getId, termSetReq.getId()); + queryWrapper.lambda().eq(TermDO::getId, termReq.getId()); TermDO termSetDO = getOne(queryWrapper); if (termSetDO == null) { - termSetReq.createdBy(user.getName()); + termReq.createdBy(user.getName()); termSetDO = new TermDO(); } - termSetReq.updatedBy(user.getName()); - BeanMapper.mapper(termSetReq, termSetDO); - termSetDO.setAlias(JsonUtil.toString(termSetReq.getAlias())); + termReq.updatedBy(user.getName()); + convert(termReq, termSetDO); saveOrUpdate(termSetDO); } @@ -63,11 +62,20 @@ public class TermServiceImpl extends ServiceImpl implements Collectors.groupingBy(TermResp::getDomainId)); } - private TermResp convert(TermDO termSetDO) { + private TermResp convert(TermDO termDO) { TermResp termSetResp = new TermResp(); - BeanMapper.mapper(termSetDO, termSetResp); - termSetResp.setAlias(JsonUtil.toList(termSetDO.getAlias(), String.class)); + BeanMapper.mapper(termDO, termSetResp); + termSetResp.setAlias(JsonUtil.toList(termDO.getAlias(), String.class)); + termSetResp.setRelatedMetrics(JsonUtil.toList(termDO.getRelatedMetrics(), Long.class)); + termSetResp.setRelateDimensions(JsonUtil.toList(termDO.getRelatedDimensions(), Long.class)); return termSetResp; } + private void convert(TermReq termReq, TermDO termDO) { + BeanMapper.mapper(termReq, termDO); + termDO.setAlias(JsonUtil.toString(termReq.getAlias())); + termDO.setRelatedDimensions(JsonUtil.toString(termReq.getRelateDimensions())); + termDO.setRelatedMetrics(JsonUtil.toString(termReq.getRelatedMetrics())); + } + } diff --git a/launchers/standalone/src/main/resources/config.update/sql-update.sql b/launchers/standalone/src/main/resources/config.update/sql-update.sql index 356288c43..5c6350d88 100644 --- a/launchers/standalone/src/main/resources/config.update/sql-update.sql +++ b/launchers/standalone/src/main/resources/config.update/sql-update.sql @@ -325,4 +325,7 @@ alter table s2_chat_query add column `parse_time_cost` varchar(1024); alter table s2_user add column `salt` varchar(256) DEFAULT NULL COMMENT 'md5密码盐'; --20240621 -alter table s2_agent add column `visual_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '可视化配置'; \ No newline at end of file +alter table s2_agent add column `visual_config` varchar(2000) COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '可视化配置'; + +alter table s2_agent add column `related_metrics` varchar(1000) DEFAULT NULL COMMENT '术语关联的指标'; +alter table s2_agent add column `related_dimensions` varchar(1000) DEFAULT NULL COMMENT '术语关联的维度'; diff --git a/launchers/standalone/src/main/resources/db/schema-h2.sql b/launchers/standalone/src/main/resources/db/schema-h2.sql index 6a85aebf9..8f5a6ddc5 100644 --- a/launchers/standalone/src/main/resources/db/schema-h2.sql +++ b/launchers/standalone/src/main/resources/db/schema-h2.sql @@ -639,6 +639,8 @@ CREATE TABLE IF NOT EXISTS `s2_term` ( `name` varchar(255) NOT NULL , `description` varchar(500) DEFAULT NULL , `alias` varchar(1000) NOT NULL , + `related_metrics` varchar(1000) DEFAULT NULL , + `related_dimensions` varchar(1000) DEFAULT NULL, `created_at` TIMESTAMP NOT NULL , `created_by` varchar(100) NOT NULL , `updated_at` TIMESTAMP DEFAULT NULL , diff --git a/launchers/standalone/src/main/resources/db/schema-mysql.sql b/launchers/standalone/src/main/resources/db/schema-mysql.sql index c7c72e133..1e97d5f38 100644 --- a/launchers/standalone/src/main/resources/db/schema-mysql.sql +++ b/launchers/standalone/src/main/resources/db/schema-mysql.sql @@ -562,6 +562,8 @@ CREATE TABLE IF NOT EXISTS `s2_term` ( `name` varchar(255) NOT NULL , `description` varchar(500) DEFAULT NULL , `alias` varchar(1000) NOT NULL , + `related_metrics` varchar(1000) DEFAULT NULL , + `related_dimensions` varchar(1000) DEFAULT NULL, `created_at` datetime NOT NULL , `created_by` varchar(100) NOT NULL , `updated_at` datetime DEFAULT NULL , diff --git a/launchers/standalone/src/test/resources/db/schema-h2.sql b/launchers/standalone/src/test/resources/db/schema-h2.sql index e5c34cc36..b06848f95 100644 --- a/launchers/standalone/src/test/resources/db/schema-h2.sql +++ b/launchers/standalone/src/test/resources/db/schema-h2.sql @@ -639,6 +639,8 @@ CREATE TABLE IF NOT EXISTS `s2_term` ( `name` varchar(255) NOT NULL , `description` varchar(500) DEFAULT NULL , `alias` varchar(1000) NOT NULL , + `related_metrics` varchar(1000) DEFAULT NULL , + `related_dimensions` varchar(1000) DEFAULT NULL, `created_at` TIMESTAMP NOT NULL , `created_by` varchar(100) NOT NULL , `updated_at` TIMESTAMP DEFAULT NULL ,