TASK:公共标签;
This commit is contained in:
@@ -33,4 +33,8 @@ public interface ClassificationService {
|
||||
List<Long> getLibraryIdListByClassificationId(Long classificationId);
|
||||
|
||||
List<Long> getRelClassificationIdList(ClassificationDTO classificationDTO);
|
||||
|
||||
List<Long> getRelPublicClassificationIdList(ClassificationDTO classificationDTO);
|
||||
|
||||
Boolean editRelPublicClassificationIdList(ClassificationDTO classificationDTO);
|
||||
}
|
||||
|
||||
@@ -191,6 +191,62 @@ public class ClassificationServiceImpl implements ClassificationService {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Long> getRelPublicClassificationIdList(ClassificationDTO classificationDTO) {
|
||||
List<Long> libraryIdList = classificationDTO.getLibraryIdList();
|
||||
if (CollectionUtil.isEmpty(libraryIdList)) {
|
||||
throw new BusinessException("libraryIdList.cannot.be.empty");
|
||||
}
|
||||
List<Long> classificationIdList = new ArrayList<>();
|
||||
// 遍历获取library关联的公共标签,返回给前端
|
||||
for (int i = 0; i < libraryIdList.size(); i++) {
|
||||
QueryWrapper<ClassificationRelLibrary> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryIdList.get(i));
|
||||
List<Long> collect = classificationRelLibraryMapper.selectList(qw)
|
||||
.stream()
|
||||
.map(ClassificationRelLibrary::getClassificationId)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
if (i == 0) {
|
||||
classificationIdList.addAll(collect);
|
||||
}else {
|
||||
classificationIdList.retainAll(collect);
|
||||
}
|
||||
}
|
||||
return classificationIdList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean editRelPublicClassificationIdList(ClassificationDTO classificationDTO) {
|
||||
List<Long> relPublicClassificationIdList = getRelPublicClassificationIdList(classificationDTO);
|
||||
List<Long> deleteIdList = relPublicClassificationIdList.stream()
|
||||
.filter(item -> !classificationDTO.getClassificationIdList().contains(item))
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(deleteIdList)) {
|
||||
for (Long libraryId : classificationDTO.getLibraryIdList()) {
|
||||
QueryWrapper<ClassificationRelLibrary> qw = new QueryWrapper<>();
|
||||
qw.lambda().eq(ClassificationRelLibrary::getLibraryId, libraryId);
|
||||
qw.lambda().in(ClassificationRelLibrary::getClassificationId, deleteIdList);
|
||||
classificationRelLibraryMapper.delete(qw);
|
||||
}
|
||||
}
|
||||
List<Long> addIdList = classificationDTO.getClassificationIdList().stream()
|
||||
.filter(item -> !relPublicClassificationIdList.contains(item))
|
||||
.collect(Collectors.toList());
|
||||
if (CollectionUtil.isNotEmpty(addIdList)) {
|
||||
for (Long libraryId : classificationDTO.getLibraryIdList()) {
|
||||
for (Long classificationId : addIdList) {
|
||||
ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary();
|
||||
classificationRelLibrary.setClassificationId(classificationId);
|
||||
classificationRelLibrary.setLibraryId(libraryId);
|
||||
classificationRelLibrary.setCreateTime(LocalDateTime.now());
|
||||
classificationRelLibraryMapper.insert(classificationRelLibrary);
|
||||
}
|
||||
}
|
||||
}
|
||||
return Boolean.TRUE;
|
||||
}
|
||||
|
||||
private List<Long> getTreeClassificationIdListByClassificationId(Long classificationId) {
|
||||
List<Long> classificationIdList = new ArrayList<>();
|
||||
classificationIdList.add(classificationId);
|
||||
|
||||
Reference in New Issue
Block a user