From 75f0e4d106c02d5d56e2684e0868d21b83f5b3b0 Mon Sep 17 00:00:00 2001 From: LXW <1264174498@qq.com> Date: Sun, 29 Sep 2024 01:06:36 +0800 Subject: [PATCH] (improvement)(headless) Support batch delete term and query term #1408 (#1732) Co-authored-by: lxwcodemonkey --- .../headless/server/rest/TermController.java | 14 +++++++++++-- .../headless/server/service/TermService.java | 5 ++++- .../server/service/impl/TermServiceImpl.java | 21 ++++++++++++++++++- 3 files changed, 36 insertions(+), 4 deletions(-) diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TermController.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TermController.java index c5762799f..bee51079f 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TermController.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/rest/TermController.java @@ -1,5 +1,6 @@ package com.tencent.supersonic.headless.server.rest; +import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -37,13 +38,22 @@ public class TermController { } @GetMapping - public List getTerms(@RequestParam("domainId") Long domainId) { - return termService.getTerms(domainId); + public List getTerms(@RequestParam("domainId") Long domainId, + @RequestParam(name = "queryKey", required = false) String queryKey) { + return termService.getTerms(domainId, queryKey); } + @Deprecated @DeleteMapping("/{id}") public boolean delete(@PathVariable("id") Long id) { termService.delete(id); return true; } + + @PostMapping("/deleteBatch") + public boolean deleteBatch(@RequestBody MetaBatchReq metaBatchReq) { + termService.deleteBatch(metaBatchReq); + return true; + } + } diff --git a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TermService.java b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TermService.java index f073e3767..39d91ff78 100644 --- a/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TermService.java +++ b/headless/server/src/main/java/com/tencent/supersonic/headless/server/service/TermService.java @@ -1,6 +1,7 @@ package com.tencent.supersonic.headless.server.service; import com.tencent.supersonic.auth.api.authentication.pojo.User; +import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq; import com.tencent.supersonic.headless.api.pojo.request.TermReq; import com.tencent.supersonic.headless.api.pojo.response.TermResp; @@ -14,7 +15,9 @@ public interface TermService { void delete(Long id); - List getTerms(Long domainId); + void deleteBatch(MetaBatchReq metaBatchReq); + + List getTerms(Long domainId, String queryKey); Map> getTermSets(Set domainIds); } 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 9280c355d..c51d57d36 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 @@ -5,11 +5,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.common.util.BeanMapper; import com.tencent.supersonic.common.util.JsonUtil; +import com.tencent.supersonic.headless.api.pojo.request.MetaBatchReq; import com.tencent.supersonic.headless.api.pojo.request.TermReq; import com.tencent.supersonic.headless.api.pojo.response.TermResp; import com.tencent.supersonic.headless.server.persistence.dataobject.TermDO; import com.tencent.supersonic.headless.server.persistence.mapper.TermMapper; import com.tencent.supersonic.headless.server.service.TermService; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; @@ -42,9 +44,26 @@ public class TermServiceImpl extends ServiceImpl implements } @Override - public List getTerms(Long domainId) { + public void deleteBatch(MetaBatchReq metaBatchReq) { + if (CollectionUtils.isEmpty(metaBatchReq.getIds())) { + throw new RuntimeException("术语ID不可为空"); + } + removeBatchByIds(metaBatchReq.getIds()); + } + + @Override + public List getTerms(Long domainId, String queryKey) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(TermDO::getDomainId, domainId); + if (StringUtils.isNotBlank(queryKey)) { + queryWrapper.lambda().and(i -> + i.like(TermDO::getName, queryKey) + .or() + .like(TermDO::getDescription, queryKey) + .or() + .like(TermDO::getAlias, queryKey) + ); + } List termDOS = list(queryWrapper); return termDOS.stream().map(this::convert).collect(Collectors.toList()); }