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

@@ -81,4 +81,28 @@ public class ClassificationController {
return Response.success(classificationService.getRelClassificationIdList(classificationDTO));
}
/**
* 多选 获取共有标签
* @param classificationDTO
* @return
*/
@PostMapping("/getRelPublicClassificationIdList")
@ApiOperationSupport(order = 5)
@ApiModelProperty(value = "获取关联公共分类IDList", notes = "传入ClassificationDTO")
public Response<List<Long>> getRelPublicClassificationIdList(@Valid @RequestBody ClassificationDTO classificationDTO) {
return Response.success(classificationService.getRelPublicClassificationIdList(classificationDTO));
}
/**
* 多选 编辑共有标签
* @param classificationDTO
* @return
*/
@PostMapping("/editRelPublicClassificationIdList")
@ApiOperationSupport(order = 5)
@ApiModelProperty(value = "编辑关联公共分类IDList", notes = "传入ClassificationDTO")
public Response<Boolean> editRelPublicClassificationIdList(@Valid @RequestBody ClassificationDTO classificationDTO) {
return Response.success(classificationService.editRelPublicClassificationIdList(classificationDTO));
}
}

View File

@@ -32,4 +32,6 @@ public class AccountLoginVO {
@ApiModelProperty("是否完成引导")
private Integer isBeginner;
// private Boolean willBeExpired;
}

View File

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

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