diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java index e9ae825..9170e6d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/controller/EdTagLibraryController.java @@ -69,5 +69,12 @@ public class EdTagLibraryController { String updatedBy = UserThreadLocal.getUserId(); return ElectromagneticResultUtil.success(edTagLibraryService.updateTagInfo(tagId, tagName, updatedBy)); } + + // 查看标签树 + @GetMapping ("/tree") + @UserOperation(value="查看了标签树", modelName = UserOperationModuleEnum.TAG) + public ElectromagneticResult listTagTree() { + return ElectromagneticResultUtil.success(edTagLibraryService.listTagTree()); + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java index 118b161..0ba6a46 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/EdTagLibraryService.java @@ -1,6 +1,7 @@ package com.electromagnetic.industry.software.manage.service; import com.baomidou.mybatisplus.extension.service.IService; +import com.electromagnetic.industry.software.common.pojo.TreeNode; import com.electromagnetic.industry.software.manage.pojo.models.EdTagLibrary; import com.electromagnetic.industry.software.manage.pojo.resp.TagListVO; @@ -56,4 +57,10 @@ public interface EdTagLibraryService extends IService { * @return 更新结果 */ Boolean updateTagInfo(String tagId, String tagName, String updatedBy); + + /** + * 构建标签树 + * @return + */ + List listTagTree(); } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java index 5a944bd..0249c6e 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/EdTagLibraryServiceImpl.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.electromagnetic.industry.software.common.enums.PublishEnum; import com.electromagnetic.industry.software.common.enums.TagTypeEnum; import com.electromagnetic.industry.software.common.exception.BizException; +import com.electromagnetic.industry.software.common.pojo.TreeNode; import com.electromagnetic.industry.software.common.util.IdWorker; import com.electromagnetic.industry.software.common.util.UserThreadLocal; import com.electromagnetic.industry.software.manage.mapper.EdTagLibraryMapper; @@ -146,24 +147,15 @@ public class EdTagLibraryServiceImpl extends ServiceImpl tagGroupIds) { Assert.notEmpty(tagGroupIds, "参数 tagGroupIds 不能为空"); - boolean groupUpdated = this.update(new LambdaUpdateWrapper() + this.update(new LambdaUpdateWrapper() .in(EdTagLibrary::getTagId, tagGroupIds) .eq(EdTagLibrary::getType, TagTypeEnum.GROUP.getCode()) // 只更新标签组 .set(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())); - if (!groupUpdated) { - throw new BizException("发布标签组失败"); - } - - boolean tagUpdated = this.update(new LambdaUpdateWrapper() + this.update(new LambdaUpdateWrapper() .in(EdTagLibrary::getParentId, tagGroupIds) // 父 ID 是传入的标签组 .eq(EdTagLibrary::getType, TagTypeEnum.TAG.getCode()) // 只更新标签 .set(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode())); - - if (!tagUpdated) { - throw new RuntimeException("发布标签失败"); - } - UserThreadLocal.setSuccessInfo("", "", "发布了标签"); return true; } @@ -264,5 +256,49 @@ public class EdTagLibraryServiceImpl extends ServiceImpl listTagTree() { + + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(EdTagLibrary::getIsPublished, PublishEnum.PUBLISHED.getCode()); + List tags = this.list(queryWrapper); + Map map = new HashMap<>(); + List list = new ArrayList<>(); + + for (EdTagLibrary tag : tags) { + TreeNode node = null; + if (tag.getType().equals(TagTypeEnum.GROUP.getCode())) { + node = TreeNode.builder() + .title(tag.getTagName()) + .key(tag.getTagId()) + .children(new ArrayList<>()) + .build(); + } else if(tag.getType().equals(TagTypeEnum.TAG.getCode())) { + node = TreeNode.builder() + .title(tag.getTagName()) + .key(tag.getTagId()) + .children(null) + .build(); + } + + map.put(tag.getTagId(), node); + } + + for (EdTagLibrary tag : tags) { + if (tag.getType().equals(TagTypeEnum.GROUP.getCode())) { + list.add(map.get(tag.getTagId())); + } else if (tag.getType().equals(TagTypeEnum.TAG.getCode())) { + TreeNode parentNode = map.get(tag.getParentId()); + if (parentNode != null) { + parentNode.getChildren().add(map.get(tag.getTagId())); + } + } + } + return list; + } } diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java index 2493dd3..9ec8e11 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/service/serviceimpl/UserServiceImpl.java @@ -361,16 +361,9 @@ public class UserServiceImpl implements UserService { @Override public ElectromagneticResult validateOldPassword(String userId, String oldInputPassword) { - // To lzh: UserId可以从UserThreadLocal中获取 - // To lzh:代码可以尽量简洁,避免过多的嵌套和逻辑判断,注释也不用写太多,简单的逻辑简单处理 - User user = userMapper.getSingleUser(userId); Assert.notNull(user, StrFormatter.format("用户不存在,ID为 {}", userId)); String decodeOldPwd = AESUtils.decrypt(oldInputPassword, UserConstants.SECRET_KEY); - -// if (!user.getUserPwd().equals(SignUtils.MD5(decodeOldPwd + user.getSalt()))) { -// return ElectromagneticResultUtil.fail("53107", "OLD_PASSWORD_INCORRECT"); -// } Assert.isTrue(matchPassword(user,decodeOldPwd), StrFormatter.format("旧密码错误,ID为 {}", userId)); return ElectromagneticResultUtil.success(true); } diff --git a/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java new file mode 100644 index 0000000..818ebef --- /dev/null +++ b/electromagnetic-common/src/main/java/com/electromagnetic/industry/software/common/pojo/TreeNode.java @@ -0,0 +1,21 @@ +package com.electromagnetic.industry.software.common.pojo; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Builder; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +@Builder +public class TreeNode { + + private String title; + + private String key; + + @JsonInclude(JsonInclude.Include.NON_NULL) + private List children; + +}