TASK:公共标签;

This commit is contained in:
shahaibo
2024-01-04 13:57:17 +08:00
parent fc4a59d41a
commit eafa6daf5b
5 changed files with 88 additions and 1 deletions

View File

@@ -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);