Browse Source

修复 因为老旧天气接口不能使用导致一张图获取大屏展示数据接口异常失败,更换新版本天气接口后正常。

zhaiyifei 1 năm trước cách đây
mục cha
commit
87da5dc628

+ 2 - 2
agmp_fms/trunk/agmp-fms/src/main/resources/application-agmp-fmsprod_hljfj.yml

@@ -200,7 +200,7 @@ xss:
   urlPatterns: /system/*,/tool/*
 
 network:
-  ipaddrLogin: http://111.43.116.162
+  ipaddrLogin: http://114.116.221.253
   ipaddrSso: http://localhost
   vueport: 7000
   ssoport: 9002
@@ -246,4 +246,4 @@ policy:
     ackEnabled: true
 
 openBigdata:
-  origin: http://192.168.1.221:52001
+  origin: http://0.0.0.0:52001

+ 7 - 28
agmp_framework/trunk/agmp-framework/src/main/java/com/yunfeiyun/agmp/common/utils/weather/WeatherReqVo.java

@@ -5,34 +5,13 @@ import lombok.Data;
 /**cityid、city和ip参数3选一提交,如果不传,默认返回当前ip城市天气,cityid优先级最高。*/
 @Data
 public class WeatherReqVo {
-    /**appid 默认69334222*/
-    private String appid = "69334222";
-    /**appsecret 默认2u4bHXHD*/
-    private String appsecret = "2u4bHXHD";
-    /**接口版本 默认V91*/
-    private String version = "v91";
-    /**国家统计局城市ID*/
-    private String adcode ;
     /**	城市ID*/
     private String cityid ;
-    /**城市名称*/
-    private String city;
-    /**所在省*/
-    private String province;
-    /**	IP地址*/
-    private String ip;
-    /**自定义字段参数*/
-    private String ext;
-    /**经度*/
-    private String lng;
-    /**	纬度*/
-    private String lat;
-    /**坐标体系*/
-    private String point;
-    /**	jsonp参数*/
-    private String callback;
-    /**跨域参数*/
-    private String vue;
-    /**是否转义中文*/
-    private String unescape;
+    /**只能为 ‘1’  或  ‘7’,1为当日天气,7为7日天气*/
+    private String day_type;
+    /**用户名*/
+    private String username;
+    /**密码*/
+    private String password;
+
 }

+ 23 - 8
agmp_framework/trunk/agmp-framework/src/main/java/com/yunfeiyun/agmp/common/utils/weather/WeatherUtil.java

@@ -1,10 +1,13 @@
 package com.yunfeiyun.agmp.common.utils.weather;
 
+import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONObject;
 import lombok.extern.slf4j.Slf4j;
 
 import java.io.BufferedReader;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.io.OutputStream;
 import java.lang.reflect.Field;
 import java.net.HttpURLConnection;
 import java.net.URL;
@@ -13,15 +16,21 @@ import java.nio.charset.StandardCharsets;
 @Slf4j
 public class WeatherUtil {
 
-    public static final String WEATHER_API = "https://v0.yiketianqi.com/api?";
+    public static final String WEATHER_API = "http://open.nyzhwlw.com:10001/yf_weather";
 
     public static String getWeather(WeatherReqVo weatherReqVo)  {
-        String path = appendRequestParam(weatherReqVo);
+
         HttpURLConnection conn;
         try {
-            URL url = new URL(path);
+            URL url = new URL(WEATHER_API);
             conn = (HttpURLConnection) url.openConnection();
-            conn.setRequestMethod("GET");
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("Content-Type", "application/json");
+            conn.setDoOutput(true);
+            OutputStream outputStream = conn.getOutputStream();
+            outputStream.write(JSON.toJSONBytes(weatherReqVo));
+            outputStream.flush();
+            outputStream.close();
         }catch (Exception e){
             log.error("请求构造失败",e);
             return null;
@@ -43,15 +52,21 @@ public class WeatherUtil {
     }
 
     public static String getWeatherNearlySevenDays(WeatherReqVo weatherReqVo)  {
-        return request(appendRequestParam(weatherReqVo));
+        return request(weatherReqVo);
     }
 
-    public static String request(String path)  {
+    public static String request(WeatherReqVo weatherReqVo)  {
         HttpURLConnection conn;
         try {
-            URL url = new URL(path);
+            URL url = new URL(WEATHER_API);
             conn = (HttpURLConnection) url.openConnection();
-            conn.setRequestMethod("GET");
+            conn.setRequestMethod("POST");
+            conn.setRequestProperty("Content-Type", "application/json");
+            conn.setDoOutput(true);
+            OutputStream outputStream = conn.getOutputStream();
+            outputStream.write(JSON.toJSONBytes(weatherReqVo));
+            outputStream.flush();
+            outputStream.close();
         }catch (Exception e){
             log.error("请求构造失败",e);
             return null;

+ 38 - 0
agmp_framework/trunk/agmp-framework/src/main/java/com/yunfeiyun/agmp/common/utils/weather_backup/WeatherReqVo.java

@@ -0,0 +1,38 @@
+package com.yunfeiyun.agmp.common.utils.weather_backup;
+
+import lombok.Data;
+
+/**cityid、city和ip参数3选一提交,如果不传,默认返回当前ip城市天气,cityid优先级最高。*/
+@Data
+public class WeatherReqVo {
+    /**appid 默认69334222*/
+    private String appid = "69334222";
+    /**appsecret 默认2u4bHXHD*/
+    private String appsecret = "2u4bHXHD";
+    /**接口版本 默认V91*/
+    private String version = "v91";
+    /**国家统计局城市ID*/
+    private String adcode ;
+    /**	城市ID*/
+    private String cityid ;
+    /**城市名称*/
+    private String city;
+    /**所在省*/
+    private String province;
+    /**	IP地址*/
+    private String ip;
+    /**自定义字段参数*/
+    private String ext;
+    /**经度*/
+    private String lng;
+    /**	纬度*/
+    private String lat;
+    /**坐标体系*/
+    private String point;
+    /**	jsonp参数*/
+    private String callback;
+    /**跨域参数*/
+    private String vue;
+    /**是否转义中文*/
+    private String unescape;
+}

+ 104 - 0
agmp_framework/trunk/agmp-framework/src/main/java/com/yunfeiyun/agmp/common/utils/weather_backup/WeatherUtil.java

@@ -0,0 +1,104 @@
+package com.yunfeiyun.agmp.common.utils.weather_backup;
+
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.lang.reflect.Field;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.nio.charset.StandardCharsets;
+
+@Slf4j
+public class WeatherUtil {
+
+    public static final String WEATHER_API = "https://v0.yiketianqi.com/api?";
+
+    public static String getWeather(WeatherReqVo weatherReqVo)  {
+        String path = appendRequestParam(weatherReqVo);
+        HttpURLConnection conn;
+        try {
+            URL url = new URL(path);
+            conn = (HttpURLConnection) url.openConnection();
+            conn.setRequestMethod("GET");
+        }catch (Exception e){
+            log.error("请求构造失败",e);
+            return null;
+        }
+        try(InputStream in = conn.getInputStream();
+            BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))){
+            StringBuilder result = new StringBuilder();
+            String line;
+            while ((line = reader.readLine()) != null) {
+                result.append(line);
+            }
+            return result.toString();
+        }catch (Exception e){
+            log.error("请求失败",e);
+            return null;
+        }finally {
+            conn.disconnect();
+        }
+    }
+
+    public static String getWeatherNearlySevenDays(WeatherReqVo weatherReqVo)  {
+        return request(appendRequestParam(weatherReqVo));
+    }
+
+    public static String request(String path)  {
+        HttpURLConnection conn;
+        try {
+            URL url = new URL(path);
+            conn = (HttpURLConnection) url.openConnection();
+            conn.setRequestMethod("GET");
+        }catch (Exception e){
+            log.error("请求构造失败",e);
+            return null;
+        }
+        try(InputStream in = conn.getInputStream();
+            BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8))){
+            StringBuilder result = new StringBuilder();
+            String line;
+            while ((line = reader.readLine()) != null) {
+                result.append(line);
+            }
+            return result.toString();
+        }catch (Exception e){
+            log.error("请求失败",e);
+            return null;
+        }finally {
+            conn.disconnect();
+        }
+    }
+
+    public static String appendRequestParam(Object... params){
+        StringBuilder requestParam = new StringBuilder();
+
+        for(Object o :params){
+            if(null == o){
+                continue;
+            }
+            Class<?> clazz = o.getClass();
+            Field[] fields = clazz.getDeclaredFields();
+            for (Field field : fields) {
+                try {
+                    field.setAccessible(true);
+                    String propertyName = field.getName();
+                    Object propertyValue = field.get(o);
+                    if(null !=  propertyValue){
+                        requestParam.append("&").append(propertyName).append("=").append(propertyValue);
+                    }
+
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+       ;
+        return WEATHER_API+ requestParam.substring(1);
+    }
+
+
+
+}