Merge branch 'feature/REQ-1212' into feature/REQ-1102

This commit is contained in:
chenwenjian 2023-09-12 09:37:01 +08:00
commit c861688d5d
4 changed files with 25 additions and 26 deletions

View File

@ -1,8 +1,6 @@
package cn.axzo.tyr.client.feign; package cn.axzo.tyr.client.feign;
import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.common.annotation.EnumValidator;
import cn.axzo.tyr.client.model.DictTypeFiledEnum;
import cn.axzo.tyr.client.model.dict.request.*; import cn.axzo.tyr.client.model.dict.request.*;
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
@ -37,13 +35,11 @@ public interface SaasBasicDictApi {
/** /**
* 获取字典树需要单侧树时才传type * 获取字典树需要单侧树时才传type
* *
* @param type * @param req
* @return * @return
*/ */
@PostMapping("api/dict/node-tree") @PostMapping("api/dict/node-tree")
ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree( ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(@RequestBody @Validated BasicDictQueryReq req);
@EnumValidator(enumClass = DictTypeFiledEnum.class, message = "枚举类型错误")
DictTypeFiledEnum type);
/** /**
* 通过type和code获取字典节点详情 * 通过type和code获取字典节点详情

View File

@ -2,7 +2,6 @@ package cn.axzo.tyr.server.controller.dict;
import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.feign.SaasBasicDictApi; import cn.axzo.tyr.client.feign.SaasBasicDictApi;
import cn.axzo.tyr.client.model.DictTypeFiledEnum;
import cn.axzo.tyr.client.model.dict.request.*; import cn.axzo.tyr.client.model.dict.request.*;
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
@ -33,8 +32,8 @@ public class SaasBasicDictController implements SaasBasicDictApi {
} }
@Override @Override
public ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(DictTypeFiledEnum type) { public ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(BasicDictQueryReq req) {
return saasBasicDictService.getBasicDictNodeTree(type); return saasBasicDictService.getBasicDictNodeTree(req);
} }
@Override @Override

View File

@ -1,7 +1,6 @@
package cn.axzo.tyr.server.service; package cn.axzo.tyr.server.service;
import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.DictTypeFiledEnum;
import cn.axzo.tyr.client.model.dict.request.*; import cn.axzo.tyr.client.model.dict.request.*;
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
@ -18,7 +17,7 @@ import java.util.List;
public interface SaasBasicDictService { public interface SaasBasicDictService {
ApiResult<List<BasicDictNodeResp>> getBasicDictNodeList(BasicDictQueryReq req); ApiResult<List<BasicDictNodeResp>> getBasicDictNodeList(BasicDictQueryReq req);
ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(DictTypeFiledEnum type); ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(BasicDictQueryReq req);
ApiResult<BasicDictNodeResp> getById(Long id); ApiResult<BasicDictNodeResp> getById(Long id);
ApiResult<BasicDictNodeResp> getBasicDictNode(BasicDictNodeReq req); ApiResult<BasicDictNodeResp> getBasicDictNode(BasicDictNodeReq req);

View File

@ -3,7 +3,6 @@ package cn.axzo.tyr.server.service.impl;
import cn.axzo.basics.common.BeanMapper; import cn.axzo.basics.common.BeanMapper;
import cn.axzo.framework.domain.ServiceException; import cn.axzo.framework.domain.ServiceException;
import cn.axzo.framework.domain.web.result.ApiResult; import cn.axzo.framework.domain.web.result.ApiResult;
import cn.axzo.tyr.client.model.DictTypeFiledEnum;
import cn.axzo.tyr.client.model.dict.request.*; import cn.axzo.tyr.client.model.dict.request.*;
import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictNodeResp;
import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp; import cn.axzo.tyr.client.model.dict.response.BasicDictTreeResp;
@ -45,20 +44,13 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
/** /**
* 获取节点树 * 获取节点树
* *
* @param type * @param req
* @return * @return
*/ */
@Override @Override
public ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(DictTypeFiledEnum type) { public ApiResult<List<BasicDictTreeResp>> getBasicDictNodeTree(BasicDictQueryReq req) {
// 获取所有节点 // 获取所有节点
List<BasicDictNodeResp> basicDictNodeList = saasBasicDictDao.getBasicDictNodeList(null); List<BasicDictNodeResp> basicDictNodeList = saasBasicDictDao.getBasicDictNodeList(req);
// 单侧树
if (Objects.nonNull(type)) {
List<BasicDictNodeResp> unilateralTreeNodeList = basicDictNodeList.stream()
.filter(b -> b.getType().equals(type.getValue()) || b.getType().equals(DictTypeFiledEnum.WORKSPACE.getValue()))
.collect(Collectors.toList());
return ApiResult.ok(constructDictTree(unilateralTreeNodeList));
}
return ApiResult.ok(constructDictTree(basicDictNodeList)); return ApiResult.ok(constructDictTree(basicDictNodeList));
} }
@ -83,6 +75,18 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
root.add(treeNode); root.add(treeNode);
} }
}); });
// 若没有顶级节点即一级节点则需要查询一级节点
if (CollectionUtil.isEmpty(root)) {
List<Long> parentIds = nodeList.stream().map(BasicDictNodeResp::getParentId).distinct().collect(Collectors.toList());
List<SaasBasicDict> parentDicts = saasBasicDictDao.listByIds(parentIds);
parentDicts.forEach(s -> {
BasicDictTreeResp parentTreeNode = BeanMapper.copyBean(s, BasicDictTreeResp.class, (s1, b) -> b.setStatus(s1.getStatus() == 1));
root.add(parentTreeNode);
map.put(parentTreeNode.getId(), parentTreeNode);
});
}
map.values().forEach(treeNode -> { map.values().forEach(treeNode -> {
BasicDictTreeResp parent = map.get(treeNode.getParentId()); BasicDictTreeResp parent = map.get(treeNode.getParentId());
if (Objects.nonNull(parent)) { if (Objects.nonNull(parent)) {
@ -109,6 +113,7 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
/** /**
* 创建字典节点 * 创建字典节点
*
* @param req * @param req
* @return * @return
*/ */