diff --git a/src/main/java/com/ai/da/controller/ClassificationController.java b/src/main/java/com/ai/da/controller/ClassificationController.java index 8c8f75ae..cbe95c14 100644 --- a/src/main/java/com/ai/da/controller/ClassificationController.java +++ b/src/main/java/com/ai/da/controller/ClassificationController.java @@ -81,4 +81,28 @@ public class ClassificationController { return Response.success(classificationService.getRelClassificationIdList(classificationDTO)); } + /** + * 多选 获取共有标签 + * @param classificationDTO + * @return + */ + @PostMapping("/getRelPublicClassificationIdList") + @ApiOperationSupport(order = 5) + @ApiModelProperty(value = "获取关联公共分类IDList", notes = "传入ClassificationDTO") + public Response> getRelPublicClassificationIdList(@Valid @RequestBody ClassificationDTO classificationDTO) { + return Response.success(classificationService.getRelPublicClassificationIdList(classificationDTO)); + } + + /** + * 多选 编辑共有标签 + * @param classificationDTO + * @return + */ + @PostMapping("/editRelPublicClassificationIdList") + @ApiOperationSupport(order = 5) + @ApiModelProperty(value = "编辑关联公共分类IDList", notes = "传入ClassificationDTO") + public Response editRelPublicClassificationIdList(@Valid @RequestBody ClassificationDTO classificationDTO) { + return Response.success(classificationService.editRelPublicClassificationIdList(classificationDTO)); + } + } diff --git a/src/main/java/com/ai/da/model/vo/AccountLoginVO.java b/src/main/java/com/ai/da/model/vo/AccountLoginVO.java index ff4c9690..9e84b052 100644 --- a/src/main/java/com/ai/da/model/vo/AccountLoginVO.java +++ b/src/main/java/com/ai/da/model/vo/AccountLoginVO.java @@ -32,4 +32,6 @@ public class AccountLoginVO { @ApiModelProperty("是否完成引导") private Integer isBeginner; +// private Boolean willBeExpired; + } diff --git a/src/main/java/com/ai/da/service/ClassificationService.java b/src/main/java/com/ai/da/service/ClassificationService.java index 5ab946c0..2cdbe5de 100644 --- a/src/main/java/com/ai/da/service/ClassificationService.java +++ b/src/main/java/com/ai/da/service/ClassificationService.java @@ -33,4 +33,8 @@ public interface ClassificationService { List getLibraryIdListByClassificationId(Long classificationId); List getRelClassificationIdList(ClassificationDTO classificationDTO); + + List getRelPublicClassificationIdList(ClassificationDTO classificationDTO); + + Boolean editRelPublicClassificationIdList(ClassificationDTO classificationDTO); } diff --git a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java index d2453d2d..f41938be 100644 --- a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java @@ -191,6 +191,62 @@ public class ClassificationServiceImpl implements ClassificationService { return new ArrayList<>(); } + @Override + public List getRelPublicClassificationIdList(ClassificationDTO classificationDTO) { + List libraryIdList = classificationDTO.getLibraryIdList(); + if (CollectionUtil.isEmpty(libraryIdList)) { + throw new BusinessException("libraryIdList.cannot.be.empty"); + } + List classificationIdList = new ArrayList<>(); + // 遍历获取library关联的公共标签,返回给前端 + for (int i = 0; i < libraryIdList.size(); i++) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryIdList.get(i)); + List collect = classificationRelLibraryMapper.selectList(qw) + .stream() + .map(ClassificationRelLibrary::getClassificationId) + .distinct() + .collect(Collectors.toList()); + if (i == 0) { + classificationIdList.addAll(collect); + }else { + classificationIdList.retainAll(collect); + } + } + return classificationIdList; + } + + @Override + public Boolean editRelPublicClassificationIdList(ClassificationDTO classificationDTO) { + List relPublicClassificationIdList = getRelPublicClassificationIdList(classificationDTO); + List deleteIdList = relPublicClassificationIdList.stream() + .filter(item -> !classificationDTO.getClassificationIdList().contains(item)) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(deleteIdList)) { + for (Long libraryId : classificationDTO.getLibraryIdList()) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryId); + qw.lambda().in(ClassificationRelLibrary::getClassificationId, deleteIdList); + classificationRelLibraryMapper.delete(qw); + } + } + List addIdList = classificationDTO.getClassificationIdList().stream() + .filter(item -> !relPublicClassificationIdList.contains(item)) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(addIdList)) { + for (Long libraryId : classificationDTO.getLibraryIdList()) { + for (Long classificationId : addIdList) { + ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary(); + classificationRelLibrary.setClassificationId(classificationId); + classificationRelLibrary.setLibraryId(libraryId); + classificationRelLibrary.setCreateTime(LocalDateTime.now()); + classificationRelLibraryMapper.insert(classificationRelLibrary); + } + } + } + return Boolean.TRUE; + } + private List getTreeClassificationIdListByClassificationId(Long classificationId) { List classificationIdList = new ArrayList<>(); classificationIdList.add(classificationId); diff --git a/src/main/resources/messages_en.properties b/src/main/resources/messages_en.properties index 893ffb07..3fa4295a 100644 --- a/src/main/resources/messages_en.properties +++ b/src/main/resources/messages_en.properties @@ -130,7 +130,8 @@ the.workspace.lastIndex.not.found=The workspace lastIndex not found. gender.cannot.be.empty=gender cannot be empty. image.synthesis.failed=image synthesis failed. priority.cannot.be.repeated=priority cannot be repeated. -model.not.found=model not found +model.not.found=model not found. +libraryIdList.cannot.be.empty=libraryIdList cannot be empty. # 可能会报异常 # Informative: