完成基本功能!
This commit is contained in:
		@@ -7,10 +7,6 @@
 | 
			
		||||
        {
 | 
			
		||||
            "city_name": "厦门",
 | 
			
		||||
            "city_code": "101230201"
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
            "city_name": "东山",
 | 
			
		||||
            "city_code": "101230608"
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "notify_stuffs": [
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-04-22 10:53:49
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2022-04-22 16:18:48
 | 
			
		||||
 * @LastEditTime: 2022-04-23 23:22:57
 | 
			
		||||
 * @FilePath: \DisasterWarning\src\main\java\AppMain.java
 | 
			
		||||
 * @Description: 和风天气预警推送厦门太保公众号主程序!
 | 
			
		||||
 * 
 | 
			
		||||
@@ -12,6 +12,7 @@ import com.cpic.xim.config.City;
 | 
			
		||||
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
			
		||||
import com.cpic.xim.notify.disaster.WeatherDisasterWarningGrabber;
 | 
			
		||||
import com.cpic.xim.config.WeatherDisasterNotifyConfig;
 | 
			
		||||
import com.cpic.xim.wechat.officalAccount.sendMessage;
 | 
			
		||||
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
@@ -57,6 +58,9 @@ public class AppMain
 | 
			
		||||
                {
 | 
			
		||||
                    continue;
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(),
 | 
			
		||||
                        warning );
 | 
			
		||||
            }
 | 
			
		||||
            catch (IOException error)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,22 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-04-22 17:33:30
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2022-04-23 23:50:45
 | 
			
		||||
 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\CpicxmStuff.java
 | 
			
		||||
 * @Description: 产险厦门分公司人员信息
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package com.cpic.xim.config;
 | 
			
		||||
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
public class CpicxmStuff
 | 
			
		||||
{
 | 
			
		||||
    public CpicxmStuff() {};
 | 
			
		||||
    public CpicxmStuff()
 | 
			
		||||
    {};
 | 
			
		||||
 | 
			
		||||
    public String getStuffName()
 | 
			
		||||
    {
 | 
			
		||||
@@ -29,11 +41,11 @@ public class CpicxmStuff
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean equals( Object o )
 | 
			
		||||
    {
 | 
			
		||||
        if ( this == o )
 | 
			
		||||
        if ( this == o)
 | 
			
		||||
        {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        if ( !( o instanceof CpicxmStuff ) )
 | 
			
		||||
        if ( !(o instanceof CpicxmStuff))
 | 
			
		||||
        {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,10 +1,21 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-04-22 17:33:30
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2022-04-23 23:50:20
 | 
			
		||||
 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\db\DBTable.java
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.config.db;
 | 
			
		||||
 | 
			
		||||
import java.util.Objects;
 | 
			
		||||
 | 
			
		||||
public class DBTable
 | 
			
		||||
{
 | 
			
		||||
    public DBTable() {}
 | 
			
		||||
    public DBTable()
 | 
			
		||||
    {}
 | 
			
		||||
 | 
			
		||||
    public String getTableName()
 | 
			
		||||
    {
 | 
			
		||||
@@ -29,16 +40,17 @@ public class DBTable
 | 
			
		||||
    @Override
 | 
			
		||||
    public boolean equals( Object o )
 | 
			
		||||
    {
 | 
			
		||||
        if ( this == o )
 | 
			
		||||
        if ( this == o)
 | 
			
		||||
        {
 | 
			
		||||
            return true;
 | 
			
		||||
        }
 | 
			
		||||
        if ( !( o instanceof DBTable ) )
 | 
			
		||||
        if ( !(o instanceof DBTable))
 | 
			
		||||
        {
 | 
			
		||||
            return false;
 | 
			
		||||
        }
 | 
			
		||||
        DBTable dbTable = (DBTable) o;
 | 
			
		||||
        return tableName.equals( dbTable.tableName ) && tableDescription.equals( dbTable.tableDescription );
 | 
			
		||||
        return tableName.equals( dbTable.tableName )
 | 
			
		||||
                && tableDescription.equals( dbTable.tableDescription );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,84 @@
 | 
			
		||||
/*
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-04-22 17:33:30
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2022-04-23 23:51:46
 | 
			
		||||
 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\db\OracleConfig.java
 | 
			
		||||
 * @Description: 
 | 
			
		||||
 * 
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved. 
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.config.db;
 | 
			
		||||
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
 | 
			
		||||
public class OracleConfig
 | 
			
		||||
{
 | 
			
		||||
    private String          tnsName;
 | 
			
		||||
    private String          ipAddr;
 | 
			
		||||
    private String          jdbcURL;
 | 
			
		||||
    private String          userName;
 | 
			
		||||
    private String          password;
 | 
			
		||||
 | 
			
		||||
    public String getTnsName()
 | 
			
		||||
    {
 | 
			
		||||
        return tnsName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTnsName( String tnsName )
 | 
			
		||||
    {
 | 
			
		||||
        this.tnsName = tnsName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getIpAddr()
 | 
			
		||||
    {
 | 
			
		||||
        return ipAddr;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setIpAddr( String ipAddr )
 | 
			
		||||
    {
 | 
			
		||||
        this.ipAddr = ipAddr;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getJdbcURL()
 | 
			
		||||
    {
 | 
			
		||||
        return jdbcURL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setJdbcURL( String jdbcURL )
 | 
			
		||||
    {
 | 
			
		||||
        this.jdbcURL = jdbcURL;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getUserName()
 | 
			
		||||
    {
 | 
			
		||||
        return userName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setUserName( String userName )
 | 
			
		||||
    {
 | 
			
		||||
        this.userName = userName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public String getPassword()
 | 
			
		||||
    {
 | 
			
		||||
        return password;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setPassword( String password )
 | 
			
		||||
    {
 | 
			
		||||
        this.password = password;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public Vector<DBTable> getTables()
 | 
			
		||||
    {
 | 
			
		||||
        return tables;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void setTables( Vector<DBTable> tables )
 | 
			
		||||
    {
 | 
			
		||||
        this.tables = tables;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private String tnsName;
 | 
			
		||||
    private String ipAddr;
 | 
			
		||||
    private String jdbcURL;
 | 
			
		||||
    private String userName;
 | 
			
		||||
    private String password;
 | 
			
		||||
    private Vector<DBTable> tables;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -51,8 +51,6 @@ public class HttpUtils
 | 
			
		||||
            // 设置请求头参数
 | 
			
		||||
            for ( HashMap.Entry<String, String> head : headers.entrySet())
 | 
			
		||||
            {
 | 
			
		||||
                String key = head.getKey();
 | 
			
		||||
 | 
			
		||||
                conn.setRequestProperty( head.getKey(), head.getValue() );
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-04-22 10:53:49
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2022-04-23 00:13:29
 | 
			
		||||
 * @LastEditTime: 2022-04-23 23:46:54
 | 
			
		||||
 * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\wechat\officalAccount\sendMessage.java
 | 
			
		||||
 * @Description: 用来推送公众号消息的程序库。
 | 
			
		||||
 *
 | 
			
		||||
@@ -10,24 +10,19 @@
 | 
			
		||||
 */
 | 
			
		||||
package com.cpic.xim.wechat.officalAccount;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonInclude;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.annotation.JsonProperty;
 | 
			
		||||
import com.fasterxml.jackson.core.JsonProcessingException;
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
 | 
			
		||||
import java.io.*;
 | 
			
		||||
 | 
			
		||||
import java.net.URL;
 | 
			
		||||
import java.net.HttpURLConnection;
 | 
			
		||||
import java.nio.charset.StandardCharsets;
 | 
			
		||||
import java.net.MalformedURLException;
 | 
			
		||||
import java.util.HashMap;
 | 
			
		||||
import java.util.Vector;
 | 
			
		||||
 | 
			
		||||
import com.cpic.xim.notify.disaster.*;
 | 
			
		||||
import com.cpic.xim.httpUtil.HttpUtils;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * 推送微信公众号消息。
 | 
			
		||||
 * @Description 
 | 
			
		||||
 * 
 | 
			
		||||
 * @author Kane
 | 
			
		||||
 */
 | 
			
		||||
public class sendMessage
 | 
			
		||||
@@ -35,125 +30,16 @@ public class sendMessage
 | 
			
		||||
    private static HashMap<String, String> warningLevel;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * 向公众号推送通知消息。接口文档参考 彭奕洁 编写《消息发送接口调用文档》
 | 
			
		||||
     * 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》
 | 
			
		||||
     * 
 | 
			
		||||
     * @param wechatOfficalAccountURL 公众号接口网址。
 | 
			
		||||
     * @param title                   通知的标题。
 | 
			
		||||
     * @param notifyType              通知类型。
 | 
			
		||||
     * @param notifyMessage           通知文本内容。
 | 
			
		||||
     */
 | 
			
		||||
    public static void postNotifyMessageJSON( String wechatOfficalAccountURL, String title,
 | 
			
		||||
            String notifyType, String notifyMessage )
 | 
			
		||||
    {
 | 
			
		||||
        // 设置推送内容
 | 
			
		||||
        WechatOfficalAccountMessageParameter param = new WechatOfficalAccountMessageParameter();
 | 
			
		||||
 | 
			
		||||
        param.setFirst( title );
 | 
			
		||||
        param.setKeyword1( notifyType );
 | 
			
		||||
        param.setKeyword1Color( "#ff0000" );
 | 
			
		||||
        param.setKeyword2( notifyMessage );
 | 
			
		||||
 | 
			
		||||
        // 转换成json
 | 
			
		||||
        ObjectMapper mapper;
 | 
			
		||||
        String json = null;
 | 
			
		||||
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            mapper = new ObjectMapper();
 | 
			
		||||
            mapper.setSerializationInclusion( JsonInclude.Include.NON_NULL );
 | 
			
		||||
 | 
			
		||||
            json = mapper.writeValueAsString( param );
 | 
			
		||||
 | 
			
		||||
            if ( json.isEmpty())
 | 
			
		||||
            {
 | 
			
		||||
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            System.out.println( json );
 | 
			
		||||
        }
 | 
			
		||||
        catch (JsonProcessingException error)
 | 
			
		||||
        {
 | 
			
		||||
            error.printStackTrace();
 | 
			
		||||
 | 
			
		||||
            return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 推送数据
 | 
			
		||||
        URL url = null;
 | 
			
		||||
        HttpURLConnection connection = null;
 | 
			
		||||
 | 
			
		||||
        StringBuilder result = new StringBuilder();
 | 
			
		||||
        OutputStreamWriter out = null;
 | 
			
		||||
        BufferedReader in = null;
 | 
			
		||||
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            url = new URL( wechatOfficalAccountURL );
 | 
			
		||||
            connection = (HttpURLConnection) url.openConnection();
 | 
			
		||||
 | 
			
		||||
            connection.setRequestMethod( "POST" );
 | 
			
		||||
            connection.setRequestProperty( "accept", "*/*" );
 | 
			
		||||
            connection.setRequestProperty( "Connection", "Keep-Alive" );
 | 
			
		||||
            connection.setRequestProperty( "Content-Type", "application/json" );
 | 
			
		||||
            connection.setDoInput( true );
 | 
			
		||||
            connection.setDoOutput( true );
 | 
			
		||||
            connection.connect();
 | 
			
		||||
 | 
			
		||||
            out = new OutputStreamWriter( connection.getOutputStream(), StandardCharsets.UTF_8 );
 | 
			
		||||
            out.write( json );
 | 
			
		||||
            out.flush();
 | 
			
		||||
 | 
			
		||||
            in = new BufferedReader( new InputStreamReader( connection.getInputStream() ) );
 | 
			
		||||
 | 
			
		||||
            String line = in.readLine();
 | 
			
		||||
 | 
			
		||||
            while (line != null)
 | 
			
		||||
            {
 | 
			
		||||
                result.append( line );
 | 
			
		||||
 | 
			
		||||
                line = in.readLine();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception error)
 | 
			
		||||
        {
 | 
			
		||||
            error.printStackTrace();
 | 
			
		||||
        }
 | 
			
		||||
        finally
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                if ( in != null)
 | 
			
		||||
                {
 | 
			
		||||
                    in.close();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if ( out != null)
 | 
			
		||||
                {
 | 
			
		||||
                    out.close();
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                if ( connection != null)
 | 
			
		||||
                {
 | 
			
		||||
                    connection.disconnect();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception error)
 | 
			
		||||
            {
 | 
			
		||||
                error.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     *  推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》
 | 
			
		||||
     * @param officalAccountURL 产险厦门分公司公众号接口网址
 | 
			
		||||
     * @param warning           灾害警报对象
 | 
			
		||||
     * @param warning           灾害预警对象
 | 
			
		||||
     */
 | 
			
		||||
    public static void sendWeatherDisasterWarning( String officalAccountURL,
 | 
			
		||||
            QWeatherDisasterWarning warning )
 | 
			
		||||
    {
 | 
			
		||||
        Vector<QWeatherDisasterWarningItem> warningItems = warning.getWarning();
 | 
			
		||||
        StringBuilder requestBody = null;
 | 
			
		||||
 | 
			
		||||
        // 设置请求头参数
 | 
			
		||||
        HashMap<String, String> headers = new HashMap<String, String>();
 | 
			
		||||
@@ -168,13 +54,31 @@ public class sendMessage
 | 
			
		||||
            // 拼接消息内容
 | 
			
		||||
            String title = item.getTitle();
 | 
			
		||||
            String text = item.getText();
 | 
			
		||||
            String color = warningLevel.keySet().contains( item.getLevel() ) ? "#000000"
 | 
			
		||||
                    : warningLevel.get( item.getLevel() );
 | 
			
		||||
            String color = warningLevel.keySet().contains( item.getLevel() )
 | 
			
		||||
                    ? warningLevel.get( item.getLevel() )
 | 
			
		||||
                    : "#000000";
 | 
			
		||||
 | 
			
		||||
            requestBody = new StringBuilder();
 | 
			
		||||
 | 
			
		||||
            requestBody.append( "tplid=57&groupid=1&first=尊敬的#realname#,您好!&" );
 | 
			
		||||
            requestBody.append( "keyword1=" ).append( title ).append( "&" );
 | 
			
		||||
            requestBody.append( "keyword1color=" ).append( color ).append( "&" );
 | 
			
		||||
            requestBody.append( "keyword2=" ).append( text );
 | 
			
		||||
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                HttpUtils.postHttpRequest( officalAccountURL, headers, requestBody.toString() );
 | 
			
		||||
            }
 | 
			
		||||
            catch (MalformedURLException error)
 | 
			
		||||
            {
 | 
			
		||||
                error.printStackTrace();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    static
 | 
			
		||||
    {
 | 
			
		||||
        // 预警级别色彩
 | 
			
		||||
        warningLevel = new HashMap<>();
 | 
			
		||||
 | 
			
		||||
        warningLevel.put( "蓝色", "#0000FF" );
 | 
			
		||||
 
 | 
			
		||||
@@ -2,43 +2,47 @@
 | 
			
		||||
 * @Author: Kane
 | 
			
		||||
 * @Date: 2022-04-22 10:53:49
 | 
			
		||||
 * @LastEditors: Kane
 | 
			
		||||
 * @LastEditTime: 2022-04-22 16:02:05
 | 
			
		||||
 * @LastEditTime: 2022-04-23 23:44:54
 | 
			
		||||
 * @FilePath: \DisasterWarning\src\test\java\com\cpic\xim\wechat\officalAccount\sendMessageTest.java
 | 
			
		||||
 * @Description:
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright (c) ${2022} by Kane, All Rights Reserved.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
package com.cpic.xim.wechat.officalAccount;
 | 
			
		||||
 | 
			
		||||
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
 | 
			
		||||
 | 
			
		||||
import org.junit.Test;
 | 
			
		||||
import static org.junit.Assert.*;
 | 
			
		||||
import com.cpic.xim.httpUtil.*;
 | 
			
		||||
import java.io.IOException;
 | 
			
		||||
import java.util.*;
 | 
			
		||||
 | 
			
		||||
import com.fasterxml.jackson.databind.ObjectMapper;
 | 
			
		||||
 | 
			
		||||
public class sendMessageTest
 | 
			
		||||
{
 | 
			
		||||
    private static String url =
 | 
			
		||||
            "https://cxxmwx.cpic.com.cn/app/index.php?i=2&c=entry&do=send_group_tpl_api&m=ok_tplmessage";
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    // @Test
 | 
			
		||||
    public void postNotifyMessageJson()
 | 
			
		||||
    {
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            // sendMessage.postNotifyMessageJSON( url, "警报", "警报标题", "警报内容!" );
 | 
			
		||||
        }
 | 
			
		||||
        catch ( Exception error )
 | 
			
		||||
        catch (Exception error)
 | 
			
		||||
        {
 | 
			
		||||
            fail( "测试失败!" );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    // @Test
 | 
			
		||||
    public void postNotifyMessage()
 | 
			
		||||
    {
 | 
			
		||||
        HashMap<String, String> headers = new HashMap<String, String>();
 | 
			
		||||
        String param = "tplid=57&" + "groupid=1&" + "first=亲爱的#realname#,您好!&"
 | 
			
		||||
        String param = "tplid=57&groupid=1&first=亲爱的#realname#,您好!&"
 | 
			
		||||
                + "keyword1=东山县气象台发布大雾黄色预警[Ⅲ级/较重]&" + "keyword1color=#ffff00&"
 | 
			
		||||
                + "keyword2=东山县气象台2022年04月22日06时12分发布大雾黄色预警信号:预计未来12小时内,我县、闽南渔场和台湾浅滩渔场将出现能见度小于500米的雾。请注意防范!";
 | 
			
		||||
 | 
			
		||||
@@ -50,9 +54,29 @@ public class sendMessageTest
 | 
			
		||||
        {
 | 
			
		||||
            HttpUtils.postHttpRequest( url, headers, param );
 | 
			
		||||
        }
 | 
			
		||||
        catch ( Exception error )
 | 
			
		||||
        catch (Exception error)
 | 
			
		||||
        {
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    @Test
 | 
			
		||||
    public void testSendWeatherDisasterWarning() throws IOException
 | 
			
		||||
    {
 | 
			
		||||
        String warningJSON =
 | 
			
		||||
                "{\"code\":\"200\",\"updateTime\":\"2022-04-23T23:25+08:00\",\"fxLink\":\"http://hfx.link/3645\",\"warning\":[{\"id\":\"10123060820220423203500874007118\",\"sender\":\"东山县气象台\",\"pubTime\":\"2022-04-23T20:35+08:00\",\"title\":\"东山县气象台发布大雾黄色预警[Ⅲ级/较重]\",\"status\":\"active\",\"level\":\"黄色\",\"type\":\"1017\",\"typeName\":\"大雾\",\"text\":\"东山县气象台2022年04月23日20时35分发布大雾黄色预警信号:预计未来12小时内,我县、闽南渔场和台湾浅滩渔场将出现能见度小于500米的雾。请注意防范!\",\"related\":\"\",\"urgency\":\"\",\"certainty\":\"\"}],\"refer\":{\"sources\":[\"12379\"],\"license\":[\"no commercial use\"]}}";
 | 
			
		||||
 | 
			
		||||
        try
 | 
			
		||||
        {
 | 
			
		||||
            ObjectMapper mapper = new ObjectMapper();
 | 
			
		||||
            QWeatherDisasterWarning warning =
 | 
			
		||||
                    mapper.readValue( warningJSON, QWeatherDisasterWarning.class );
 | 
			
		||||
 | 
			
		||||
            sendMessage.sendWeatherDisasterWarning( url, warning );
 | 
			
		||||
        }
 | 
			
		||||
        catch (Exception error)
 | 
			
		||||
        {
 | 
			
		||||
            fail( error.getMessage() );
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -18,7 +18,6 @@
 | 
			
		||||
            "certainty": ""
 | 
			
		||||
        }
 | 
			
		||||
    ],
 | 
			
		||||
    "refer": { "sources": ["12379"], "license": ["no commercial use"] }
 | 
			
		||||
    "refer": { "sources": ["12379"], "license": ["no commercial use"] },
 | 
			
		||||
    "testURL": "https://devapi.qweather.com/v7/warning/now?key=fe9fa8eeeb6f4301a92541eed565dd15&location=101230608"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
https://devapi.qweather.com/v7/warning/now?key=fe9fa8eeeb6f4301a92541eed565dd15&location=101230608
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user