@SuppressWarnings("unchecked") @Override public Map<String, Object> getProvinceList() throws ApiRemoteCallFailedException { logger.info("进入调用API查询省信息"); ApiRequest request = new ApiRequest(); request.setUrl(ApiConstant.API_URL_AREA_GET_PROVINCE_LIST); logger.info("Request Query String: {}", request.toQueryString()); ApiResponse response = apiRequestService.request(request, ApiConstant.API_REQUEST_TIME_OUT_DEFAULT); if (response == null) { logger.error("API获取省信息失败"); throw new ApiRemoteCallFailedException("API获取省信息失败"); } if (response.getCode() != ApiConstant.RC_SUCCESS) { logger.error("调用API获取省信息请求出错, rc={}, message={}", response.getCode(), response.getMessage()); throw new ApiRemoteCallFailedException("调用API获取省信息请求出错"); } List<Province> list = Province.convertFromJSONObjectMap(JSONObject.fromObject(response.getData().get(0))); for (Province p : list) { Map<String, Object> map = getCityListByProvince(p.getProvinceId()); if (map != null && map.size() > 0) { List<City> cities = (List<City>) map.get(Global.API_MAP_KEY_LIST); p.setCities(cities); } } Map<String, Object> map = new HashMap<String, Object>(); map.put(Global.API_MAP_KEY_LIST, list); logger.info("结束调用API查询省信息"); return map; }
@Override public Map<String, Object> getCityListByProvince(Integer province) throws ApiRemoteCallFailedException { logger.info("进入调用API根据省信息查询市信息信息"); ApiRequest request = new ApiRequest(); request.setUrl(ApiConstant.API_URL_AREA_GET_CITY_LIST_BY_PROVINCE); if (province == null || province == 0) { logger.error("省ID为0"); throw new ApiRemoteCallFailedException("省ID为0"); } else { request.setParameter(Province.SET_PROVINCE_ID, province + ""); } logger.info("Request Query String: {}", request.toQueryString()); ApiResponse response = apiRequestService.request(request, ApiConstant.API_REQUEST_TIME_OUT_DEFAULT); if (response == null) { logger.error("API根据省信息查询市信息失败"); throw new ApiRemoteCallFailedException("API根据省信息查询市信息失败"); } if (response.getCode() != ApiConstant.RC_SUCCESS) { logger.error( "调用API根据省信息查询市信息请求出错, rc={}, message={}", response.getCode(), response.getMessage()); throw new ApiRemoteCallFailedException("调用API根据省信息查询市信息请求出错"); } List<City> list = City.convertFromJSONObjectMap(JSONObject.fromObject(response.getData().get(0))); Map<String, Object> map = new HashMap<String, Object>(); map.put(Global.API_MAP_KEY_LIST, list); logger.info("结束调用API根据省信息查询市信息"); return map; }