12 Commits

Author SHA1 Message Date
1231fe3132 保存进度! 2022-05-10 16:03:40 +08:00
fbe9f8e532 完成打包! 2022-05-10 14:24:07 +08:00
53849e4f74 保存进度! 2022-05-09 17:03:26 +08:00
d1bcb3b956 保存进度! 2022-05-06 17:33:56 +08:00
c0443d3a8b 完成基本功能。 2022-05-06 11:15:04 +08:00
eb7f53ad4b 保存进度! 2022-05-05 17:53:31 +08:00
91c99ba8f9 完成发送记录保存功能。待完善…… 2022-05-05 16:59:28 +08:00
0fb8b90509 重构一下 2022-05-04 00:08:17 +08:00
cd743c645f 保存进度! 2022-04-28 15:59:40 +08:00
2d1d4dea66 提交小修改! 2022-04-27 23:38:47 +08:00
24cdc66b7d 完成check函数!修正jdbc url的错误! 2022-04-27 17:37:36 +08:00
5da53f02ea 完成判断消息是否已发送功能! 2022-04-27 16:09:58 +08:00
12 changed files with 351 additions and 54 deletions

View File

@@ -134,3 +134,6 @@ $RECYCLE.BIN/
*.lnk *.lnk
target/* target/*
logs/*
logs

View File

@@ -1,13 +1,14 @@
{ {
"tns_name": "xmcx1", "tns_name": "xmcx1",
"ip_addr": "10.39.0.86", "ip_addr": "10.39.0.86",
"jdbc_url": "", "jdbc_url": "jdbc:oracle:thin:@10.39.0.86:1521:xmcx1",
"user_name": "xim_offical_account", "table_space": "wechat",
"password": "Cpic#1234", "user_name": "wechat",
"password": "@rn7Q+t5zeyKIZ~s",
"tables": [ "tables": [
{ {
"table_name": "", "table_name": "weather_disaster_notify",
"table_description": "" "table_description": "天气预警消息表"
} }
] ]
} }

View File

@@ -0,0 +1,10 @@
handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
.level = INFO
java.util.logging.FileHandler.pattern = ./logs/log_%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 1
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.append = true;

View File

@@ -5,6 +5,13 @@
<artifactId>disaster_warning</artifactId> <artifactId>disaster_warning</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<dependencies> <dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc8.jar</systemPath>
</dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId> <artifactId>httpclient</artifactId>
@@ -16,7 +23,7 @@
<version>4.13.2</version> <version>4.13.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency> <!-- <dependency>
<groupId>commons-beanutils</groupId> <groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId> <artifactId>commons-beanutils</artifactId>
<version>1.9.4</version> <version>1.9.4</version>
@@ -46,7 +53,7 @@
<artifactId>json-lib</artifactId> <artifactId>json-lib</artifactId>
<version>2.4</version> <version>2.4</version>
<classifier>jdk15</classifier> <classifier>jdk15</classifier>
</dependency> </dependency> -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId> <artifactId>jackson-core</artifactId>
@@ -72,6 +79,40 @@
</properties> </properties>
<build> <build>
<defaultGoal>compile</defaultGoal> <defaultGoal>compile</defaultGoal>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.0.0-M6</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>AppMain</mainClass>
</manifest>
</archive>
</configuration>
<executions>
<execution>
<id>make-assmenbly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build> </build>
<profiles> <profiles>
<profile> <profile>

View File

@@ -2,7 +2,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-04-22 10:53:49 * @Date: 2022-04-22 10:53:49
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-04-26 22:33:14 * @LastEditTime: 2022-05-10 16:01:13
* @FilePath: \DisasterWarning\src\main\java\AppMain.java * @FilePath: \DisasterWarning\src\main\java\AppMain.java
* @Description: 和风天气预警推送厦门太保公众号主程序! * @Description: 和风天气预警推送厦门太保公众号主程序!
* *
@@ -11,16 +11,18 @@
import com.cpic.xim.config.City; import com.cpic.xim.config.City;
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning; import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
import com.cpic.xim.notify.disaster.WeatherDisasterWarningGrabber; import com.cpic.xim.notify.disaster.WeatherDisasterWarningGrabber;
import com.cpic.xim.wechat.officalAccount.sendMessage;
import com.cpic.xim.config.WeatherDisasterNotifyConfig; import com.cpic.xim.config.WeatherDisasterNotifyConfig;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.sql.SQLException;
import java.util.Vector; import java.util.Vector;
import java.util.logging.*; import java.util.logging.*;
public class AppMain public class AppMain
{ {
private final static String LOG_FILE_PATH = "./app.log"; // private final static String LOG_FILE_PATH = "./logs/app%u.log";
public static void main( String[] args ) public static void main( String[] args )
{ {
@@ -43,7 +45,6 @@ public class AppMain
return; return;
} }
// 读取配置 // 读取配置
try try
{ {
@@ -68,8 +69,6 @@ public class AppMain
{ {
try try
{ {
json = WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( queryURL, json = WeatherDisasterWarningGrabber.getWeatherDisasterWarningJSON( queryURL,
userKey, city.getCityCode() ); userKey, city.getCityCode() );
warning = WeatherDisasterWarningGrabber.convertWeatherDisasterWarning( json ); warning = WeatherDisasterWarningGrabber.convertWeatherDisasterWarning( json );
@@ -80,14 +79,21 @@ public class AppMain
// 判断是否有警报 // 判断是否有警报
if ( warning.getWarning().isEmpty() == true) if ( warning.getWarning().isEmpty() == true)
{ {
logger.log( Level.INFO, "查询{0}天气预警,无警报!。", new Object[]
{ city.getCityName()} );
continue; continue;
} }
logger.log( Level.INFO, "查询{0}天气预警,发送日志。", new Object[] logger.log( Level.INFO, "查询{0}天气预警,发送日志。", new Object[]
{ city.getCityName()} ); { city.getCityName()} );
// sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(), sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(),
// warning ); warning );
logger.log( Level.INFO, "{0}天气预警,日志发送成功。", new Object[]
{ city.getCityName()} );
sendMessage.saveWeatherDisasterWarning( city.getCityName(), warning );
} }
catch ( IOException error ) catch ( IOException error )
{ {
@@ -96,8 +102,22 @@ public class AppMain
logger.log( Level.SEVERE, "查询 {0} 出现异常:{1}。", new Object[] logger.log( Level.SEVERE, "查询 {0} 出现异常:{1}。", new Object[]
{ city.getCityName(), error.getMessage()} ); { city.getCityName(), error.getMessage()} );
}
catch ( SQLException error )
{
logger.log( Level.SEVERE, "查询 {0} 写入数据库失败:{1}。", new Object[]
{ city.getCityName(), error.getMessage()} );
}
catch ( ClassNotFoundException error )
{
logger.log( Level.SEVERE, "查询 {0} 加载oracle驱动失败:{1}。", new Object[]
{ city.getCityName(), error.getMessage()} );
continue; }
catch ( Exception error )
{
logger.log( Level.SEVERE, "查询 {0} 出现未知错误:{1}。", new Object[]
{ city.getCityName(), error.getMessage()} );
} }
} }
} }
@@ -107,17 +127,29 @@ public class AppMain
*/ */
private static void setRootLogger() throws IOException private static void setRootLogger() throws IOException
{ {
// Logger rootLogger = Logger.getLogger( "com.cpicxim" );
// ConsoleHandler consoleHandler = new ConsoleHandler();
// FileHandler fileHandler = new FileHandler( LOG_FILE_PATH );
// SimpleFormatter formatter = new SimpleFormatter();
// consoleHandler.setFormatter( formatter );
// fileHandler.setFormatter( formatter );
// rootLogger.addHandler( consoleHandler );
// rootLogger.addHandler( fileHandler );
// rootLogger.setUseParentHandlers( false );
// rootLogger.setLevel( Level.ALL );
LogManager logManager = LogManager.getLogManager();
// 使用外部的配置文件。
FileInputStream configFile = new FileInputStream( "./logging.properties" );
// 使用jar中的配置文件。
// InputStream configFile =
// AppMain.class.getClassLoader().getResourceAsStream( "logging.properties" );
logManager.readConfiguration( configFile );
Logger rootLogger = Logger.getLogger( "com.cpicxim" ); Logger rootLogger = Logger.getLogger( "com.cpicxim" );
ConsoleHandler consoleHandler = new ConsoleHandler();
FileHandler fileHandler = new FileHandler( LOG_FILE_PATH );
SimpleFormatter formatter = new SimpleFormatter();
consoleHandler.setFormatter( formatter );
fileHandler.setFormatter( formatter );
rootLogger.addHandler( consoleHandler );
rootLogger.addHandler( fileHandler );
rootLogger.setUseParentHandlers( false );
rootLogger.setLevel( Level.ALL );
} }
} }

View File

@@ -2,7 +2,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-04-22 17:33:30 * @Date: 2022-04-22 17:33:30
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-04-23 23:50:20 * @LastEditTime: 2022-04-27 16:53:13
* @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\db\DBTable.java * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\db\DBTable.java
* @Description: * @Description:
* *
@@ -12,6 +12,8 @@ package com.cpic.xim.config.db;
import java.util.Objects; import java.util.Objects;
import com.fasterxml.jackson.annotation.JsonProperty;
public class DBTable public class DBTable
{ {
public DBTable() public DBTable()
@@ -59,6 +61,9 @@ public class DBTable
return Objects.hash( tableName, tableDescription ); return Objects.hash( tableName, tableDescription );
} }
@JsonProperty( "table_name")
private String tableName; private String tableName;
@JsonProperty( "table_description")
private String tableDescription; private String tableDescription;
} }

View File

@@ -49,6 +49,17 @@ public class OracleConfig
this.jdbcURL = jdbcURL; this.jdbcURL = jdbcURL;
} }
public String getTableSpace()
{
return tableSpace;
}
public void setTableSpace( String tableSpace )
{
this.tableSpace = tableSpace;
}
public String getUserName() public String getUserName()
{ {
return userName; return userName;
@@ -88,6 +99,9 @@ public class OracleConfig
@JsonProperty( "jdbc_url") @JsonProperty( "jdbc_url")
private String jdbcURL; private String jdbcURL;
@JsonProperty( "table_space")
private String tableSpace;
@JsonProperty( "user_name") @JsonProperty( "user_name")
private String userName; private String userName;

View File

@@ -2,8 +2,8 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-04-25 21:45:12 * @Date: 2022-04-25 21:45:12
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-04-25 22:58:47 * @LastEditTime: 2022-05-03 22:34:37
* @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\db\OracleConfigLoader.java * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\config\db\OracleConfigManager.java
* @Description: oracle数据库配置文件加载类 * @Description: oracle数据库配置文件加载类
* *
* Copyright (c) ${2022} by Kane, All Rights Reserved. * Copyright (c) ${2022} by Kane, All Rights Reserved.
@@ -14,17 +14,17 @@ import java.io.*;
import com.fasterxml.jackson.databind.*; import com.fasterxml.jackson.databind.*;
public class OracleConfigLoader public class OracleConfigManager
{ {
private static final String CONFIG_FILE_PATH = "./db.json"; private static final String CONFIG_FILE_PATH = "./db.json";
private static final String CONFIG_FILE_CHARSET = "UTF-8"; private static final String CONFIG_FILE_CHARSET = "UTF-8";
private static final int BUFFER_SIZE = 1024; private static final int BUFFER_SIZE = 1024;
private static OracleConfig dbConfig = null; private static OracleConfig dbConfig = null;
private OracleConfigLoader() private OracleConfigManager()
{} {}
public OracleConfig getOracleConfig() throws IOException public static OracleConfig getOracleConfig() throws IOException
{ {
FileInputStream file = null; FileInputStream file = null;
InputStreamReader in = null; InputStreamReader in = null;
@@ -39,10 +39,9 @@ public class OracleConfigLoader
try try
{ {
file = new FileInputStream( CONFIG_FILE_PATH ); file = new FileInputStream( CONFIG_FILE_PATH );
in = new InputStreamReader( file, CONFIG_FILE_CHARSET); in = new InputStreamReader( file, CONFIG_FILE_CHARSET );
json = new StringBuffer(); json = new StringBuffer();
int count = in.read( buffer ); int count = in.read( buffer );
while (count != -1) while (count != -1)
@@ -56,7 +55,7 @@ public class OracleConfigLoader
dbConfig = mapper.readValue( json.toString(), OracleConfig.class ); dbConfig = mapper.readValue( json.toString(), OracleConfig.class );
} }
catch (IOException error) catch ( IOException error )
{ {
throw error; throw error;
} }
@@ -66,7 +65,7 @@ public class OracleConfigLoader
{ {
file.close(); file.close();
} }
catch (Exception error) catch ( Exception error )
{ {
error.printStackTrace(); error.printStackTrace();
} }

View File

@@ -2,7 +2,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-04-22 10:53:49 * @Date: 2022-04-22 10:53:49
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-04-25 19:20:32 * @LastEditTime: 2022-05-06 11:14:32
* @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\wechat\officalAccount\sendMessage.java * @FilePath: \DisasterWarning\src\main\java\com\cpic\xim\wechat\officalAccount\sendMessage.java
* @Description: 用来推送公众号消息的程序库。 * @Description: 用来推送公众号消息的程序库。
* *
@@ -10,13 +10,20 @@
*/ */
package com.cpic.xim.wechat.officalAccount; package com.cpic.xim.wechat.officalAccount;
import com.cpic.xim.config.db.OracleConfigManager;
import com.cpic.xim.config.db.OracleConfig;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.io.IOException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Vector; import java.util.Vector;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import com.cpic.xim.notify.disaster.*; import com.cpic.xim.notify.disaster.*;
import com.cpic.xim.httpUtil.HttpUtils; import com.cpic.xim.httpUtil.HttpUtils;
@@ -31,7 +38,7 @@ public class sendMessage
/** /**
* 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》 * 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》
* * 使用 post 方式,请求体内容以最基础的 post 格式。
* @param officalAccountURL 产险厦门分公司公众号接口网址 * @param officalAccountURL 产险厦门分公司公众号接口网址
* @param warning 灾害预警对象 * @param warning 灾害预警对象
*/ */
@@ -49,7 +56,7 @@ public class sendMessage
headers.put( "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" ); headers.put( "Content-Type", "application/x-www-form-urlencoded;charset=UTF-8" );
// 遍历消息,将消息推送出去。 // 遍历消息,将消息推送出去。
for ( QWeatherDisasterWarningItem item : warningItems) for ( QWeatherDisasterWarningItem item : warningItems )
{ {
// 拼接消息内容 // 拼接消息内容
String title = item.getTitle(); String title = item.getTitle();
@@ -68,7 +75,7 @@ public class sendMessage
{ {
HttpUtils.postHttpRequest( officalAccountURL, headers, requestBody.toString() ); HttpUtils.postHttpRequest( officalAccountURL, headers, requestBody.toString() );
} }
catch (MalformedURLException error) catch ( MalformedURLException error )
{ {
error.printStackTrace(); error.printStackTrace();
} }
@@ -76,19 +83,180 @@ public class sendMessage
} }
/** /**
* * 检查预警是否已经推送过,通过 QWeatherDisasterWarningItem 对象的 id 属性。
* @param warningID * 查询 oracle xmcx1 数据库 wechat 表空间下 weather_disaster_notify 表,
* @return * 统计 warningID 的数量如果不为0,说明该预警已经保存过,视为已经推送过。
* @param warningID 预警的id
* @return 如果推送过返回false否则返回 true。
*/ */
private boolean checkWarningHasSended( String warningID ) public static boolean checkWarningHasSended( String warningID )
throws ClassNotFoundException, SQLException, IOException
{ {
boolean result = false; boolean result = false;
OracleConfig dbConfig = OracleConfigManager.getOracleConfig();;
Connection conn = null;
PreparedStatement stmt = null;
ResultSet rs = null;
String jdbcURL = dbConfig.getJdbcURL();
String userName = dbConfig.getUserName();
String password = dbConfig.getPassword();
String sql = "select count(*) from weather_disaster_notify where notify_id = ?";
// Logger logger = Logger.getLogger( "com.cpicxim.wechat.officalAccount.sendMessage" );
try
{
Class.forName( "oracle.jdbc.driver.OracleDriver" );
conn = DriverManager.getConnection( jdbcURL, userName, password );
stmt = conn.prepareStatement( sql );
stmt.setString( 1, warningID );
rs = stmt.executeQuery();
if ( rs.next() && rs.getInt( 1 ) == 0)
{
result = true;
}
}
finally
{
try
{
if ( rs != null)
{
rs.close();
}
}
catch ( Exception error )
{
error.printStackTrace();
}
try
{
if ( stmt != null)
{
stmt.close();
}
}
catch ( Exception error )
{
error.printStackTrace();
}
try
{
if ( conn != null)
{
conn.close();
}
}
catch ( Exception error )
{
error.printStackTrace();
}
}
return result; return result;
} }
/**
* 保存天气预警警报数据。
* 保存至 oracle xmcx1 数据库 wechat 表空间下 weather_disaster_notify 表。
* 保存的数据用来判断预警是否已经推送过,以防止反复推送数据。
* @param city 城市名称
* @param warning 预警数据,为 QWeatherDisasterWarningItem 对象。
* @throws SQLException 执行sql时可能抛出的异常。出现sql异常就回滚事务。
* @throws IOException 读取数据库配置文件时可能抛出的异常。
* @throws ClassNotFoundException 加载oracle jdbc驱动时可能抛出的异常。
*/
public static void saveWeatherDisasterWarning( String city, QWeatherDisasterWarning warnings )
throws SQLException, IOException, ClassNotFoundException
{
Connection conn = null;
PreparedStatement stmt = null;
String sql = "insert into weather_disaster_notify(notify_id, sender, city,"
+ "warning_level, warning_type_code, warning_type_name, title,"
+ "text, pub_time) values( ?,?,?,?,?,?,?,?,?)";
OracleConfig dbConfig = OracleConfigManager.getOracleConfig();
String jdbcURL = dbConfig.getJdbcURL();
String userName = dbConfig.getUserName();
String password = dbConfig.getPassword();
try
{
Class.forName( "oracle.jdbc.driver.OracleDriver" );
conn = DriverManager.getConnection( jdbcURL, userName, password );
stmt = conn.prepareStatement( sql );
for ( QWeatherDisasterWarningItem warning : warnings.getWarning() )
{
java.sql.Timestamp pubTime =
new java.sql.Timestamp( warning.getPubTime().getTime() );
stmt.setString( 1, warning.getId() );
stmt.setString( 2, warning.getSender() );
stmt.setString( 3, city );
stmt.setString( 4, warning.getLevel() );
stmt.setString( 5, warning.getType() );
stmt.setString( 6, warning.getTypeName() );
stmt.setString( 7, warning.getTitle() );
stmt.setString( 8, warning.getText() );
stmt.setTimestamp( 9, pubTime );
stmt.execute();
}
// 没有问题就提交
conn.commit();
}
catch ( SQLException error )
{
// 出现sql错误就回滚
if ( conn != null)
{
conn.rollback();
}
throw error;
}
finally
{
try
{
if ( stmt != null)
{
stmt.close();
}
}
catch ( Exception error )
{
error.printStackTrace();
}
try
{
if ( conn != null)
{
conn.close();
}
}
catch ( Exception error )
{
error.printStackTrace();
}
}
}
static static
{ {
// 预警级别色彩 // 预警级别色彩

View File

@@ -0,0 +1,10 @@
handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
.level = INFO
java.util.logging.FileHandler.pattern = ./logs/log_%u.log
java.util.logging.FileHandler.limit = 50000
java.util.logging.FileHandler.count = 10
java.util.logging.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.FileHandler.append = true;

View File

@@ -2,7 +2,7 @@
* @Author: Kane * @Author: Kane
* @Date: 2022-04-22 10:53:49 * @Date: 2022-04-22 10:53:49
* @LastEditors: Kane * @LastEditors: Kane
* @LastEditTime: 2022-04-26 23:16:46 * @LastEditTime: 2022-05-10 11:33:41
* @FilePath: \DisasterWarning\src\test\java\com\cpic\xim\wechat\officalAccount\sendMessageTest.java * @FilePath: \DisasterWarning\src\test\java\com\cpic\xim\wechat\officalAccount\sendMessageTest.java
* @Description: * @Description:
* *
@@ -12,11 +12,10 @@ package com.cpic.xim.wechat.officalAccount;
import com.cpic.xim.notify.disaster.QWeatherDisasterWarning; import com.cpic.xim.notify.disaster.QWeatherDisasterWarning;
import org.junit.Test;
import static org.junit.Assert.*; import static org.junit.Assert.*;
import com.cpic.xim.httpUtil.*; import com.cpic.xim.httpUtil.*;
import java.io.IOException; import java.io.IOException;
//import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.ObjectMapper;
@@ -61,7 +60,7 @@ public class sendMessageTest
} }
@Test // @Test
public void testSendWeatherDisasterWarning() throws IOException public void testSendWeatherDisasterWarning() throws IOException
{ {
String warningJSON = String warningJSON =
@@ -73,14 +72,29 @@ public class sendMessageTest
QWeatherDisasterWarning warning = QWeatherDisasterWarning warning =
mapper.readValue( warningJSON, QWeatherDisasterWarning.class ); mapper.readValue( warningJSON, QWeatherDisasterWarning.class );
// SimpleDateFormat format = new SimpleDateFormat( "yyyy-MM-dd HH:mm" ); String city = "东山县";
// String putTime = format.format( warning.getUpdateTime() );
sendMessage.sendWeatherDisasterWarning( url, warning );
sendMessage.saveWeatherDisasterWarning( city, warning );
} }
catch ( Exception error ) catch ( Exception error )
{ {
fail( error.getMessage() ); fail( error.getMessage() );
} }
} }
// @Test
public void testCheckWarningHasSended()
{
String warningID = "10123060820220422061200476313081";
try
{
sendMessage.checkWarningHasSended( warningID );
}
catch ( Exception error )
{
error.printStackTrace();
}
}
} }