📄 processormsgthread.java
字号:
package com.mdream.sms;
import com.mdream.comm.*;
import java.sql.*;
import java.io.*;
import java.util.*;
import java.net.*;
import java.lang.Object;
import org.apache.log4j.*;
import org.apache.log4j.Logger;
public class ProcessorMsgThread
extends Thread {
static Logger log = Logger.getLogger("sxsmgp");
private ServerMsgThread servermsgthr = null;
private boolean stop = false;
private String question = "";
String[] numberdis = {
"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
String[] letterdis = {
"a", "b", "c", "d", "e", "f", "g", "h", "i", "g", "k", "l", "m", "n",
"o", "p", "q", "r", "s", "p", "u", "v", "w", "x", "y", "z"};
String[] LETTERDIS = {
"A", "B", "C", "D", "E", "F", "G", "H", "I", "G", "K", "L", "M", "N",
"O", "P", "Q", "R", "S", "P", "U", "V", "W", "X", "Y", "Z"};
String[] chuqu = {
" ", "+", "#", "$", "*"};
public ProcessorMsgThread(ServerMsgThread servermsgthr) {
this.servermsgthr = servermsgthr;
}
public void run() {
log.info("--------(xiao ling tong) SMS Processor Start at " +
new java.util.Date().toString());
while (!stop) {
smsprocessor();
servermsgthr.getSendMsgThread().setsendrun(true);
setprowait(true);
//suspend();
}
log.info("--------(xiao ling tong) SMS Processor Stop at " +
new java.util.Date().toString());
}
public boolean IsCanDealCommand(String command, String toPhone) {
Connection conn = null;
String code = "";
String data = "";
boolean isbool = false;
log.info("--------(xiao ling tong) IsCanDealCommand command:" +
command);
log.info("--------(xiao ling tong) toPhone.substring(0,4):" +
toPhone.substring(0, 4).toString());
if (toPhone.startsWith("5888")) {
isbool = true;
}
else {
isbool = false;
}
return isbool;
}
private void sepData(String msgContent, String Code, String Data) {
int I;
int nleg;
int singlemsg;
boolean num = false;
boolean letlow = false;
boolean letupp = false;
nleg = msgContent.length();
msgContent = msgContent.trim();
I = 0;
while (I < nleg) {
String midstr = msgContent.substring(I, I);
log.info("--------(xiao ling tong) midstr:" + midstr);
for (int j = 0; j < numberdis.length; j++) {
if (midstr.equals(numberdis[j])) {
Data = Data + midstr;
num = false;
break;
}
else {
num = true;
}
}
for (int m = 0; m < letterdis.length; m++) {
if (midstr.equals(letterdis[m])) {
Code = Code + midstr.toUpperCase();
letlow = false;
break;
}
else {
letlow = true;
}
}
for (int n = 0; n < LETTERDIS.length; n++) {
if (midstr.equals(LETTERDIS[n])) {
Code = Code + midstr;
letupp = false;
break;
}
else {
letupp = true;
}
}
I += 1;
}
I = 0;
while (I < nleg && num && letlow && letupp) {
String midchina = msgContent.substring(I, I);
Data = Data + midchina;
I += 1;
}
}
public String getsvccode(String toPhone, String command) {
Connection conn = null;
String str = "";
try {
conn = DBMgr.getCon("qqqsms");
PreparedStatement stmt = conn.prepareStatement(
"select * from CommandName where ToPhone = ? and command = ?");
stmt.setString(1, toPhone);
stmt.setString(2, command);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
str = rs.getString("svccode");
}
rs.close();
stmt.close();
}
catch (Exception e) {
log.info(
"--------(xiao ling tong) log.info getsvccode data!!!");
}
finally {
try {
if (conn != null) {
conn.close();
}
}
catch (Exception ie) {
}
}
return str;
}
public int getrequesttype(String toPhone, String command) {
Connection conn = null;
int type = 1;
try {
conn = DBMgr.getCon("qqqsms");
PreparedStatement stmt = conn.prepareStatement(
"select * from CommandName where ToPhone = ? and command = ? ");
stmt.setString(1, toPhone);
stmt.setString(2, command);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
type = rs.getInt("sendtype");
}
rs.close();
stmt.close();
}
catch (Exception e) {
log.info(
"--------(xiao ling tong) system display not Analyze command deal type");
}
finally {
try {
if (conn != null) {
conn.close();
}
}
catch (Exception ex) {
}
}
log.info("--------(xiao ling tong) type :" + type);
return type;
}
/**
* 消息发送
* @param phone String 用户号码
* @param msg String 消息内容
* @return boolean 返回正确执行的布尔量
*/
private boolean doSendMessage(String phone, String tophone, String svccode,
String msg) {
log.info(phone);
log.info(msg);
msg = msg.trim();
Connection conn = null;
PreparedStatement stmt = null;
String feecode = "000000";
if (tophone.startsWith("5888")) {
tophone = "118" + tophone;
}
if (svccode.equals("HELP")) {
feecode = "000000";
}
else if (svccode.equalsIgnoreCase("YCXY")) {
feecode = "000050";
}
else if (svccode.equalsIgnoreCase("DXQQ")) {
feecode = "000200";
}
try {
conn = DBMgr.getCon("qqqsms");
if (msg.length() <= 45) {
stmt = conn.prepareStatement("insert into tsubmit(SubType,NeedReport,Priority,ServiceID,FeeType,FeeCode,MsgFormat,SrcTermID,ChargeTermID,DestTermIDCount,DestTermID,MsgContent,ValidTime,isdeal,spid) values(?,?,?,?,?,?,?,?,?,?,?,?,now(),?,?)");
stmt.setInt(1, 2);
stmt.setInt(2, 1);
stmt.setInt(3, 0);
stmt.setString(4, svccode);
stmt.setString(5, "01");
stmt.setString(6, feecode);
stmt.setString(7, "15");
stmt.setString(8, tophone);
stmt.setString(9, phone);
stmt.setInt(10, 1);
stmt.setString(11, phone);
stmt.setString(12, msg);
stmt.setInt(13, 0);
stmt.setString(14, "02900050");
stmt.executeUpdate();
}
else if (msg.length() <= 90 && msg.length() > 45) {
stmt = conn.prepareStatement("insert into tsubmit(SubType,NeedReport,Priority,ServiceID,FeeType,FeeCode,MsgFormat,SrcTermID,ChargeTermID,DestTermIDCount,DestTermID,MsgContent,ValidTime,isdeal,spid) values(?,?,?,?,?,?,?,?,?,?,?,?,now(),?,?)");
stmt.setInt(1, 2);
stmt.setInt(2, 1);
stmt.setInt(3, 0);
stmt.setString(4, svccode);
stmt.setString(5, "01");
stmt.setString(6, feecode);
stmt.setString(7, "15");
stmt.setString(8, tophone);
stmt.setString(9, phone);
stmt.setInt(10, 1);
stmt.setString(11, phone);
stmt.setString(12, msg.substring(0, 45));
stmt.setInt(13, 0);
stmt.setString(14, "02900050");
stmt.executeUpdate();
stmt = conn.prepareStatement("insert into tsubmit(SubType,NeedReport,Priority,ServiceID,FeeType,FeeCode,MsgFormat,SrcTermID,ChargeTermID,DestTermIDCount,DestTermID,MsgContent,ValidTime,isdeal,spid) values(?,?,?,?,?,?,?,?,?,?,?,?,now(),?,?)");
stmt.setInt(1, 2);
stmt.setInt(2, 1);
stmt.setInt(3, 0);
stmt.setString(4, svccode);
stmt.setString(5, "01");
stmt.setString(6, feecode);
stmt.setString(7, "15");
stmt.setString(8, tophone);
stmt.setString(9, phone);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -