diff --git a/src/main/java/com/ai/da/controller/ClassificationController.java b/src/main/java/com/ai/da/controller/ClassificationController.java index 9e94b4b5..5cfb2678 100644 --- a/src/main/java/com/ai/da/controller/ClassificationController.java +++ b/src/main/java/com/ai/da/controller/ClassificationController.java @@ -67,4 +67,11 @@ public class ClassificationController { return Response.success(classificationService.queryClassification(classificationDTO)); } + @PostMapping("/relationLibrary") + @ApiOperationSupport(order = 4) + @ApiModelProperty(value = "关联", notes = "传入ClassificationDTO") + public Response relationLibrary(@Valid @RequestBody ClassificationDTO classificationDTO) { + return Response.success(classificationService.relationLibrary(classificationDTO)); + } + } diff --git a/src/main/java/com/ai/da/mapper/entity/Classification.java b/src/main/java/com/ai/da/mapper/entity/Classification.java index 753c16f7..65a8c238 100644 --- a/src/main/java/com/ai/da/mapper/entity/Classification.java +++ b/src/main/java/com/ai/da/mapper/entity/Classification.java @@ -35,6 +35,6 @@ public class Classification implements Serializable { @ApiModelProperty(value = "更新时间") private LocalDateTime updateTime; @ApiModelProperty(value = "是否删除1:是0:否") - private Integer isDeleted; + private Integer isDeleted = 0; } diff --git a/src/main/java/com/ai/da/service/ClassificationService.java b/src/main/java/com/ai/da/service/ClassificationService.java index 5eab2895..f25f10ef 100644 --- a/src/main/java/com/ai/da/service/ClassificationService.java +++ b/src/main/java/com/ai/da/service/ClassificationService.java @@ -27,4 +27,6 @@ public interface ClassificationService { List queryClassification(ClassificationDTO classificationDTO); List getClassificationVOList(List classificationList); + + Boolean relationLibrary(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 ecf37cd2..f2cb2f83 100644 --- a/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java +++ b/src/main/java/com/ai/da/service/impl/ClassificationServiceImpl.java @@ -24,6 +24,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.ArrayList; import java.util.List; +import java.util.stream.Collectors; /** * @author SHAHAIBO @@ -121,6 +122,41 @@ public class ClassificationServiceImpl implements ClassificationService { return classificationVOS; } + @Override + public Boolean relationLibrary(ClassificationDTO classificationDTO) { + QueryWrapper qw = new QueryWrapper<>(); + qw.lambda().eq(ClassificationRelLibrary::getLibraryId, classificationDTO.getLibraryId()); + List classificationRelLibraryList = classificationRelLibraryMapper.selectList(qw); + List unchangedIds = classificationRelLibraryList.stream() + .map(ClassificationRelLibrary::getClassificationId) + .filter(classificationId -> classificationDTO.getClassificationIdList().contains(classificationId)) + .collect(Collectors.toList()); + List deleteIds = classificationRelLibraryList.stream() + .map(ClassificationRelLibrary::getClassificationId) + .filter(classificationId -> !unchangedIds.contains(classificationId)) + .collect(Collectors.toList()); + List addIds = classificationDTO.getClassificationIdList().stream() + .filter(classificationId -> !unchangedIds.contains(classificationId)) + .collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(deleteIds)) { + QueryWrapper deleteQw = new QueryWrapper<>(); + deleteQw.lambda().eq(ClassificationRelLibrary::getLibraryId, classificationDTO.getLibraryId()); + deleteQw.lambda().in(ClassificationRelLibrary::getClassificationId, deleteIds); + classificationRelLibraryMapper.delete(deleteQw); + } + if (CollectionUtil.isNotEmpty(addIds)) { + for (Long addId : addIds) { + ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary(); + classificationRelLibrary.setClassificationId(addId); + classificationRelLibrary.setLibraryId(classificationDTO.getLibraryId()); + classificationRelLibrary.setCreateTime(LocalDateTime.now()); +// classificationRelLibrary.setUserId(); + classificationRelLibraryMapper.insert(classificationRelLibrary); + } + } + return Boolean.TRUE; + } + private List recursionClassificationVO(ClassificationVO classificationVO) { QueryWrapper qw = new QueryWrapper<>(); qw.lambda().eq(Classification::getParentId, classificationVO.getId()); diff --git a/src/main/resources/application-test.properties b/src/main/resources/application-test.properties index 5d019e7b..49f7346c 100644 --- a/src/main/resources/application-test.properties +++ b/src/main/resources/application-test.properties @@ -19,7 +19,7 @@ spring.security.jwtTokenPrefix=Bearer- spring.security.jwtExpiration=8640000000 #spring security权限设置 认证了token还要认证权限 不然报错Full authentication is required to access this resource spring.security.ignorePaths=/,/favicon.ico,/doc.html,/webjars/**,/swagger-resources,/v2/api-docs,\ - /api/account/**,/api/element/**,/api/python/**,/api/design/**,/api/history/**,/api/library/**,/api/third/party/**,/api/generate/**,/api/workspace/** + /api/account/**,/api/element/**,/api/python/**,/api/design/**,/api/history/**,/api/library/**,/api/third/party/**,/api/generate/**,/api/workspace/**,/api/classification/** spring.security.authApi=/auth/login