diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TagController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TagController.java index ff7d16d51..f8a68b036 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TagController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TagController.java @@ -15,6 +15,7 @@ import com.tencent.supersonic.headless.server.service.TagMetaService; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; import com.tencent.supersonic.headless.server.service.TagQueryService; import org.springframework.web.bind.annotation.DeleteMapping; @@ -67,7 +68,7 @@ public class TagController { * @throws Exception */ @PostMapping("/create/batch") - public Integer createBatch(@RequestBody List tagReqList, + public Integer createBatch(@RequestBody @Valid List tagReqList, HttpServletRequest request, HttpServletResponse response) throws Exception { User user = UserHolder.findUser(request, response); @@ -77,18 +78,18 @@ public class TagController { /** * 批量删除标签 * - * @param tagDeleteReq + * @param tagDeleteReqList * @param request * @param response * @return * @throws Exception */ @PostMapping("/delete/batch") - public Boolean deleteBatch(@RequestBody TagDeleteReq tagDeleteReq, + public Boolean deleteBatch(@RequestBody @Valid List tagDeleteReqList, HttpServletRequest request, HttpServletResponse response) throws Exception { User user = UserHolder.findUser(request, response); - return tagMetaService.deleteBatch(tagDeleteReq, user); + return tagMetaService.deleteBatch(tagDeleteReqList, user); } /** diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TagMetaService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TagMetaService.java index 6e5d02da6..b5c8811b1 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TagMetaService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TagMetaService.java @@ -21,7 +21,7 @@ public interface TagMetaService { Boolean delete(Long id, User user); - Boolean deleteBatch(TagDeleteReq tagDeleteReq, User user); + Boolean deleteBatch(List tagDeleteReqList, User user); TagResp getTag(Long id, User user); 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 8f447cad5..26d0035b4 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 @@ -59,9 +59,9 @@ public class TagMetaServiceImpl implements TagMetaService { private final DomainService domainService; public TagMetaServiceImpl(TagRepository tagRepository, ModelService modelService, - CollectService collectService, @Lazy DimensionService dimensionService, - @Lazy MetricService metricService, TagObjectService tagObjectService, - DomainService domainService) { + CollectService collectService, @Lazy DimensionService dimensionService, + @Lazy MetricService metricService, TagObjectService tagObjectService, + DomainService domainService) { this.tagRepository = tagRepository; this.modelService = modelService; this.collectService = collectService; @@ -88,9 +88,13 @@ public class TagMetaServiceImpl implements TagMetaService { @Override public Integer createBatch(List tagReqList, User user) { - tagReqList.stream().forEach(tagReq -> { - create(tagReq, user); - }); + for (TagReq tagReq : tagReqList) { + try { + create(tagReq, user); + } catch (Exception e) { + log.warn("createBatch, e:{}", e); + } + } return tagReqList.size(); } @@ -101,8 +105,14 @@ public class TagMetaServiceImpl implements TagMetaService { } @Override - public Boolean deleteBatch(TagDeleteReq tagDeleteReq, User user) { - tagRepository.deleteBatch(tagDeleteReq); + public Boolean deleteBatch(List tagDeleteReqList, User user) { + for (TagDeleteReq tagDeleteReq : tagDeleteReqList) { + try { + tagRepository.deleteBatch(tagDeleteReq); + } catch (Exception e) { + log.warn("createBatch, e:{}", e); + } + } return true; } @@ -168,7 +178,7 @@ public class TagMetaServiceImpl implements TagMetaService { } tagFilter.setModelIds(modelIds); PageInfo tagDOPageInfo = PageHelper.startPage(tagMarketPageReq.getCurrent(), - tagMarketPageReq.getPageSize()) + tagMarketPageReq.getPageSize()) .doSelectPageInfo(() -> getTags(tagFilter)); List tagRespList = tagDOPageInfo.getList(); @@ -366,6 +376,7 @@ public class TagMetaServiceImpl implements TagMetaService { return tagDO; } + @Override public List getTagItems(User user, List itemIds, TagDefineType tagDefineType) { TagFilter tagFilter = new TagFilter(); tagFilter.setTagDefineType(tagDefineType); 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 e9a7d67b7..8e7579b5e 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 @@ -14,6 +14,7 @@ import org.junit.Before; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -50,7 +51,9 @@ public class TagTest extends BaseTest { TagDeleteReq tagDeleteReq = new TagDeleteReq(); tagDeleteReq.setTagDefineType(TagDefineType.DIMENSION); tagDeleteReq.setItemIds(Arrays.asList(1L, 4L, 5L)); - tagMetaService.deleteBatch(tagDeleteReq, user); + List tagDeleteReqList = new ArrayList<>(); + tagDeleteReqList.add(tagDeleteReq); + tagMetaService.deleteBatch(tagDeleteReqList, user); } @Test @@ -67,7 +70,9 @@ public class TagTest extends BaseTest { TagDeleteReq tagDeleteReq = new TagDeleteReq(); tagDeleteReq.setTagDefineType(TagDefineType.DIMENSION); tagDeleteReq.setItemIds(Arrays.asList(4L, 5L)); - tagMetaService.deleteBatch(tagDeleteReq, user); + List tagDeleteReqList = new ArrayList<>(); + tagDeleteReqList.add(tagDeleteReq); + tagMetaService.deleteBatch(tagDeleteReqList, user); List tags1 = tagMetaService.getTags(tagFilter); Assert.assertEquals(0, tags1.size()); } @@ -89,7 +94,9 @@ public class TagTest extends BaseTest { TagDeleteReq tagDeleteReq = new TagDeleteReq(); tagDeleteReq.setTagDefineType(TagDefineType.DIMENSION); tagDeleteReq.setItemIds(Arrays.asList(1L, 4L, 5L)); - tagMetaService.deleteBatch(tagDeleteReq, user); + List tagDeleteReqList = new ArrayList<>(); + tagDeleteReqList.add(tagDeleteReq); + tagMetaService.deleteBatch(tagDeleteReqList, user); } } \ No newline at end of file