⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cmpp2mt.java

📁 java支持的短信平台
💻 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 + -