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

@@ -67,4 +67,11 @@ public class ClassificationController {
return Response.success(classificationService.queryClassification(classificationDTO));
}
@PostMapping("/relationLibrary")
@ApiOperationSupport(order = 4)
@ApiModelProperty(value = "关联", notes = "传入ClassificationDTO")
public Response<Boolean> relationLibrary(@Valid @RequestBody ClassificationDTO classificationDTO) {
return Response.success(classificationService.relationLibrary(classificationDTO));
}
}

View File

@@ -35,6 +35,6 @@ public class Classification implements Serializable {
@ApiModelProperty(value = "更新时间")
private LocalDateTime updateTime;
@ApiModelProperty(value = "是否删除1:是0:否")
private Integer isDeleted;
private Integer isDeleted = 0;
}

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