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

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