【君贤短信】取回上行短信

package com.gdcy.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID;

import org.apache.log4j.Logger;

public class SmsRequestHandler {
	protected final static Logger log = Logger.getLogger(SmsRequestHandler.class);
	public static void smsHandle(String responseString) {
		if(responseString != null && !responseString.trim().equals("")){
			if(responseString.indexOf("/") > -1){
				String returnMessage = responseString.substring(0, responseString.indexOf("/"));
				if(returnMessage != null && !returnMessage.trim().equals("")){
					if(returnMessage.trim().equalsIgnoreCase("ERROR")){
						String errorReason = responseString.substring(responseString.indexOf("/")+1);
						//System.out.println("errorReason = "+errorReason);
						if(errorReason != null && errorReason.trim().equals("无回复信息")){
							//to do
						}else if(errorReason != null && errorReason.trim().equals("账号、密码错误")){
							log.error("【君贤短信】取回上行短信的账号、密码错误 ");
						}else{
							log.error("【君贤短信】取回上行短信未知错误原因: "+errorReason);
						}
					}else if(returnMessage.trim().equalsIgnoreCase("OK")){
						//返回数据格式:OK/2007-1-1%%13:15:07%%13602683188%%活动安排在什么地方?$$2007-1-1%%13:18:31%%13924786445%%我决定不参加。$$
						String allResult = responseString.substring(responseString.indexOf("/")+1);
						if(allResult != null && !allResult.trim().equals("")){
							Connection conn = null;
					        PreparedStatement preparedStatement = null;
							try {
								if(allResult.indexOf("$$") < 0){
									log.error("【君贤短信】返回的数据格式不正确,找不到$$。");
								}else{
									String[] results = allResult.split("\\$\\$");
									if(results != null && results.length > 0){
										String driver = "com.mysql.jdbc.Driver";   
								        String url = "jdbc:mysql://127.0.0.1:3306/sms";   
								        String user = "root";   
								        String password = "123456"; 
								        String preparedSql = "INSERT INTO `upsms`

(id,strDate,strTime,phone,content,receiveTime,`status`,`version`,createdTime) VALUES (?,?,?,?,?,?,?,?,?)";
								        Class.forName(driver);
								        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
								        conn = DriverManager.getConnection(url, user, password);
							            conn.setAutoCommit(false);
								        preparedStatement = conn.prepareStatement(preparedSql);
								        for (String result : results) {
											if(result != null && !result.trim().equals("")){
												if(result.indexOf("%%") < 0){
													log.error("【君贤短信】返回的数据格式不正确,找不到%%。");
												}else{
													//2007-1-1%%13:15:07%%13602683188%%活动安排在什么地方?
													String[] datas = result.split("\\%\\%");
													if(datas != null && datas.length > 3){
														String dataDate = datas[0];
														String dataTime = datas[1];
														String dataPhone = datas[2];
														String dataContent = datas[3];
														/*System.out.println("dataDate = "+dataDate);
														System.out.println("dataTime = "+dataTime);
														System.out.println("dataPhone = "+dataPhone);
														System.out.println("dataContent = "+dataContent);*/
											            if (!conn.isClosed()) {
											            	preparedStatement.setString(1, UUID.randomUUID().toString());
											                preparedStatement.setString(2, dataDate);
											                preparedStatement.setString(3, dataTime);
											                preparedStatement.setString(4, dataPhone);
											                preparedStatement.setString(5, dataContent);
															Date receiveTime = dateFormat.parse(dataDate+" 

"+dataTime);
											                preparedStatement.setDate(6, new java.sql.Date(receiveTime.getTime()));
											                preparedStatement.setInt(7, 0);
											                preparedStatement.setInt(8, 0);
											                preparedStatement.setDate(9, new java.sql.Date(new Date().getTime()));
											                preparedStatement.addBatch();
											            }
													}else{
														log.error("【君贤短信】返回的数据格式不正确,%%拆分后数量少于4个

。");
													}
												}
											}
										}
										preparedStatement.executeBatch();
										conn.commit();
										preparedStatement.clearBatch();
									}else{
										log.error("【君贤短信】返回的数据格式不正确。");
									}
								}
							} catch (SQLException e) {
								e.printStackTrace();
							} catch (ParseException e) {
								e.printStackTrace();
							} catch (ClassNotFoundException e) {
								e.printStackTrace();
							}finally{
								try {
									if(preparedStatement != null){
										preparedStatement.close();
										preparedStatement = null;
									}
									if(conn != null){
										conn.close();
										conn = null;
									}
								} catch (SQLException e) {
									e.printStackTrace();
								}
							}
						}
					}else{
						//ERROR/账号、密码错误 
						log.error("【君贤短信】返回未确定结果:"+responseString);
					}
				}
			}else{
				//返回的数据格式不正确
				log.error("【君贤短信】返回的数据格式不正确,找不到/。");
			}
		}
	}

}

 

【君贤短信】取回上行短信操作类SmsRequestHandler,想要再好就要封装数据库操作了。

 

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

蕃薯耀分享 2013年5月8日 20:57:10 星期三

 

资源下载链接为: https://pan.quark.cn/s/d9ef5828b597 在本文中,我们将探讨如何通过 Vue.js 实现一个带有动画效果的“回到顶部”功能。Vue.js 是一款用于构建用户界面的流行 JavaScript 框架,其组件化和响应式设计让实现这种交互功能变得十分便捷。 首先,我们来分析 HTML 代码。在这个示例中,存在一个 ID 为 back-to-top 的 div 元素,其中包含两个 span 标签,分别显示“回到”和“顶部”文字。该 div 元素绑定了 Vue.js 的 @click 事件处理器 backToTop,用于处理点击事件,同时还绑定了 v-show 指令来控制按钮的显示与隐藏。v-cloak 指令的作用是在 Vue 实例渲染完成之前隐藏该元素,避免出现闪烁现象。 CSS 部分(backTop.css)主要负责样式设计。它首先清除了一些默认的边距和填充,对 html 和 body 进行了全屏布局,并设置了相对定位。.back-to-top 类则定义了“回到顶部”按钮的样式,包括其位置、圆角、阴影、填充以及悬停时背景颜色的变化。此外,与 v-cloak 相关的 CSS 确保在 Vue 实例加载过程中隐藏该元素。每个 .page 类代表一个页面,每个页面的高度设置为 400px,用于模拟多页面的滚动效果。 接下来是 JavaScript 部分(backTop.js)。在这里,我们创建了一个 Vue 实例。实例的 el 属性指定 Vue 将挂载到的 DOM 元素(#back-to-top)。data 对象中包含三个属性:backTopShow 用于控制按钮的显示状态;backTopAllow 用于防止用户快速连续点击;backSeconds 定义了回到顶部所需的时间;showPx 则规定了滚动多少像素后显示“回到顶部”按钮。 在 V
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值