TASK: library关联分类;

This commit is contained in:
shahaibo
2023-11-13 14:21:28 +08:00
parent 6da1286e56
commit bcfcb5da12
2 changed files with 33 additions and 29 deletions

View File

@@ -15,7 +15,7 @@ public class ClassificationDTO extends Classification {
@ApiModelProperty("分类ID列表") @ApiModelProperty("分类ID列表")
private List<Long> classificationIdList; private List<Long> classificationIdList;
@ApiModelProperty("LibraryID") @ApiModelProperty("LibraryID")
private Long libraryId; private List<Long> libraryIdList;
@ApiModelProperty("分类删除校验1校验0不校验") @ApiModelProperty("分类删除校验1校验0不校验")
private Integer deleteConfirm; private Integer deleteConfirm;
} }

View File

@@ -125,35 +125,39 @@ public class ClassificationServiceImpl implements ClassificationService {
@Override @Override
public Boolean relationLibrary(ClassificationDTO classificationDTO) { public Boolean relationLibrary(ClassificationDTO classificationDTO) {
QueryWrapper<ClassificationRelLibrary> qw = new QueryWrapper<>(); if (CollectionUtil.isNotEmpty(classificationDTO.getLibraryIdList())) {
qw.lambda().eq(ClassificationRelLibrary::getLibraryId, classificationDTO.getLibraryId()); for (Long libraryId : classificationDTO.getLibraryIdList()) {
List<ClassificationRelLibrary> classificationRelLibraryList = classificationRelLibraryMapper.selectList(qw); QueryWrapper<ClassificationRelLibrary> qw = new QueryWrapper<>();
List<Long> unchangedIds = classificationRelLibraryList.stream() qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryId);
.map(ClassificationRelLibrary::getClassificationId) List<ClassificationRelLibrary> classificationRelLibraryList = classificationRelLibraryMapper.selectList(qw);
.filter(classificationId -> classificationDTO.getClassificationIdList().contains(classificationId)) List<Long> unchangedIds = classificationRelLibraryList.stream()
.collect(Collectors.toList()); .map(ClassificationRelLibrary::getClassificationId)
List<Long> deleteIds = classificationRelLibraryList.stream() .filter(classificationId -> classificationDTO.getClassificationIdList().contains(classificationId))
.map(ClassificationRelLibrary::getClassificationId) .collect(Collectors.toList());
.filter(classificationId -> !unchangedIds.contains(classificationId)) List<Long> deleteIds = classificationRelLibraryList.stream()
.collect(Collectors.toList()); .map(ClassificationRelLibrary::getClassificationId)
List<Long> addIds = classificationDTO.getClassificationIdList().stream() .filter(classificationId -> !unchangedIds.contains(classificationId))
.filter(classificationId -> !unchangedIds.contains(classificationId)) .collect(Collectors.toList());
.collect(Collectors.toList()); List<Long> addIds = classificationDTO.getClassificationIdList().stream()
if (CollectionUtil.isNotEmpty(deleteIds)) { .filter(classificationId -> !unchangedIds.contains(classificationId))
QueryWrapper<ClassificationRelLibrary> deleteQw = new QueryWrapper<>(); .collect(Collectors.toList());
deleteQw.lambda().eq(ClassificationRelLibrary::getLibraryId, classificationDTO.getLibraryId()); if (CollectionUtil.isNotEmpty(deleteIds)) {
deleteQw.lambda().in(ClassificationRelLibrary::getClassificationId, deleteIds); QueryWrapper<ClassificationRelLibrary> deleteQw = new QueryWrapper<>();
classificationRelLibraryMapper.delete(deleteQw); deleteQw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryId);
} deleteQw.lambda().in(ClassificationRelLibrary::getClassificationId, deleteIds);
if (CollectionUtil.isNotEmpty(addIds)) { classificationRelLibraryMapper.delete(deleteQw);
for (Long addId : addIds) { }
ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary(); if (CollectionUtil.isNotEmpty(addIds)) {
classificationRelLibrary.setClassificationId(addId); for (Long addId : addIds) {
classificationRelLibrary.setLibraryId(classificationDTO.getLibraryId()); ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary();
classificationRelLibrary.setCreateTime(LocalDateTime.now()); classificationRelLibrary.setClassificationId(addId);
classificationRelLibrary.setIsDeleted(0); classificationRelLibrary.setLibraryId(libraryId);
classificationRelLibrary.setCreateTime(LocalDateTime.now());
classificationRelLibrary.setIsDeleted(0);
// classificationRelLibrary.setUserId(); // classificationRelLibrary.setUserId();
classificationRelLibraryMapper.insert(classificationRelLibrary); classificationRelLibraryMapper.insert(classificationRelLibrary);
}
}
} }
} }
return Boolean.TRUE; return Boolean.TRUE;