4 Commits

7 changed files with 121 additions and 179 deletions

View File

@@ -21,17 +21,13 @@
<SOURCES /> <SOURCES />
</library> </library>
</orderEntry> </orderEntry>
<orderEntry type="library" name="Maven: com.oracle:ojdbc8:19.3.0.0.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" /> <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.13" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" /> <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.13" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
<orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" /> <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.11" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.2" level="project" />
<orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" /> <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
<orderEntry type="library" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
<orderEntry type="library" name="Maven: commons-collections:commons-collections:20040616" level="project" />
<orderEntry type="library" name="Maven: commons-lang:commons-lang:2.6" level="project" />
<orderEntry type="library" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
<orderEntry type="library" name="Maven: net.sf.ezmorph:ezmorph:1.0.6" level="project" />
<orderEntry type="library" name="Maven: net.sf.json-lib:json-lib:jdk15:2.4" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
<orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8" level="project" /> <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.8" level="project" />

View File

@@ -267,15 +267,15 @@
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/jackson/core/jackson-databind/2.9.8/jackson-databind-2.9.8-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: commons-beanutils:commons-beanutils:1.9.4"> <library name="Maven: com.oracle:ojdbc8:19.3.0.0.0">
<CLASSES> <CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/oracle/ojdbc8/19.3.0.0.0/ojdbc8-19.3.0.0.0.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC> <JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4-javadoc.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/oracle/ojdbc8/19.3.0.0.0/ojdbc8-19.3.0.0.0-javadoc.jar!/" />
</JAVADOC> </JAVADOC>
<SOURCES> <SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-beanutils/commons-beanutils/1.9.4/commons-beanutils-1.9.4-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/com/oracle/ojdbc8/19.3.0.0.0/ojdbc8-19.3.0.0.0-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: commons-codec:commons-codec:1.11"> <library name="Maven: commons-codec:commons-codec:1.11">
@@ -289,37 +289,15 @@
<root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.11/commons-codec-1.11-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/commons-codec/commons-codec/1.11/commons-codec-1.11-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: commons-collections:commons-collections:20040616"> <library name="Maven: commons-logging:commons-logging:1.2">
<CLASSES> <CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/20040616/commons-collections-20040616.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2.jar!/" />
</CLASSES> </CLASSES>
<JAVADOC> <JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/20040616/commons-collections-20040616-javadoc.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-javadoc.jar!/" />
</JAVADOC> </JAVADOC>
<SOURCES> <SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-collections/commons-collections/20040616/commons-collections-20040616-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.2/commons-logging-1.2-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: commons-lang:commons-lang:2.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-lang/commons-lang/2.6/commons-lang-2.6-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: commons-logging:commons-logging:1.1.1">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: junit:junit:4.13.2"> <library name="Maven: junit:junit:4.13.2">
@@ -333,28 +311,6 @@
<root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13.2/junit-4.13.2-sources.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/junit/junit/4.13.2/junit-4.13.2-sources.jar!/" />
</SOURCES> </SOURCES>
</library> </library>
<library name="Maven: net.sf.ezmorph:ezmorph:1.0.6">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/sf/ezmorph/ezmorph/1.0.6/ezmorph-1.0.6-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: net.sf.json-lib:json-lib:jdk15:2.4">
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/net/sf/json-lib/json-lib/2.4/json-lib-2.4-jdk15.jar!/" />
</CLASSES>
<JAVADOC>
<root url="jar://$MAVEN_REPOSITORY$/net/sf/json-lib/json-lib/2.4/json-lib-2.4-javadoc.jar!/" />
</JAVADOC>
<SOURCES>
<root url="jar://$MAVEN_REPOSITORY$/net/sf/json-lib/json-lib/2.4/json-lib-2.4-sources.jar!/" />
</SOURCES>
</library>
<library name="Maven: org.apache.httpcomponents:httpclient:4.5.13"> <library name="Maven: org.apache.httpcomponents:httpclient:4.5.13">
<CLASSES> <CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar!/" /> <root url="jar://$MAVEN_REPOSITORY$/org/apache/httpcomponents/httpclient/4.5.13/httpclient-4.5.13.jar!/" />

View File

@@ -8,9 +8,7 @@
<dependency> <dependency>
<groupId>com.oracle</groupId> <groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId> <artifactId>ojdbc8</artifactId>
<version>1.0</version> <version>19.3.0.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/lib/ojdbc8.jar</systemPath>
</dependency> </dependency>
<dependency> <dependency>
<groupId>org.apache.httpcomponents</groupId> <groupId>org.apache.httpcomponents</groupId>
@@ -23,37 +21,6 @@
<version>4.13.2</version> <version>4.13.2</version>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<!-- <dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.9.4</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>20040616</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>net.sf.ezmorph</groupId>
<artifactId>ezmorph</artifactId>
<version>1.0.6</version>
</dependency>
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency> -->
<dependency> <dependency>
<groupId>com.fasterxml.jackson.core</groupId> <groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId> <artifactId>jackson-core</artifactId>

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-05-10 16:28:07 * @LastEditTime: 2022-05-12 09:52:45
* @FilePath: \DisasterWarning\src\main\java\AppMain.java * @FilePath: \DisasterWarning\src\main\java\AppMain.java
* @Description: 和风天气预警推送厦门太保公众号主程序! * @Description: 和风天气预警推送厦门太保公众号主程序!
* *
@@ -11,6 +11,7 @@
import com.cpic.xim.config.AppConfigManager; import com.cpic.xim.config.AppConfigManager;
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.QWeatherDisasterWarningItem;
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.wechat.officalAccount.sendMessage;
import com.cpic.xim.config.WeatherDisasterNotifyConfig; import com.cpic.xim.config.WeatherDisasterNotifyConfig;
@@ -79,24 +80,41 @@ public class AppMain
logger.log( Level.INFO, "查询{0}天气预警,结果:{1}。", new Object[] logger.log( Level.INFO, "查询{0}天气预警,结果:{1}。", new Object[]
{ city.getCityName(), json} ); { city.getCityName(), json} );
// 判断是否有警报 Vector<QWeatherDisasterWarningItem> warningItems = warning.getWarning();
if ( warning.getWarning().isEmpty() == true)
// 判断是否有警报,没有警报就结束当前城市的处理
if ( warningItems.isEmpty() == true)
{ {
logger.log( Level.INFO, "查询{0}天气预警,无警报!。", new Object[] logger.log( Level.INFO, "查询{0}天气预警,无警报!。", new Object[]
{ city.getCityName()} ); { city.getCityName()} );
continue; continue;
} }
logger.log( Level.INFO, "查询{0}天气预警,发送日志。", new Object[] // 有警报,就遍历警报数组
{ city.getCityName()} ); for ( QWeatherDisasterWarningItem item : warningItems )
{
// 先检查是否已经发送过
if ( sendMessage.checkWarningHasSended( item.getId() ) == false)
{
logger.log( Level.INFO, "查询{0}天气预警ID:{1},已有发送记录,跳过。", new Object[]
{ city.getCityName(), item.getId()} );
sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(), continue;
warning ); }
logger.log( Level.INFO, "{0}天气预警,日志发送成功。", new Object[] // 没有发送过
{ city.getCityName()} ); logger.log( Level.INFO, "查询{0}天气预警,发送日志。", new Object[]
{ city.getCityName()} );
sendMessage.saveWeatherDisasterWarning( city.getCityName(), warning ); sendMessage.sendWeatherDisasterWarning( config.getWechatOfficalAccountURL(),
item );
logger.log( Level.INFO, "{0}天气预警,日志发送成功。", new Object[]
{ city.getCityName()} );
// 将发送的警报,保存起来
sendMessage.saveWeatherDisasterWarning( city.getCityName(), item );
}
} }
catch ( IOException error ) catch ( IOException error )
{ {

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-05-06 11:14:32 * @LastEditTime: 2022-05-12 09:51:13
* @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: 用来推送公众号消息的程序库。
* *
@@ -14,22 +14,23 @@ import com.cpic.xim.config.db.OracleConfigManager;
import com.cpic.xim.config.db.OracleConfig; 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.io.IOException;
import java.net.MalformedURLException; import java.net.MalformedURLException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Vector;
import java.sql.Connection; import java.sql.Connection;
import java.sql.DriverManager; import java.sql.DriverManager;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; 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;
/** /**
* 推送微信公众号消息。 * 推送微信公众号消息。
* *
* @author Kane * @author Kane
*/ */
public class sendMessage public class sendMessage
@@ -39,13 +40,14 @@ public class sendMessage
/** /**
* 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》 * 推送天气灾害预警!接口文档参考 彭奕洁 编写《消息发送接口调用文档》
* 使用 post 方式,请求体内容以最基础的 post 格式。 * 使用 post 方式,请求体内容以最基础的 post 格式。
*
* @param officalAccountURL 产险厦门分公司公众号接口网址 * @param officalAccountURL 产险厦门分公司公众号接口网址
* @param warning 灾害预警对象 * @param warningItem 灾害预警对象
*/ */
public static void sendWeatherDisasterWarning( String officalAccountURL, public static void sendWeatherDisasterWarning( String officalAccountURL,
QWeatherDisasterWarning warning ) QWeatherDisasterWarningItem warningItem )
{ {
Vector<QWeatherDisasterWarningItem> warningItems = warning.getWarning(); // Vector<QWeatherDisasterWarningItem> warningItems = warningItem.getWarning();
StringBuilder requestBody = null; StringBuilder requestBody = null;
// 设置请求头参数 // 设置请求头参数
@@ -56,36 +58,36 @@ 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 )
// 拼接消息内容
String title = warningItem.getTitle();
String text = warningItem.getText();
String color = warningLevel.keySet().contains( warningItem.getLevel() )
? warningLevel.get( warningItem.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() );
String title = item.getTitle();
String text = item.getText();
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();
}
} }
catch ( MalformedURLException error )
{
error.printStackTrace();
}
} }
/** /**
* 检查预警是否已经推送过,通过 QWeatherDisasterWarningItem 对象的 id 属性。 * 检查预警是否已经推送过,通过 QWeatherDisasterWarningItem 对象的 id 属性。
* 查询 oracle xmcx1 数据库 wechat 表空间下 weather_disaster_notify 表, * 查询 oracle xmcx1 数据库 wechat 表空间下 weather_disaster_notify 表,
* 统计 warningID 的数量如果不为0,说明该预警已经保存过,视为已经推送过。 * 统计 warningID 的数量如果不为0,说明该预警已经保存过,视为已经推送过。
*
* @param warningID 预警的id * @param warningID 预警的id
* @return 如果推送过返回false否则返回 true。 * @return 如果推送过返回false否则返回 true。
*/ */
@@ -94,16 +96,17 @@ public class sendMessage
{ {
boolean result = false; boolean result = false;
OracleConfig dbConfig = OracleConfigManager.getOracleConfig();; OracleConfig dbConfig = OracleConfigManager.getOracleConfig();
;
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
ResultSet rs = null; ResultSet rs = null;
String jdbcURL = dbConfig.getJdbcURL(); String jdbcURL = dbConfig.getJdbcURL();
String userName = dbConfig.getUserName(); String userName = dbConfig.getUserName();
String password = dbConfig.getPassword(); String password = dbConfig.getPassword();
String sql = "select count(*) from weather_disaster_notify where notify_id = ?"; String sql = "select count(*) from weather_disaster_notify where notify_id = ?";
// Logger logger = Logger.getLogger( "com.cpicxim.wechat.officalAccount.sendMessage" ); // Logger logger = Logger.getLogger( "com.cpicxim.wechat.officalAccount.sendMessage" );
@@ -117,7 +120,7 @@ public class sendMessage
rs = stmt.executeQuery(); rs = stmt.executeQuery();
if ( rs.next() && rs.getInt( 1 ) == 0) if ( rs.next() && rs.getInt( 1 ) == 0 )
{ {
result = true; result = true;
} }
@@ -126,7 +129,7 @@ public class sendMessage
{ {
try try
{ {
if ( rs != null) if ( rs != null )
{ {
rs.close(); rs.close();
} }
@@ -138,7 +141,7 @@ public class sendMessage
try try
{ {
if ( stmt != null) if ( stmt != null )
{ {
stmt.close(); stmt.close();
} }
@@ -150,7 +153,7 @@ public class sendMessage
try try
{ {
if ( conn != null) if ( conn != null )
{ {
conn.close(); conn.close();
} }
@@ -168,16 +171,18 @@ public class sendMessage
* 保存天气预警警报数据。 * 保存天气预警警报数据。
* 保存至 oracle xmcx1 数据库 wechat 表空间下 weather_disaster_notify 表。 * 保存至 oracle xmcx1 数据库 wechat 表空间下 weather_disaster_notify 表。
* 保存的数据用来判断预警是否已经推送过,以防止反复推送数据。 * 保存的数据用来判断预警是否已经推送过,以防止反复推送数据。
* @param city 城市名称 *
* @param warning 预警数据,为 QWeatherDisasterWarningItem 对象。 * @param city 城市名称
* @throws SQLException 执行sql时可能抛出的异常。出现sql异常就回滚事务 * @param warnings 预警数据,为 QWeatherDisasterWarningItem 对象
* @throws IOException 读取数据库配置文件时可能抛出的异常 * @throws SQLException 执行sql时可能抛出的异常。出现sql异常就回滚事务
* @throws IOException 读取数据库配置文件时可能抛出的异常。
* @throws ClassNotFoundException 加载oracle jdbc驱动时可能抛出的异常。 * @throws ClassNotFoundException 加载oracle jdbc驱动时可能抛出的异常。
*/ */
public static void saveWeatherDisasterWarning( String city, QWeatherDisasterWarning warnings ) public static void saveWeatherDisasterWarning( String city,
QWeatherDisasterWarningItem warning )
throws SQLException, IOException, ClassNotFoundException throws SQLException, IOException, ClassNotFoundException
{ {
Connection conn = null; Connection conn = null;
PreparedStatement stmt = null; PreparedStatement stmt = null;
String sql = "insert into weather_disaster_notify(notify_id, sender, city," String sql = "insert into weather_disaster_notify(notify_id, sender, city,"
@@ -186,7 +191,7 @@ public class sendMessage
OracleConfig dbConfig = OracleConfigManager.getOracleConfig(); OracleConfig dbConfig = OracleConfigManager.getOracleConfig();
String jdbcURL = dbConfig.getJdbcURL(); String jdbcURL = dbConfig.getJdbcURL();
String userName = dbConfig.getUserName(); String userName = dbConfig.getUserName();
String password = dbConfig.getPassword(); String password = dbConfig.getPassword();
@@ -197,23 +202,21 @@ public class sendMessage
conn = DriverManager.getConnection( jdbcURL, userName, password ); conn = DriverManager.getConnection( jdbcURL, userName, password );
stmt = conn.prepareStatement( sql ); stmt = conn.prepareStatement( sql );
for ( QWeatherDisasterWarningItem warning : warnings.getWarning() ) conn.setAutoCommit( false );
{
java.sql.Timestamp pubTime =
new java.sql.Timestamp( warning.getPubTime().getTime() );
stmt.setString( 1, warning.getId() ); java.sql.Timestamp pubTime = new java.sql.Timestamp( warning.getPubTime().getTime() );
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(); 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(); conn.commit();
@@ -221,7 +224,7 @@ public class sendMessage
catch ( SQLException error ) catch ( SQLException error )
{ {
// 出现sql错误就回滚 // 出现sql错误就回滚
if ( conn != null) if ( conn != null )
{ {
conn.rollback(); conn.rollback();
} }
@@ -232,7 +235,7 @@ public class sendMessage
{ {
try try
{ {
if ( stmt != null) if ( stmt != null )
{ {
stmt.close(); stmt.close();
} }
@@ -244,7 +247,7 @@ public class sendMessage
try try
{ {
if ( conn != null) if ( conn != null )
{ {
conn.close(); conn.close();
} }
@@ -275,44 +278,44 @@ class WechatOfficalAccountMessageParameter
WechatOfficalAccountMessageParameter() WechatOfficalAccountMessageParameter()
{ {
tplID = 57; tplID = 57;
groupID = 1; groupID = 1;
} }
@JsonProperty( "tplid") @JsonProperty("tplid")
private int tplID; private int tplID;
@JsonProperty( "groupid") @JsonProperty("groupid")
private int groupID; private int groupID;
@JsonProperty( "first") @JsonProperty("first")
private String first; private String first;
@JsonProperty( "keyword1") @JsonProperty("keyword1")
private String keyword1; private String keyword1;
@JsonProperty( "keyword1color") @JsonProperty("keyword1color")
private String keyword1Color; private String keyword1Color;
@JsonProperty( "keyword2") @JsonProperty("keyword2")
private String keyword2; private String keyword2;
@JsonProperty( "keyword2color") @JsonProperty("keyword2color")
private String keyword2Color; private String keyword2Color;
@JsonProperty( "remark") @JsonProperty("remark")
private String remark; private String remark;
@JsonProperty( "remarkcolor") @JsonProperty("remarkcolor")
private String remarkColor; private String remarkColor;
@JsonProperty( "url") @JsonProperty("url")
private String url; private String url;
@JsonProperty( "appid") @JsonProperty("appid")
private String appid; private String appid;
@JsonProperty( "pagepath") @JsonProperty("pagepath")
private String pagePath; private String pagePath;
public int getTplID() public int getTplID()

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-05-10 11:33:41 * @LastEditTime: 2022-05-12 09:54:36
* @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:
* *
@@ -75,7 +75,7 @@ public class sendMessageTest
String city = "东山县"; String city = "东山县";
sendMessage.saveWeatherDisasterWarning( city, warning ); // sendMessage.saveWeatherDisasterWarning( city, warning );
} }
catch ( Exception error ) catch ( Exception error )
{ {

2
应用/1.0/run.bat Normal file
View File

@@ -0,0 +1,2 @@
java -jar disaster_warning-1.0-SNAPSHOT-jar-with-dependencies.jar
pause