From 0d9afb5d87e3e50d35132ee99939d38f7ff3082e Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Thu, 20 Jun 2024 11:56:30 +0800 Subject: [PATCH] (improvement)(headless) Batch Update Metric sensitiveLevel (#1167) Co-authored-by: lxwcodemonkey --- .../api/pojo/request/MetaBatchReq.java | 3 ++ .../server/rest/MetricController.java | 9 ++++ .../server/service/MetricService.java | 2 + .../service/impl/MetricServiceImpl.java | 41 +++++++++++++------ 4 files changed, 42 insertions(+), 13 deletions(-) diff --git a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/MetaBatchReq.java b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/MetaBatchReq.java index c240c069f..10c49b372 100644 --- a/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/MetaBatchReq.java +++ b/headless/api/src/main/java/com/tencent/supersonic/headless/api/pojo/request/MetaBatchReq.java @@ -22,6 +22,9 @@ public class MetaBatchReq { * 批量执行分类信息 */ private EventType type; + private List classifications; + private Integer sensitiveLevel; + } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/MetricController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/MetricController.java index 306521dd7..1c6cb0a05 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/MetricController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/MetricController.java @@ -92,6 +92,15 @@ public class MetricController { return true; } + @PostMapping("/batchUpdateSensitiveLevel") + public Boolean batchUpdateSensitiveLevel(@RequestBody MetaBatchReq metaBatchReq, + HttpServletRequest request, + HttpServletResponse response) { + User user = UserHolder.findUser(request, response); + metricService.batchUpdateSensitiveLevel(metaBatchReq, user); + return true; + } + @PostMapping("/mockMetricAlias") public List mockMetricAlias(@RequestBody MetricBaseReq metricReq, HttpServletRequest request, diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/MetricService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/MetricService.java index 85aeb92e7..d8033c0a2 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/MetricService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/MetricService.java @@ -36,6 +36,8 @@ public interface MetricService { void batchUpdateClassifications(MetaBatchReq metaBatchReq, User user); + void batchUpdateSensitiveLevel(MetaBatchReq metaBatchReq, User user); + void deleteMetric(Long id, User user) throws Exception; PageInfo queryMetricMarket(PageMetricReq pageMetricReq, User user); diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java index 94689bb60..613445d11 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/MetricServiceImpl.java @@ -2,6 +2,7 @@ package com.tencent.supersonic.headless.server.service.impl; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; @@ -17,6 +18,7 @@ import com.tencent.supersonic.common.pojo.enums.EventType; import com.tencent.supersonic.common.pojo.enums.StatusEnum; import com.tencent.supersonic.common.pojo.enums.TypeEnums; import com.tencent.supersonic.common.util.BeanMapper; +import com.tencent.supersonic.headless.server.persistence.mapper.MetricDOMapper; import com.tencent.supersonic.headless.server.utils.AliasGenerateHelper; import com.tencent.supersonic.common.jsqlparser.SqlSelectFunctionHelper; import com.tencent.supersonic.headless.api.pojo.DrillDownDimension; @@ -89,7 +91,8 @@ import java.util.stream.Collectors; @Service @Slf4j -public class MetricServiceImpl implements MetricService { +public class MetricServiceImpl extends ServiceImpl + implements MetricService { private MetricRepository metricRepository; @@ -186,9 +189,7 @@ public class MetricServiceImpl implements MetricService { if (CollectionUtils.isEmpty(metaBatchReq.getIds())) { return; } - MetricFilter metricFilter = new MetricFilter(); - metricFilter.setIds(metaBatchReq.getIds()); - List metricDOS = metricRepository.getMetric(metricFilter); + List metricDOS = getMetrics(metaBatchReq.getIds()); if (CollectionUtils.isEmpty(metricDOS)) { return; } @@ -210,9 +211,7 @@ public class MetricServiceImpl implements MetricService { @Override public void batchPublish(List metricIds, User user) { - MetricFilter metricFilter = new MetricFilter(); - metricFilter.setIds(metricIds); - List metrics = metricRepository.getMetric(metricFilter); + List metrics = getMetrics(metricIds); for (MetricDO metricDO : metrics) { metricDO.setUpdatedAt(new Date()); metricDO.setUpdatedBy(user.getName()); @@ -222,9 +221,7 @@ public class MetricServiceImpl implements MetricService { @Override public void batchUnPublish(List metricIds, User user) { - MetricFilter metricFilter = new MetricFilter(); - metricFilter.setIds(metricIds); - List metrics = metricRepository.getMetric(metricFilter); + List metrics = getMetrics(metricIds); for (MetricDO metricDO : metrics) { metricDO.setUpdatedAt(new Date()); metricDO.setUpdatedBy(user.getName()); @@ -234,9 +231,7 @@ public class MetricServiceImpl implements MetricService { @Override public void batchUpdateClassifications(MetaBatchReq metaBatchReq, User user) { - MetricFilter metricFilter = new MetricFilter(); - metricFilter.setIds(metaBatchReq.getIds()); - List metrics = metricRepository.getMetric(metricFilter); + List metrics = getMetrics(metaBatchReq.getIds()); for (MetricDO metricDO : metrics) { metricDO.setUpdatedAt(new Date()); metricDO.setUpdatedBy(user.getName()); @@ -267,6 +262,17 @@ public class MetricServiceImpl implements MetricService { metricDO.setClassifications(classifications); } + @Override + public void batchUpdateSensitiveLevel(MetaBatchReq metaBatchReq, User user) { + List metrics = getMetrics(metaBatchReq.getIds()); + for (MetricDO metricDO : metrics) { + metricDO.setUpdatedAt(new Date()); + metricDO.setUpdatedBy(user.getName()); + metricDO.setSensitiveLevel(metaBatchReq.getSensitiveLevel()); + } + updateBatchById(metrics); + } + @Override public void deleteMetric(Long id, User user) { MetricDO metricDO = metricRepository.getMetricById(id); @@ -349,6 +355,15 @@ public class MetricServiceImpl implements MetricService { return metricRepository.getMetric(metricFilter); } + private List getMetrics(List ids) { + if (CollectionUtils.isEmpty(ids)) { + return Lists.newArrayList(); + } + MetricFilter metricFilter = new MetricFilter(); + metricFilter.setIds(ids); + return metricRepository.getMetric(metricFilter); + } + @Override public List getMetrics(MetaFilter metaFilter) { MetricFilter metricFilter = new MetricFilter();