diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/CollectDO.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/CollectDO.java index 6b994d316..ce748a38f 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/CollectDO.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/persistence/dataobject/CollectDO.java @@ -33,7 +33,7 @@ public class CollectDO implements Serializable { private Long id; /** - * 收藏的类型 + * 收藏的类型 metric,dimension,tag */ @TableField("type") private String type; diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/TagFilter.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/TagFilter.java index eca312603..17b7fe4f7 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/TagFilter.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/pojo/TagFilter.java @@ -10,5 +10,5 @@ public class TagFilter extends MetaFilter { private List itemIds; private TagDefineType tagDefineType; - + private boolean hasCollect; } 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 2939c344a..4003dc2d2 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 @@ -2,9 +2,11 @@ package com.tencent.supersonic.headless.server.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.pojo.enums.AuthType; import com.tencent.supersonic.common.pojo.enums.TypeEnums; +import com.tencent.supersonic.headless.api.pojo.SchemaElementType; import com.tencent.supersonic.headless.api.pojo.enums.TagDefineType; import com.tencent.supersonic.headless.api.pojo.request.TagDeleteReq; import com.tencent.supersonic.headless.api.pojo.request.TagFilterPageReq; @@ -139,12 +141,28 @@ public class TagMetaServiceImpl implements TagMetaService { @Override public PageInfo queryTagMarketPage(TagFilterPageReq tagMarketPageReq, User user) { List modelRespList = getRelatedModel(tagMarketPageReq); + if (CollectionUtils.isEmpty(modelRespList)) { + return new PageInfo<>(); + } List modelIds = modelRespList.stream().map(model -> model.getId()).collect(Collectors.toList()); + TagFilter tagFilter = new TagFilter(); + List collectList = collectService.getCollectList(user.getName()); + List collectIds = collectList.stream() + .filter(collectDO -> SchemaElementType.TAG.name().equalsIgnoreCase(collectDO.getType())) + .map(CollectDO::getCollectId).collect(Collectors.toList()); + if (tagMarketPageReq.isHasCollect()) { + if (CollectionUtils.isEmpty(collectIds)) { + tagFilter.setIds(Lists.newArrayList(-1L)); + } else { + tagFilter.setIds(collectIds); + } + } + BeanUtils.copyProperties(tagMarketPageReq, tagFilter); tagFilter.setModelIds(modelIds); PageInfo tagDOPageInfo = PageHelper.startPage(tagMarketPageReq.getCurrent(), - tagMarketPageReq.getPageSize()) + tagMarketPageReq.getPageSize()) .doSelectPageInfo(() -> getTags(tagFilter)); List tagRespList = tagDOPageInfo.getList(); diff --git a/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml b/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml index b34270d6d..6a4696c07 100644 --- a/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml +++ b/headless/server/src/main/resources/mapper/custom/TagCustomMapper.xml @@ -52,13 +52,13 @@ diff --git a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/TagTest.java b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/TagTest.java index cf9fd18bb..e9a7d67b7 100644 --- a/launchers/standalone/src/test/java/com/tencent/supersonic/headless/TagTest.java +++ b/launchers/standalone/src/test/java/com/tencent/supersonic/headless/TagTest.java @@ -10,6 +10,7 @@ import com.tencent.supersonic.headless.api.pojo.response.TagResp; import com.tencent.supersonic.headless.server.pojo.TagFilter; import com.tencent.supersonic.headless.server.service.TagMetaService; import org.junit.Assert; +import org.junit.Before; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -44,25 +45,36 @@ public class TagTest extends BaseTest { return tagReq; } + @Before + public void setUp() { + TagDeleteReq tagDeleteReq = new TagDeleteReq(); + tagDeleteReq.setTagDefineType(TagDefineType.DIMENSION); + tagDeleteReq.setItemIds(Arrays.asList(1L, 4L, 5L)); + tagMetaService.deleteBatch(tagDeleteReq, user); + } + @Test - void testCreateTag() { + public void testCreateTag() { + setUp(); TagReq tagReq = newTagReq(); tagMetaService.create(tagReq, user); TagReq tagReq1 = newTagReqV1(); tagMetaService.create(tagReq1, user); - - List tags = tagMetaService.getTags(new TagFilter()); + TagFilter tagFilter = new TagFilter(); + tagFilter.setItemIds(Arrays.asList(4L, 5L)); + List tags = tagMetaService.getTags(tagFilter); Assert.assertEquals(2, tags.size()); TagDeleteReq tagDeleteReq = new TagDeleteReq(); tagDeleteReq.setTagDefineType(TagDefineType.DIMENSION); tagDeleteReq.setItemIds(Arrays.asList(4L, 5L)); tagMetaService.deleteBatch(tagDeleteReq, user); - List tags1 = tagMetaService.getTags(new TagFilter()); + List tags1 = tagMetaService.getTags(tagFilter); Assert.assertEquals(0, tags1.size()); } @Test - void testTagMarket() { + public void testTagMarket() { + setUp(); TagReq tagReq = newTagReq(); tagMetaService.create(tagReq, user); TagReq tagReq1 = newTagReqV1(); @@ -78,8 +90,6 @@ public class TagTest extends BaseTest { tagDeleteReq.setTagDefineType(TagDefineType.DIMENSION); tagDeleteReq.setItemIds(Arrays.asList(1L, 4L, 5L)); tagMetaService.deleteBatch(tagDeleteReq, user); - List tags1 = tagMetaService.getTags(new TagFilter()); - Assert.assertEquals(0, tags1.size()); } } \ No newline at end of file