TASK: library分类;

This commit is contained in:
shahaibo
2023-11-07 15:12:55 +08:00
parent c8fe8c27f8
commit 269b6fa5fb
5 changed files with 47 additions and 2 deletions

View File

@@ -27,4 +27,6 @@ public interface ClassificationService {
List<ClassificationVO> queryClassification(ClassificationDTO classificationDTO);
List<ClassificationVO> getClassificationVOList(List<Classification> classificationList);
Boolean relationLibrary(ClassificationDTO classificationDTO);
}

View File

@@ -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<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.setUserId();
classificationRelLibraryMapper.insert(classificationRelLibrary);
}
}
return Boolean.TRUE;
}
private List<ClassificationVO> recursionClassificationVO(ClassificationVO classificationVO) {
QueryWrapper<Classification> qw = new QueryWrapper<>();
qw.lambda().eq(Classification::getParentId, classificationVO.getId());