字典更新修复

This commit is contained in:
chenwenjian 2023-09-13 14:01:31 +08:00
parent ab57db18a2
commit 4aa4b96914
2 changed files with 23 additions and 10 deletions

View File

@ -4,12 +4,12 @@ import cn.axzo.basics.common.BeanMapper;
import cn.axzo.basics.common.util.TreeUtil;
import cn.axzo.framework.domain.web.BizException;
import cn.axzo.framework.domain.web.code.BaseCode;
import cn.axzo.tyr.client.model.DictTypeFiledEnum;
import cn.axzo.tyr.client.model.DictWorkSpaceTypeEnum;
import cn.axzo.tyr.client.model.dict.request.BasicDictNodeReq;
import cn.axzo.tyr.client.model.dict.request.BasicDictQueryReq;
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
import cn.axzo.tyr.client.model.enums.DictTypeFiledEnum;
import cn.axzo.tyr.client.model.enums.DictWorkSpaceTypeEnum;
import cn.axzo.tyr.client.model.enums.FeatureType;
import cn.axzo.tyr.client.model.permission.PermissionPointDTO;
import cn.axzo.tyr.client.model.permission.PermissionPointListQueryRequest;
@ -94,8 +94,7 @@ public class PermissionPointServiceImpl implements PermissionPointService {
.collect(Collectors.groupingBy(PermissionPointTreeNode::getTerminal));
//构建workspace-terminal工作台层级
List<BasicDictTreeResp> dictList = saasBasicDictService.getBasicDictNodeTree(BasicDictQueryReq.builder()
.type(DictTypeFiledEnum.TERMINAL).build())
.getData();
.type(DictTypeFiledEnum.TERMINAL).build());
//遍历所有workspace和terminal-构建顶层两级
List<PermissionPointTreeNode> result = new ArrayList<>();
for (BasicDictTreeResp workspace : dictList) {

View File

@ -10,15 +10,13 @@ import cn.axzo.tyr.server.repository.entity.SaasBasicDict;
import cn.axzo.tyr.server.service.SaasBasicDictService;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.exceptions.MybatisPlusException;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -62,7 +60,7 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
*/
public List<BasicDictTreeResp> constructDictTree(List<BasicDictNodeResp> nodeList) {
if (CollectionUtil.isEmpty(nodeList)) {
return new ArrayList<>();
return Collections.emptyList();
}
ArrayList<BasicDictTreeResp> root = new ArrayList<>();
List<Long> parentIds = nodeList.stream().map(BasicDictNodeResp::getParentId).distinct().collect(Collectors.toList());
@ -78,7 +76,7 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
} else {
BasicDictTreeResp parent = nodeMap.get(basicDictTreeResp.getParentId());
if (Objects.isNull(parent.getChildren())) {
parent.setChildren(new ArrayList<>());
parent.setChildren(Collections.emptyList());
}
parent.getChildren().add(basicDictTreeResp);
}
@ -148,6 +146,22 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
@Override
public Boolean update(BasicDictUpdateReq req) {
BasicDictNodeResp currentNode = getById(req.getId());
if (Objects.isNull(currentNode)) {
throw new ServiceException("节点不存在");
}
// 获取同级节点用于校验同级节点name唯一性
List<SaasBasicDict> brotherNodes = saasBasicDictDao.list(new LambdaQueryWrapper<SaasBasicDict>()
.eq(SaasBasicDict::getParentId, currentNode.getParentId())
.eq(SaasBasicDict::getType, currentNode.getType()));
brotherNodes.forEach(n -> {
if (n.getName().equals(req.getName())) {
throw new ServiceException("该节点下已存在名称为" + req.getName() + "的节点");
}
});
return saasBasicDictDao.update(req);
}