📄 cmpp2mt.java
字号:
package com.khan.sms.cmpp2control;
import com.khan.sms.*;
import com.khan.util.*;
import com.khan.db.*;
import com.khan.sms.cmpp2.*;
import java.util.Vector;
/**
* <p>Title: </p>
*
* <p>Description: </p>
*
* <p>Copyright: Copyright (c) 2006</p>
*
* <p>Company: </p>
*
* @author not attributable
* @version 1.0
*/
public class Cmpp2MT implements Runnable {
static boolean flag = true;
CmppParam cp = CmppParam.getInstance();
SendQueue sq = SendQueue.getInstance();
public Cmpp2MT() {
common.Assert("debug:cmpp2mt线程建立!");
}
public static void stopThread() {
flag = false;
}
synchronized private Cmpp2Submit getMt(){
String strsql = "Select id, orgaddr,DestAddr_Count, destaddr, feeaddr, "
+ "serviceid, feecode, feetype, needreport, feeusertype, "
+ "userdata_len, userdata, msgfmt, at_time, valid_time, "
+ "pid, udhi, pk_total, pk_number, spid, "
+ "msglevel "
+ "From Mt "
+ "Where sendstatus = 0 "
+ "And sendcount < " + cp.RESEND_IDLE + " "
+ "And sendresult < 0 "
+ "order by sendlevel "
+ "limit 1";
DBPoolCon dbp = null;
String strs[][] = null;
//common.Assert(strsql);//
try{
dbp = cp.Cmpp_DB.get();
strs = common.poolGetRecord(dbp, strsql);
}finally{
cp.Cmpp_DB.release(dbp);
}
if(strs.length < 1)
return null;
byte pk_total = 0;
byte pk_number = 0;
byte need_report = 0;
byte meg_level = 0;
String service_id = "";
byte fee_user_type = 0;
String Fee_terminal_Id = "";
byte tp_pid = 0;
byte tp_udhi = 0;
byte msg_fmt = 0;
String msg_src = "";
String feetype = "";
String feecode = "";
String src_id = "";
byte dst_usr_tl = 0;
Vector dst_terminal_id = new Vector();
byte msg_len = 0;
String msg = "";
int seq_id = 0;
try{
pk_total = (byte) (Integer.parseInt(strs[0][17]));
pk_number = (byte) (Integer.parseInt(strs[0][18]));
need_report = (byte) (Integer.parseInt(strs[0][8]));
meg_level = (byte) (Integer.parseInt(strs[0][20]));
service_id = strs[0][5];
fee_user_type = (byte) (Integer.parseInt(strs[0][9]));
Fee_terminal_Id = strs[0][4];
tp_pid = (byte) (Integer.parseInt(strs[0][15]));
tp_udhi = (byte) (Integer.parseInt(strs[0][16]));
msg_fmt = (byte) (Integer.parseInt(strs[0][12]));
msg_src = strs[0][19];
feetype = strs[0][7];
feecode = strs[0][6];
src_id = strs[0][1];
dst_usr_tl = (byte) (Integer.parseInt(strs[0][2]));
dst_terminal_id = new Vector();
String addrs[] = strs[0][3].split(";");
for (int i = 0; i < addrs.length; i++) {
dst_terminal_id.add(addrs[i]);
}
msg_len = (byte) (Integer.parseInt(strs[0][10]));
msg = strs[0][11];
seq_id = Integer.parseInt(strs[0][0]);
}catch(java.lang.NullPointerException e){
cp.ErrMain.logOut("ID:"+strs[0][0]+", MT记录中出现空字段",e);
return null;
}
Cmpp2Submit cs = new Cmpp2Submit(pk_total, pk_number, need_report,
meg_level, service_id, fee_user_type,
Fee_terminal_Id, tp_pid, tp_udhi,
msg_fmt, msg_src, feetype,
feecode, src_id, dst_usr_tl,
dst_terminal_id, msg_len, msg);
cs.setSeqID(seq_id);
return cs;
}
private int mtSuccess (int id){
String strsql = "Update Mt Set sendstatus = 1, sendcount =sendcount + 1 "
+"Where id = " + id;
int i = 0;
DBPoolCon dbp = null;
//common.Assert(strsql);
try{
dbp = cp.Cmpp_DB.get();
i = common.PoolExcuteSql(dbp, strsql);
}finally{
cp.Cmpp_DB.release(dbp);
}
return i;
}
public void run() {
common.Assert("debug:cmpp2mt线程启动!");
while (flag ) {
common.sleep(cp.SEND_SLEEP);
if (Cmpp2Login.connected) { //如果登录失败,则不进行socket传输
Cmpp2Submit cs = getMt();
if (cs == null) continue;
cp.LogMain.logOut(cs.toString()); //log
//MsgID.PrintDataHex(cs.encodeCmpp());
if (sq.put(cs.encodeCmpp())) {
mtSuccess(cs.getSeqID());
}
}
}
common.Assert("debug:cmpp2mt线程停止!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -