地域调整

v1.4.1
Parker 5 years ago
parent 1ae0f06ddc
commit 2de1e96115

@ -20,6 +20,7 @@ import org.opsli.api.wrapper.system.area.SysAreaModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import javax.servlet.http.HttpServletRequest;
@ -61,6 +62,14 @@ public interface SysAreaRestApi {
@GetMapping("/findTree")
ResultVo<?> findTree( String parentId );
/**
*
* @param deep
* @return ResultVo
*/
@GetMapping("/findTreeAll")
ResultVo<?> findTreeAll(@RequestParam(name = "deep", defaultValue = "3", required = false) Integer deep);
/**
*
* @param model

@ -105,7 +105,7 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
QueryWrapper<SysArea> wrapper = queryBuilder.build();
wrapper.eq(HumpUtil.humpToUnderline(MyBatisConstants.FIELD_PARENT_ID), parentId);
// 获得用户 对应菜单
// 获得用户 对应地域
List<SysArea> dataList = IService.findList(wrapper);
//配置
@ -163,6 +163,77 @@ public class SysAreaRestController extends BaseRestController<SysArea, SysAreaMo
return ResultVo.success(treeNodes);
}
/**
*
*
* @param deep
*
*
* @return ResultVo
*/
@ApiOperation(value = "获取全量地域列表", notes = "获取全量地域列表")
@RequiresPermissions("system_area_select")
@Override
public ResultVo<?> findTreeAll(Integer deep) {
List<SysArea> dataList = IService.findList(new QueryWrapper<>());
//配置
TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
// 自定义属性名 都要默认值的
treeNodeConfig.setWeightKey("sortNo");
treeNodeConfig.setNameKey("areaName");
// 最大递归深度
treeNodeConfig.setDeep(deep);
List<Tree<String>> treeNodes = TreeUtil.build(dataList, "0", treeNodeConfig,
(treeNode, tree) -> {
String areaCode = treeNode.getAreaCode();
int sort = 0;
if(StringUtils.isNotEmpty(areaCode)){
try {
sort = Integer.parseInt(areaCode);
}catch (Exception ignored){}
}
tree.setId(treeNode.getId());
tree.setParentId(treeNode.getParentId());
tree.setWeight(sort);
tree.setName(treeNode.getAreaName());
// 扩展属性 ...
// 不是外链 则处理组件
tree.putExtra("areaCode", areaCode);
tree.putExtra("version", treeNode.getVersion());
});
Set<String> parentIds = Sets.newHashSet();
for (Tree<String> treeNode : treeNodes) {
parentIds.add(treeNode.getId());
}
// 数据排查是否存在下级
List<HasChildren> hasChildrenList = IService.hasChildren(parentIds);
if(CollUtil.isNotEmpty(hasChildrenList)){
Map<String, Boolean> tmp = Maps.newHashMap();
for (HasChildren hasChildren : hasChildrenList) {
if(hasChildren.getCount() != null && hasChildren.getCount() > 0){
tmp.put(hasChildren.getParentId(), true);
}
}
for (Tree<String> treeNode : treeNodes) {
Boolean tmpFlag = tmp.get(treeNode.getId());
if(tmpFlag != null && tmpFlag){
treeNode.putExtra("hasChildren", true);
}
}
}
return ResultVo.success(treeNodes);
}
/**
*
* @param model

Loading…
Cancel
Save