From 7a4c19f5b691cb569ce9e9f240f954a9b5afc974 Mon Sep 17 00:00:00 2001 From: daikon <1059907724@qq.com> Date: Tue, 19 Mar 2024 23:08:50 +0800 Subject: [PATCH] add tagTest and pot TagCustomMapper.xml (#833) --- .../service/impl/TagMetaServiceImpl.java | 40 ++++++--- .../mapper/custom/TagCustomMapper.xml | 14 +-- .../supersonic/ModelDemoDataLoader.java | 27 ++++++ .../resources/config.update/sql-update.sql | 1 - .../src/main/resources/db/schema-h2.sql | 1 - .../tencent/supersonic/headless/TagTest.java | 85 +++++++++++++++++++ .../src/test/resources/db/schema-h2.sql | 3 +- 7 files changed, 150 insertions(+), 21 deletions(-) create mode 100644 launchers/standalone/src/test/java/com/tencent/supersonic/headless/TagTest.java diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java index 40849369b..e9e973a1e 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/impl/TagMetaServiceImpl.java @@ -72,7 +72,8 @@ public class TagMetaServiceImpl implements TagMetaService { @Override public TagResp create(TagReq tagReq, User user) { - checkExit(tagReq); + checkExist(tagReq); + checkTagObject(tagReq); TagDO tagDO = convert(tagReq); Date date = new Date(); tagDO.setId(null); @@ -81,7 +82,7 @@ public class TagMetaServiceImpl implements TagMetaService { tagDO.setUpdatedBy(user.getName()); tagDO.setUpdatedAt(date); tagRepository.create(tagDO); - return convert2Resp(tagDO); + return getTag(tagDO.getId(), user); } @Override @@ -108,6 +109,10 @@ public class TagMetaServiceImpl implements TagMetaService { public TagResp getTag(Long id, User user) { TagDO tagDO = tagRepository.getTagById(id); TagResp tagResp = convert2Resp(tagDO); + List tagRespList = Arrays.asList(tagResp); + fillModelInfo(tagRespList); + fillDomainInfo(tagRespList); + tagResp = tagRespList.get(0); tagResp = fillTagObjectInfo(tagResp, user); tagResp = fillCollectAndAdminInfo(tagResp, user); return tagResp; @@ -190,6 +195,7 @@ public class TagMetaServiceImpl implements TagMetaService { private TagResp convert2Resp(TagDO tagDO) { TagResp tagResp = new TagResp(); BeanUtils.copyProperties(tagDO, tagResp); + tagResp.setTagDefineType(tagDO.getType()); if (TagDefineType.METRIC.name().equalsIgnoreCase(tagDO.getType())) { MetricResp metric = metricService.getMetric(tagDO.getItemId()); tagResp.setBizName(metric.getBizName()); @@ -279,13 +285,6 @@ public class TagMetaServiceImpl implements TagMetaService { return dimensions.size(); } - private TagResp fillModelInfo(TagResp tagResp) { - ModelResp model = modelService.getModel(tagResp.getModelId()); - tagResp.setModelName(model.getName()); - tagResp.setDomainId(model.getDomainId()); - return tagResp; - } - private void fillModelInfo(List tagRespList) { Map modelIdAndRespMap = modelService.getModelMap(); tagRespList.stream().forEach(tagResp -> { @@ -303,6 +302,8 @@ public class TagMetaServiceImpl implements TagMetaService { .map(CollectDO::getCollectId).collect(Collectors.toList()); if (CollectionUtils.isNotEmpty(collectIds) && collectIds.contains(tagResp.getId())) { tagResp.setIsCollect(true); + } else { + tagResp.setIsCollect(false); } List tagRespList = Arrays.asList(tagResp); fillAdminRes(tagRespList, user); @@ -324,7 +325,7 @@ public class TagMetaServiceImpl implements TagMetaService { } } - private void checkExit(TagReq tagReq) { + private void checkExist(TagReq tagReq) { TagFilter tagFilter = new TagFilter(); tagFilter.setTagDefineType(tagReq.getTagDefineType()); if (Objects.nonNull(tagReq.getItemId())) { @@ -337,6 +338,25 @@ public class TagMetaServiceImpl implements TagMetaService { } } + private void checkTagObject(TagReq tagReq) { + if (TagDefineType.DIMENSION.equals(tagReq.getTagDefineType())) { + DimensionResp dimension = dimensionService.getDimension(tagReq.getItemId()); + ModelResp model = modelService.getModel(dimension.getModelId()); + if (Objects.isNull(model.getTagObjectId())) { + throw new RuntimeException(String.format("this dimension:{} is not supported to create tag", + tagReq.getItemId())); + } + } + if (TagDefineType.METRIC.equals(tagReq.getTagDefineType())) { + MetricResp metric = metricService.getMetric(tagReq.getItemId()); + ModelResp model = modelService.getModel(metric.getModelId()); + if (Objects.isNull(model.getTagObjectId())) { + throw new RuntimeException(String.format("this metric:{} is not supported to create tag", + tagReq.getItemId())); + } + } + } + private TagDO convert(TagReq tagReq) { TagDO tagDO = new TagDO(); BeanUtils.copyProperties(tagReq, tagDO); diff --git a/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml b/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml index 7d1e8b709..da49eee62 100644 --- a/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml +++ b/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml @@ -20,7 +20,7 @@ - + @@ -45,28 +45,28 @@ - and tag_define_type = #{tagDefineType} + and type = #{tagDefineType}