1 /**
2 * 省市县级联json数据3 *4 *@return
5 */
6 @LogAndNotice("省市县级联json数据")7 public List>listArea() {8 List> resultFromCache = (List>) redisCacheService.9 getFromCache(BxqkTeachingConstant.PARAM_CACHE_PROVINCES);10 if(CollectionUtils.isNotEmpty(resultFromCache)) {11 returnresultFromCache;12 }13 List> result = new ArrayList<>();14 List> allList = this.myGeneralDao.getMapBySQL(15 " SELECT id value, name label, fk_parent_id parent, type FROM bxqk_pe_area " +
16 " ORDER BY CONVERT (NAME USING gbk) ASC ");17 if(CollectionUtils.isNotEmpty(allList)) {18 List> provinceList = newArrayList();19 List> cityList = newArrayList();20 List> countyList = newArrayList();21 allList.forEach(e ->{22 Map map = new HashMap<>(16);23 if(String.valueOf(e.get(BxqkTeachingConstant.PARAM_ADDRESS_TYPE))24 .equals(BxqkTeachingConstant.PARAM_PROVINCE_TYPE_CODE)) {25 provinceList.add(e);26 } else if(String.valueOf(e.get(BxqkTeachingConstant.PARAM_ADDRESS_TYPE))27 .equals(BxqkTeachingConstant.PARAM_CITY_TYPE_CODE)) {28 cityList.add(e);29 } else if(String.valueOf(e.get(BxqkTeachingConstant.PARAM_ADDRESS_TYPE))30 .equals(BxqkTeachingConstant.PARAM_COUNTY_TYPE_CODE)) {31 countyList.add(e);32 }33 });34 provinceList.forEach(e ->{35 Map provinceMap = new LinkedHashMap<>();36 provinceMap.put(BxqkTeachingConstant.PARAM_ADDRESS_VALUE,37 e.get(BxqkTeachingConstant.PARAM_ADDRESS_VALUE) + "," +e.get(BxqkTeachingConstant.PARAM_ADDRESS_TYPE));38 provinceMap.put(BxqkTeachingConstant.PARAM_ADDRESS_LABEL, e.get(BxqkTeachingConstant.PARAM_ADDRESS_LABEL));39
40 List> secondList = new ArrayList<>();41 cityList.forEach(c ->{42 if(String.valueOf(e.get(BxqkTeachingConstant.PARAM_ADDRESS_VALUE)).43 equals(String.valueOf(c.get(BxqkTeachingConstant.PARAM_ADDRESS_PARENT)))) {44 Map cityMap = new LinkedHashMap<>();45 cityMap.put(BxqkTeachingConstant.PARAM_ADDRESS_VALUE,46 c.get(BxqkTeachingConstant.PARAM_ADDRESS_VALUE) + "," +c.get(BxqkTeachingConstant.PARAM_ADDRESS_TYPE));47 cityMap.put(BxqkTeachingConstant.PARAM_ADDRESS_LABEL, c.get(BxqkTeachingConstant.PARAM_ADDRESS_LABEL));48
49 List> levelThreeList = new ArrayList<>();50 countyList.forEach(t ->{51 Map levelThreeMap = new LinkedHashMap<>();52 if(String.valueOf(c.get(BxqkTeachingConstant.PARAM_ADDRESS_VALUE)).53 equals(String.valueOf(t.get(BxqkTeachingConstant.PARAM_ADDRESS_PARENT)))) {54 levelThreeMap.put(BxqkTeachingConstant.PARAM_ADDRESS_VALUE,55 t.get(BxqkTeachingConstant.PARAM_ADDRESS_VALUE) + "," +t.get(BxqkTeachingConstant.PARAM_ADDRESS_TYPE));56 levelThreeMap.put(BxqkTeachingConstant.PARAM_ADDRESS_LABEL, t.get(BxqkTeachingConstant.PARAM_ADDRESS_LABEL));57 levelThreeList.add(levelThreeMap);58 }59 });60 if(CollectionUtils.isNotEmpty(levelThreeList)) {61 cityMap.put(BxqkTeachingConstant.PARAM_ADDRESS_CHILDREN, levelThreeList);62 }63 secondList.add(cityMap);64 }65 });66 provinceMap.put(BxqkTeachingConstant.PARAM_ADDRESS_CHILDREN, secondList);67 result.add(provinceMap);68 });69 redisCacheService.putToCache(BxqkTeachingConstant.PARAM_CACHE_PROVINCES, result);70 returnresult;71 } else{72 throw newParameterIllegalException(CommonConstant.PARAM_ERROR);73 }74 }