zoukankan      html  css  js  c++  java
  • 查询Json 层级对象

    @Autowired
    OrgSearchFeginClient orgSearchFeginClient;

    @Override
    public ResponseData orgSearchTree(Map map) {

    JSONObject json = null;
    List<Map> result = null;
    List<Map> level1 = null;
    List<Map> level2 = null;
    List<Map> level3 = null;
    ResponseData res = new ResponseData();
    try {
    //调用组织层级属性结构(博智接口)
    json = orgSearchFeginClient.orgSearchTree(new HashMap());
    result = (ArrayList)json.get("result");
    result = result.stream().collect(Collectors.toList());
    //获取前端选择组织代表类型参数
    String orgType = (String) map.get("orgType");
    //上级公司(金徽酒公司)
    if (orgType != null && orgType.equals("group")){
    List<CustomerTypeDTO> list = new ArrayList<>();
    for(int i = 0; i < result.size();i ++) {
    //调用方法
    CustomerTypeDTO customerTypeDTO = getLevel( result.get(i),null);
    list.add(customerTypeDTO);
    }
    return ResponseData.ok(list,"查询成功");
    }
    //事业部
    if (orgType != null && orgType.equals("company")){
    List<CustomerTypeDTO> list = new ArrayList<>();
    for(int i = 0 ; i < result.size();i++){
    level1 = (List<Map>)result.get(i).get("children");
    if (level1 != null && level1.size() > 0){
    for(int j = 0; j < level1.size(); j ++){
    //调用封装方法
    CustomerTypeDTO customerTypeDTO = getLevel(level1.get(j),null);
    list.add(customerTypeDTO);
    }
    }
    }
    return ResponseData.ok(list,"查询成功");
    }
    //大区
    if (orgType != null && orgType.equals("division")){
    List<CustomerTypeDTO> list = new ArrayList<>();
    for(int i = 0 ; i < result.size();i++){
    //事业部集合
    level1 = (List<Map>)result.get(i).get("children");
    if (level1 != null && level1.size() > 0) {
    for (int j = 0; j < level1.size(); j ++ ){
    //大区集合
    level2 = (List<Map>)level1.get(j).get("children");
    //获取二层级orgName
    String parentOrgName = (String) level1.get(j).get("orgName");
    if (level2 != null && level2.size() > 0) {
    for (int k = 0; k < level2.size(); k ++){
    //调用封装方法
    CustomerTypeDTO customerTypeDTO = getLevel(level2.get(k),parentOrgName);
    list.add(customerTypeDTO);
    }
    }
    }
    }
    }
    return ResponseData.ok(list,"查询成功");
    }
    //区域(经销商)
    if (orgType != null && orgType.equals("region")){
    List<CustomerTypeDTO> list = new ArrayList<>();
    //遍历上级公司
    for(int i = 0 ; i < result.size();i++){
    //事业部集合
    level1 = (List<Map>)result.get(i).get("children");
    if (level1 != null && level1.size() > 0) {
    for (int j = 0; j < level1.size(); j ++ ){
    //大区集合
    level2 = (List<Map>)level1.get(j).get("children");
    if (level2 != null && level2.size() > 0) {
    for (int k = 0; k < level2.size(); k ++){
    //区域集合
    level3 = (List<Map>)level2.get(k).get("children");
    if (level3 != null && level3.size() >0) {
    for (int l =0; l < level3.size();l++){
    //调用封装方法
    CustomerTypeDTO customerTypeDTO = getLevel(level3.get(l),null);
    list.add(customerTypeDTO);
    }
    }
    }
    }
    }
    }
    }
    return ResponseData.ok(list,"查询成功");
    }
    } catch (Exception e) {
    log.info("查询失败{}",e.getMessage());
    res = ResponseData.fail("查询失败");
    }
    return res;
    }

    /**
    * 封装调用方法
    * @param level1
    * @return
    */
    public static CustomerTypeDTO getLevel(Map level1,String parentOrgName){

    CustomerTypeDTO customerTypeDTO = new CustomerTypeDTO();
    String orgCode = (String) level1.get("orgCode");
    String orgName = (String) level1.get("orgName");
    String newOrgType = (String) level1.get("orgType");
    String orgTypeName = (String) level1.get("orgTypeName");
    String parentCode = (String) level1.get("parentCode");
    String orgDesc = (String) level1.get("orgDesc");
    Integer levelNum = (Integer) level1.get("levelNum");
    String ruleCode = (String) level1.get("ruleCode");
    if (level1.get("orgType").equals("division")){customerTypeDTO.setParentOrgName(parentOrgName);}
    customerTypeDTO.setOrgCode(orgCode);
    customerTypeDTO.setOrgName(orgName);
    customerTypeDTO.setOrgType(newOrgType);
    customerTypeDTO.setOrgTypeName(orgTypeName);
    customerTypeDTO.setOrgDesc(orgDesc);
    customerTypeDTO.setParentCode(parentCode);
    customerTypeDTO.setRuleCode(ruleCode);
    customerTypeDTO.setLevelNum(levelNum);
    return customerTypeDTO;
    }
  • 相关阅读:
    1.MySql安装
    struts文件上传、文件下载
    Java内存模型
    虚拟机类加载机制
    JAVA内存管理
    算法
    POI
    SSH项目(1)
    classpath路径和properties
    AngularJS路由实现单页面跳转
  • 原文地址:https://www.cnblogs.com/pxzbky/p/14897743.html
Copyright © 2011-2022 走看看