From e97c393e23f4c015a44b5fef5fd26ae288bc6c0f Mon Sep 17 00:00:00 2001 From: lizijie <lzjiiie@163.com> Date: Wed, 10 Jul 2019 11:31:35 +0800 Subject: [PATCH] 天气预报 --- src/main/java/com/moral/service/impl/WeatherServiceImpl.java | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 58 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java index 2b0b4ae..baf855b 100644 --- a/src/main/java/com/moral/service/impl/WeatherServiceImpl.java +++ b/src/main/java/com/moral/service/impl/WeatherServiceImpl.java @@ -1,5 +1,8 @@ package com.moral.service.impl; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -68,5 +71,60 @@ result.putAll((Map<? extends String, ? extends Object>) ((Map)map.get("data")).get("condition")); return result; } + + @Override + public Map<String, Object> get15DayWeatherDataByRegion(Map<String, Object> parameters) { + Object organizationId = parameters.get("organizationId"); + ValidateUtil.notNull(organizationId, "param.is.null"); + String areaName = "���������"; + String parentName = ""; + Organization organization = organizationService.getOrganizationById(Integer.valueOf(parameters.get("organizationId").toString())); + if(organization.getAreaNames()!=null){ + AreaNames areaNames = organization.getAreaNames(); + if (ObjectUtils.isEmpty(areaNames.getAreaName())) { + if (ObjectUtils.isEmpty(areaNames.getCityName())) { + areaName = areaNames.getProvinceName(); + } else { + areaName = areaNames.getCityName(); + } + } else { + areaName = areaNames.getAreaName(); + parentName = areaNames.getCityName(); + if ("���������".equals(areaName)) { + areaName = parentName; + } + } + } + List<Element> elements = Dom4jUtils.readDocument(); + String cityID = "1102"; + for (Element element : elements) { + String name = element.element("name").getText(); + if (areaName.equals(name)) { + cityID = element.element("Fid").getText(); + break; + } + if (name.endsWith(areaName)) { + if (name.startsWith(parentName)) { + cityID = element.element("Fid").getText(); + break; + } + } + } + RestTemplate restTemplate = new RestTemplate(); + Map<String, Object> map = restTemplate.getForObject("http://sapi.7drlb.com/api/mj?cityID={1}&apiKey=aqi", Map.class,cityID); + List<Map<String, Object>> result = new ArrayList<>(); + map = restTemplate.getForObject("http://sapi.7drlb.com/api/mj?cityID={1}&apiKey=forecast15days", Map.class,cityID); + result.addAll((Collection<? extends Map<String, Object>>) ((Map)map.get("data")).get("forecast")); + for (Map<String, Object> map2 : result) { + Map<String, Object> returnMap = new HashMap<>(); + String predictDate = map2.get("predictDate").toString(); + String time = parameters.get("time").toString(); + if (predictDate.equals(time)) { + returnMap = map2; + return returnMap; + } + } + return null; + } } -- Gitblit v1.8.0