📄 smsdeliverthread.java
字号:
package com.tssx.ebiz.sgip;import java.sql.*;import java.io.*;import java.util.*;import com.tssx.ebiz.smscenter.SMSQueue;import com.tssx.ebiz.common.*;/** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2003</p> * <p>Company: </p> * @author unascribed * @version 1.0 */public class SMSDeliverThread implements Runnable {// Connection m_dbConn=null; private int m_seqAddr; private int m_seqDate; private int m_sequence; private int m_messageLength; private int m_commandID; private String m_spNumber; private String m_userNumber; private int m_tp_pid; private int m_tp_udhi; private int m_messageCoding; private int m_msgLen; private String m_messageContent; private String m_reserve; public SMSDeliverThread(String messageContent,String userNumber,int messageCoding) { super(); m_messageContent=messageContent; m_userNumber=userNumber; m_messageCoding=messageCoding; }// public SMSDeliverThread(Connection con,String messageContent,String userNumber,int messageCoding) {// super();// m_dbConn=con;// m_messageContent=messageContent;// m_userNumber=userNumber;// m_messageCoding=messageCoding;// } public SMSDeliverThread(int seqAddr,int seqDate,int sequence,int messageLength,int commandID, String spNumber,String userNumber,int tp_pid,int tp_udhi,int messageCoding, int msgLen,String messageContent,String reserve) { super(); m_seqAddr=seqAddr; m_seqDate=seqDate; m_sequence=sequence; m_messageLength=messageLength; m_commandID=commandID; m_spNumber=spNumber; m_userNumber=userNumber; m_tp_pid=tp_pid; m_tp_udhi=tp_udhi; m_messageCoding=messageCoding; m_msgLen=msgLen; m_messageContent=messageContent; m_reserve=reserve; }// public SMSDeliverThread(Connection con,int seqAddr,int seqDate,int sequence,int messageLength,int commandID,// String spNumber,String userNumber,int tp_pid,int tp_udhi,int messageCoding,// int msgLen,String messageContent,String reserve) {// super();// m_dbConn=con;// m_seqAddr=seqAddr;// m_seqDate=seqDate;// m_sequence=sequence;// m_messageLength=messageLength;// m_commandID=commandID;// m_spNumber=spNumber;// m_userNumber=userNumber;// m_tp_pid=tp_pid;// m_tp_udhi=tp_udhi;// m_messageCoding=messageCoding;// m_msgLen=msgLen;// m_messageContent=messageContent;// m_reserve=reserve;// } protected static Connection getConnection() throws Exception { String driverName = SMReceiver.driverName; String url = SMReceiver.url; String user=SMReceiver.user; String password=SMReceiver.password; Connection con = null; //连接数据库 Class.forName(driverName).newInstance(); con = DriverManager.getConnection(url,user,password); return con; } public static String uncode(String strInput) { if (strInput == null) return null; char[] chardata1=new char[strInput.length()]; strInput.getChars(0, strInput.length(), chardata1, 0); char[] chardata2=new char[chardata1.length/2]; int i,j; i=0; j=0; while(i<chardata1.length){ chardata2[j]=(char)((chardata1[i]<<8) & 0xff00); chardata2[j]=(char)((chardata1[i+1] & 0xff) | chardata2[j]); i=i+2; j=j+1; } return new String(chardata2); } public void run() { Connection m_dbConn=null; PreparedStatement stmt=null; try{ m_dbConn = getConnection(); Calendar myDate=java.util.Calendar.getInstance(); String myDay=Integer.toString(myDate.get(myDate.DATE)); if(myDay.length()==1) myDay="0"+myDay; String biao="TSMS20"+myDay; ResultSet rs=null; String sql=""; sql="insert into "+biao+" " +"(seqAddr,seqDate,sequence,messageLength,commandID," +"spNumber,userNumber,tp_pid,tp_udhi,messageCoding," +"msgLen,messageContent,reserve) values (?,?,?,?,?,?,?,?,?,?,?,?,?)"; stmt=m_dbConn.prepareStatement(sql); stmt.setInt(1,m_seqAddr); stmt.setInt(2,m_seqDate); stmt.setInt(3,m_sequence); stmt.setInt(4,m_messageLength); stmt.setInt(5,m_commandID); stmt.setString(6,m_spNumber); stmt.setString(7,m_userNumber); stmt.setInt(8,m_tp_pid); stmt.setInt(9,m_tp_udhi); stmt.setInt(10,m_messageCoding); stmt.setInt(11,m_msgLen); if(m_messageCoding==8){ m_messageContent=uncode(m_messageContent); } stmt.setString(12,m_messageContent); stmt.setString(13,m_reserve); stmt.executeUpdate(); stmt.close(); if(m_userNumber.indexOf("86")==0){ m_userNumber=m_userNumber.substring(2,m_userNumber.length()); m_userNumber=m_userNumber.trim(); } if(m_messageContent!=null){ m_messageContent=m_messageContent.trim(); }else{ m_messageContent=""; } System.out.println(m_userNumber); System.out.println(m_messageContent);// if(m_messageContent.toUpperCase().indexOf("AMK")==0){//湖南买卡// CardSellBySMS cardsellbysms=new CardSellBySMS();// System.out.println("init cardsellbysms");// cardsellbysms.sellCardBySMS(m_dbConn,m_userNumber,m_messageContent);// System.out.println("succ");// System.out.println("买卡业务");// }else{// moSendBean mosendbean=new moSendBean();// mosendbean.insertSmscust(m_dbConn,m_messageContent,m_userNumber);// System.out.println("其他业务");// } String content=""; int bj=0; int bj1=0; int bj2=0; int bj3=0; int i=0; //SysConfig sysconfig=new SysConfig(); if(m_messageContent.toUpperCase().indexOf("0000")==0){//显示用户所有定制信息 sql="select serverName,dropOrder from tsrvspsv where serverID in (select serverID from tsmscust where mobileNo=? and statusID=0)"; stmt=m_dbConn.prepareStatement(sql); stmt.setString(1,m_userNumber); rs=stmt.executeQuery(); while(rs.next()){ content=content+"您定制了:"+rs.getString("serverName").trim()+"服务,取消定制发"+rs.getString("dropOrder").trim()+"到81662\r\n"; } if(content==null || content.equals("")){ content="您没有定制任何信息,请参考www.165xj.com"; } stmt.close(); long queueID=KeyContainer.getNewSequence(m_dbConn,"tsmsqueuid"); String destination=m_userNumber; //String sourceAddr=""; //String destinationAddr=mobileNo; //String content=""; short submitMulti=0; int fileNum=0; //long userID=myMember.getUserID(); String spNumber=SysConfig.getParamValue(m_dbConn,"ASMS","spNumber"); String serviceType=SysConfig.getParamValue(m_dbConn,"ASMS","serviceType");//mf String corpID=SysConfig.getParamValue(m_dbConn,"ASMS","corpID"); int feeType=1;//0 1免费 2收费 3包月费 4sp实现收费 String feeValue="0"; String givenValue="0"; int morelatetoMTFlag=0;//0mo的第一条 1mo引起的不是第一条 2普通mt 3系统mt int reportFlag=1;//0出错返回 1一定返回 2不返回 3报月 SMSQueue smsqueue=new SMSQueue(); smsqueue.insert(m_dbConn,queueID,"86"+spNumber,"86"+destination,content,submitMulti,fileNum, spNumber,corpID,serviceType,feeType,feeValue,givenValue,morelatetoMTFlag,reportFlag); }else{ if(m_messageContent.toUpperCase().indexOf("QX0")==0){//取消用户所有定制信息 sql="update tsmscust set statusID=8 where mobileNo=? and (serverID in (select serverID from tsrvspsv where spid in (select userID from topmusrs where (corpID is null or corpID='')))) "; stmt=m_dbConn.prepareStatement(sql); stmt.setString(1,m_userNumber); bj=stmt.executeUpdate(); if(bj==0){ content="您没有定制任何信息,请参考www.165xj.com"; }else{ content="您已经取消您在www.165xj.com的定制所有服务,欢迎您下次再次使用"; } stmt.close(); long queueID=KeyContainer.getNewSequence(m_dbConn,"tsmsqueuid"); String destination=m_userNumber; //String sourceAddr=""; //String destinationAddr=mobileNo; //String content=""; short submitMulti=0; int fileNum=0; //long userID=myMember.getUserID(); String spNumber=SysConfig.getParamValue(m_dbConn,"ASMS","spNumber"); String serviceType=SysConfig.getParamValue(m_dbConn,"ASMS","serviceType");//mf String corpID=SysConfig.getParamValue(m_dbConn,"ASMS","corpID"); int feeType=1;//0 1免费 2收费 3包月费 4sp实现收费 String feeValue="0"; String givenValue="0"; int morelatetoMTFlag=0;//0mo的第一条 1mo引起的不是第一条 2普通mt 3系统mt int reportFlag=1;//0出错返回 1一定返回 2不返回 3报月 SMSQueue smsqueue=new SMSQueue(); smsqueue.insert(m_dbConn,queueID,"86"+spNumber,"86"+destination,content,submitMulti,fileNum, spNumber,corpID,serviceType,feeType,feeValue,givenValue,morelatetoMTFlag,reportFlag); }else{ int serverID=0; int payType=0; double pays=0.0; String serverType=""; sql="select serverID,serverName,orderCustomize,orderGuide,dropOrder,payType,pays,serverType from tsrvspsv where orderCustomize=? or orderGuide=? or dropOrder=?"; stmt=m_dbConn.prepareStatement(sql); stmt.setString(1,m_messageContent); stmt.setString(2,m_messageContent); stmt.setString(3,m_messageContent); rs=stmt.executeQuery(); if(rs.next()){ serverID=rs.getInt("serverID"); payType=rs.getInt("payType");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -