| | |
| | | return sysArea; |
| | | } |
| | | |
| | | /** |
| | | * 查询除了乡镇以外的地区 |
| | | * |
| | | * @return |
| | | */ |
| | | @Override |
| | | public List<SysArea> queryCity() { |
| | | //取出所有地区 |
| | | List<SysArea> sysAreas = sysAreaMapper.selectList(null); |
| | | //创建Map key为地区码 value为地区对象 供组装使用 |
| | | Map<Integer, SysArea> areaMap = new HashMap<>(); |
| | | for (SysArea sysArea : sysAreas) { |
| | | areaMap.put(sysArea.getAreaCode(), sysArea); |
| | | sysArea.setChildren(new ArrayList<>());//初始化children集合 |
| | | } |
| | | //遍历所有城市,判断是否有父城市,如果有则添加到父城市中。 |
| | | int i=0; |
| | | for (SysArea sysArea : sysAreas) { |
| | | Integer parentCode = sysArea.getParentCode(); |
| | | String s = sysArea.getAreaCode().toString(); |
| | | if (!parentCode.equals(0)) { |
| | | if (s.length()>7){ |
| | | continue; |
| | | } |
| | | SysArea parentArea = areaMap.get(parentCode); |
| | | if (ObjectUtils.isEmpty(parentArea)){ |
| | | continue; |
| | | } |
| | | List<SysArea> children = parentArea.getChildren(); |
| | | children.add(sysArea); |
| | | // parentArea.getChildren().add(sysArea); |
| | | } |
| | | } |
| | | //移除集合中非父顶级城市 |
| | | sysAreas.removeIf(new Predicate<SysArea>() { |
| | | @Override |
| | | public boolean test(SysArea sysArea) { |
| | | if (sysArea.getParentCode().equals(0)) |
| | | return false; |
| | | return true; |
| | | } |
| | | }); |
| | | return sysAreas; |
| | | } |
| | | |
| | | @Override |
| | | public List<SysArea> selectCode(Integer code) { |
| | | QueryWrapper<SysArea> wrapper = new QueryWrapper<>(); |
| | | wrapper.eq("parent_code",code); |
| | | List<SysArea> sysAreas = sysAreaMapper.selectList(wrapper); |
| | | return sysAreas; |
| | | |
| | | } |
| | | |
| | | |
| | | private List<SysArea> querySysAreaFromDB() { |
| | | //取出所有地区 |