TASK: library分类;
This commit is contained in:
@@ -27,4 +27,6 @@ public interface ClassificationService {
|
||||
List<ClassificationVO> queryClassification(ClassificationDTO classificationDTO);
|
||||
|
||||
List<ClassificationVO> getClassificationVOList(List<Classification> classificationList);
|
||||
|
||||
Boolean relationLibrary(ClassificationDTO classificationDTO);
|
||||
}
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user