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