Merge branch 'feature/REQ-1212' into feature/REQ-1102
This commit is contained in:
commit
c861688d5d
@ -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获取字典节点详情
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
@ -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
|
||||||
*/
|
*/
|
||||||
@ -140,12 +145,12 @@ public class SaasBasicDictServiceImpl implements SaasBasicDictService {
|
|||||||
s.setWorkspaceType(parent.getWorkspaceType());
|
s.setWorkspaceType(parent.getWorkspaceType());
|
||||||
s.setType(b.getType().getValue());
|
s.setType(b.getType().getValue());
|
||||||
s.setUniqueCode(uniqueCode);
|
s.setUniqueCode(uniqueCode);
|
||||||
s.setLevel(parent.getLevel()+1);
|
s.setLevel(parent.getLevel() + 1);
|
||||||
s.setPath(String.join(",",parent.getPath(),uniqueCode));
|
s.setPath(String.join(",", parent.getPath(), uniqueCode));
|
||||||
});
|
});
|
||||||
try{
|
try {
|
||||||
boolean save = saasBasicDictDao.save(saasBasicDict);
|
boolean save = saasBasicDictDao.save(saasBasicDict);
|
||||||
}catch (MybatisPlusException e){
|
} catch (MybatisPlusException e) {
|
||||||
// if ()
|
// if ()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user