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

📄 cmpp3mt.java

📁 java支持的短信平台
💻 JAVA
字号:
package com.khan.sms.cmpp3control;

import com.khan.util.common;
import com.khan.sms.cmpp3.*;
import com.khan.db.DBPoolCon;
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 Cmpp3MT /*implements Runnable*/ {
  static boolean flag = true;

  SendQueue sq = null;
  CmppParam cp = null;


  public Cmpp3MT(CmppParam cp, SendQueue sq) {
    this.cp = cp;
    this.sq = sq;
    //this.rq = rq;
    //common.Assert("debug:"+Thread.currentThread().getName()+"线程建立!");
  }


  public static void stopThread() {
    flag = false;
  }

  synchronized private Cmpp3Submit getMt() {
    String strsql = "Select top 1 [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 ,linkid "
                    + "From SP_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;
    String linkid = "";

    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]);
      linkid = (strs[0][21] == null) ? "" : strs[0][21];

    } catch (java.lang.NullPointerException e) {
      cp.ErrMain.logOut("ID:" + strs[0][0] + ", MT记录中出现空字段", e);
      return null;
    }

    Cmpp3Submit cs = new Cmpp3Submit(pk_total, pk_number,
                                     need_report, meg_level,
                                     service_id, fee_user_type,
                                     (byte) 0x00, Fee_terminal_Id,
                                     tp_pid, tp_udhi,
                                     msg_fmt, msg_src,
                                     feetype, feecode,
                                     src_id, dst_usr_tl,
                                     dst_terminal_id, (byte) 0x00,
                                     msg_len, msg,
                                     linkid);
    cs.setSeqID(seq_id);

    return cs;
  }


  private int mtSuccess(int id) {
    String strsql = "Update SP_Mt Set sendstatus = 1, sendcount =sendcount + 1 "
                    + "Where [id] = " + id;
    int i = 0;
    DBPoolCon dbp = null;
    try {
      dbp = cp.Cmpp_DB.get();
      i = common.PoolExcuteSql(dbp, strsql);
    } finally {
      cp.Cmpp_DB.release(dbp);
    }
    return i;
  }


  public void run() {
    if (cp.Cmpp_Socket.getConnected()) { //如果登录失败,则不进行socket传输
      Cmpp3Submit cs = getMt();
      if (cs == null) {
        return;
      }

      cp.LogMain.logOut(cs.toString());
      sq.removeTimeOut(cp.MAX_ACK_TIMEOUT);
      if (sq.put(cs.getSeqID(), cs.encodeCmpp())) {
        mtSuccess(cs.getSeqID());
      }
    }

  }


}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -