fix:修改标签批量发布的入参

This commit is contained in:
s2042968 2025-03-06 13:50:06 +08:00
parent 2924849d2f
commit 8e3f27eeaf
2 changed files with 36 additions and 22 deletions

View File

@ -47,9 +47,9 @@ public class EdTagLibraryController {
}
// 发布标签
@GetMapping("/batchPublish")
@PostMapping("/batchPublish")
@UserOperation(value="发布了标签组", modelName = UserOperationModuleEnum.TAG)
public ElectromagneticResult<?> publishTag(@RequestParam List<String> tagIds) {
public ElectromagneticResult<?> publishTag(@RequestBody List<String> tagIds) {
return ElectromagneticResultUtil.success(edTagLibraryService.batchPublishTagGroups(tagIds));
}

View File

@ -36,13 +36,9 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
@Override
public Boolean createTagGroup(String tagName, String createdBy) {
Assert.isTrue(!checkNameExist(tagName),StrFormatter.format("该标签组 {} 已存在",tagName));
// 查询当前最大排序值
Integer maxOrder = this.getBaseMapper()
.selectMaxOrder(TagTypeEnum.GROUP.getCode(), "0");
if (maxOrder == null) {
maxOrder = 0;
}
Integer maxOrder = selectMaxOrder(TagTypeEnum.GROUP.getCode(), "0");
EdTagLibrary tagGroup = new EdTagLibrary();
tagGroup.setTagId(IdWorker.getSnowFlakeIdString());
tagGroup.setParentId("0"); // 标签组父节点为"0"
@ -66,14 +62,9 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
*/
@Override
public Boolean createTag(String parentId, String tagName, String createdBy) {
Assert.isTrue(!checkNameExist(tagName),StrFormatter.format("该标签名 {} 已存在",tagName));
// 查询当前组内最大排序值
Integer maxOrder = this.getBaseMapper()
.selectMaxOrder(TagTypeEnum.TAG.getCode(), parentId);
if (maxOrder == null) {
maxOrder = 0;
}
Integer maxOrder = selectMaxOrder(TagTypeEnum.TAG.getCode(), parentId);
EdTagLibrary tag = new EdTagLibrary();
tag.setTagId(IdWorker.getSnowFlakeIdString());
tag.setParentId(parentId);
@ -108,13 +99,14 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
EdTagLibrary newTag = this.getOne(new LambdaQueryWrapper<EdTagLibrary>()
.eq(EdTagLibrary::getTagId, newTagId));
Assert.notNull(tag,"标签不存在");
Assert.notNull(newTag, "无法将标签移动到此位置");
Assert.notNull(tag,"标签/标签组不存在");
Assert.notNull(newTag, "无法将标签/标签组移动到此位置");
// 若标签挪到空标签组下newTagId为新标签组Id
if (!tag.getType().equals(newTag.getType())) {
if (tag.getType().equals(TagTypeEnum.TAG.getCode())) {
newParentId = newTagId;
newOrderBy = 1;
} else {
throw new BizException("标签组无法移动到标签下");
}
@ -127,11 +119,11 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
if (isMoveToNewGroup) {
// 旧组重新排序
int max = this.baseMapper.selectMaxOrder(tag.getType(),oldParentId)+1;
int max = selectMaxOrder(tag.getType(),oldParentId)+1;
reorderTagGroup(oldParentId, oldOrderBy, max);
// 新组重新排序
max = this.baseMapper.selectMaxOrder(tag.getType(), newParentId)+1;
max = selectMaxOrder(tag.getType(), newParentId)+1;
reorderTagGroup(newParentId, max, newOrderBy);
} else {
// 仅更新同组内的排序
@ -235,6 +227,7 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
*/
@Override
public Boolean updateTagInfo(String tagId, String tagName, String updatedBy) {
Assert.isTrue(!checkNameExist(tagName), StrFormatter.format("该标签/标签组名 {} 已存在" , tagName));
LambdaUpdateWrapper<EdTagLibrary> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(EdTagLibrary::getTagId, tagId)
.set(EdTagLibrary::getTagName, tagName)
@ -329,5 +322,26 @@ public class EdTagLibraryServiceImpl extends ServiceImpl<EdTagLibraryMapper, EdT
return info;
}).collect(Collectors.toList());
}
/**
* 校验名字是否重复
* @param tagName
* @return
*/
private boolean checkNameExist(String tagName) {
LambdaQueryWrapper<EdTagLibrary> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(EdTagLibrary::getTagName, tagName);
return this.count(queryWrapper) > 0;
}
/**
* 计算顺序
* @return maxOrder
*/
private int selectMaxOrder(int typeCode, String parentId) {
// 查询当前最大排序值
int maxOrder = Optional.ofNullable(this.getBaseMapper().selectMaxOrder(typeCode, parentId)).orElse(0);
return maxOrder;
}
}