@@ -191,6 +191,69 @@ 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 ) {
QueryWrapper < ClassificationRelLibrary > qw = new QueryWrapper < > ( ) ;
qw . lambda ( ) . eq ( ClassificationRelLibrary : : getLibraryId , libraryId ) ;
qw . lambda ( ) . eq ( ClassificationRelLibrary : : getClassificationId , classificationId ) ;
List < ClassificationRelLibrary > exist = classificationRelLibraryMapper . selectList ( qw ) ;
if ( CollectionUtil . isEmpty ( exist ) ) {
ClassificationRelLibrary classificationRelLibrary = new ClassificationRelLibrary ( ) ;
classificationRelLibrary . setClassificationId ( classificationId ) ;
classificationRelLibrary . setLibraryId ( libraryId ) ;
classificationRelLibrary . setCreateTime ( LocalDateTime . now ( ) ) ;
classificationRelLibrary . setIsDeleted ( 0 ) ;
classificationRelLibraryMapper . insert ( classificationRelLibrary ) ;
}
}
}
}
return Boolean . TRUE ;
}
private List < Long > getTreeClassificationIdListByClassificationId ( Long classificationId ) {
List < Long > classificationIdList = new ArrayList < > ( ) ;
classificationIdList . add ( classificationId ) ;