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

📄 smqueue.java

📁 WAP PUSH后台源码,WAP PUSH后台源码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.tssx.ebiz.sgip;

import java.sql.*;
import java.util.*;
import java.text.*;
import java.io.*;

public class SMQueue {


     /** 数据库连接 */
     Connection dbconn = null;
     public SMQueue(Connection conn) {
          dbconn = conn;
     }
     /**
      * 取得队列中所有当前不处于‘发送中状态’的短消息ID
      * @return SMMessage数组,不包含发送中的短消息
      * @exception 不能存取短消息队列,可能的原因是不能存取数据库
      */
     public synchronized SMMessage getMessage()
               throws SMQueueAccessException, SMParameterException {

          if (dbconn == null)
               throw new SMQueueAccessException("DB dbconnection error");

          SMMessage smmsg = new SMMessage();

          Statement stmtQuery = null;
          Statement stmtUpdate = null;
          boolean autoCommit = false;

          try {

               stmtQuery = dbconn.createStatement();
               autoCommit = dbconn.getAutoCommit();
               dbconn.setAutoCommit(false);

               String sqlQuery="select * from tsmsqueu where sendStat=0 and queueID=(select max(queueID) from tsmsqueu where sendStat=0) for update";
               ResultSet rs =stmtQuery.executeQuery(sqlQuery);

               if (!rs.next()) {
                    if (autoCommit) {
                         dbconn.commit();
                         dbconn.setAutoCommit(autoCommit);
                    }
                    return null;
               }
               smmsg.content = rs.getString("content");
               smmsg.queueID = rs.getLong("queueID");
               smmsg.priorityFlag = rs.getInt("priorityFlag");
               smmsg.scheduleTime = rs.getDate("scheduleTime");
               smmsg.sendCount = rs.getInt("sendCount") + 1;
               smmsg.sendStat = 1;
               smmsg.sourceAddr = rs.getString("sourceAddr");
               smmsg.submitMulti = rs.getInt("submitMulti");
               smmsg.validatyPeriod = rs.getDate("validatyPeriod");
               smmsg.destinationAddr = rs.getString("destinationAddr");
               smmsg.setUserID(rs.getLong("userID"));
               smmsg.setFileNum(rs.getInt("fileNum"));

               smmsg.spNumber=rs.getString("spNumber");
               smmsg.corpID=rs.getString("corpID");
               smmsg.serviceType=rs.getString("serviceType");
               smmsg.feeType=rs.getInt("feeType");
               smmsg.feeValue=rs.getString("feeValue");
               smmsg.givenValue=rs.getString("givenValue");
               smmsg.morelatetoMTFlag=rs.getInt("morelatetoMTFlag");
               smmsg.reportFlag=rs.getInt("reportFlag");
               rs.close();
               stmtQuery.close();
               long l=smmsg.getQueueID();

               stmtUpdate = dbconn.createStatement();
               String sqlUpdate="update tsmsqueu set sendCount=sendCount+1,sendStat=1 where queueID="+l;
               stmtUpdate.executeUpdate(sqlUpdate);
               stmtUpdate.close();
               if (autoCommit) {
                    dbconn.commit();
                    dbconn.setAutoCommit(autoCommit);
               }
               switch(smmsg.submitMulti){
                    case 0:
                         break;
                    case 1:
                         stmtQuery = dbconn.createStatement();
                         ResultSet rs1 =stmtQuery.executeQuery("select destinationAddr from tsmsmult where queueID=" +l);
                         Vector vector1 = new Vector();
                         while (rs1.next()){
                              vector1.addElement(rs1.getString("destinationAddr"));
                         }
                         rs1.close();
                         stmtQuery.close();
                         if (vector1.size() > 0){
                              smmsg.destAddr = new String[vector1.size()];
                         }
                         for (int i = 0; i < vector1.size(); i++){
                              smmsg.destAddr[i] = vector1.elementAt(i).toString();
                         }
                         break;
                    case 2:
                         try{
                              int i=0,j=0;
                              byte m_byte[] = new byte[140];
//                              String fileName=smmsg.content;
                              String fileName=smmsg.content+"_0";
                              FileInputStream fis = new FileInputStream(fileName);
                              while(fis.available() != 0) {
                                   j = fis.read();
                                   m_byte[i++] = (new Integer(j)).byteValue();
                                   if(i >= 140)	break;
                              }
                              fis.close();
                              smmsg.binaryContent=m_byte;
                         }catch(Exception e){
                              System.out.println("读单个二进制文件出错:"+e);
                         }
                         break;
                    case 3:
//                         stmtQuery = dbconn.createStatement();
//                         ResultSet rs3 =stmtQuery.executeQuery("select content from tsmsfile where queueID=" +l+ " order by content");
//                         Vector vector3 = new Vector();
//                         while (rs3.next()){
//                              vector3.addElement(rs3.getString("content"));
//                         }
//                         rs3.close();
//                         stmtQuery.close();
//                         if (vector3.size() > 0){
//                              smmsg.binaryContentMulti = new byte[vector3.size()][140];
//                         }
//                         try{
//                              for (int k = 0; k < vector3.size(); k++){
//                                   int i=0,j=0;
//                                   byte m_byte[] = new byte[140];
//                                   String fileName=vector3.elementAt(k).toString();
//                                   FileInputStream fis = new FileInputStream(fileName);
//                                   while(fis.available() != 0) {
//                                        j = fis.read();
//                                        m_byte[i++] = (new Integer(j)).byteValue();
//                                        if(i >= 140)	break;
//                                   }
//                                   fis.close();
//                                   smmsg.binaryContentMulti[k]=m_byte;
//                              }
//                         }catch(Exception e){
//                              System.out.println("读多个二进制文件出错:"+e);
//                         }
//                         break;
                         if (smmsg.fileNum > 0){
                              smmsg.binaryContentMulti = new byte[smmsg.fileNum][140];
                         }
                         try{
                              for (int k = 0; k < smmsg.fileNum; k++){
                                   int i=0,j=0;
                                   byte m_byte[] = new byte[140];
                                   String fileName=smmsg.content+"_"+k;
                                   FileInputStream fis = new FileInputStream(fileName);
                                   while(fis.available() != 0) {
                                        j = fis.read();
                                        m_byte[i++] = (new Integer(j)).byteValue();
                                        if(i >= 140)	break;
                                   }
                                   fis.close();
                                   smmsg.binaryContentMulti[k]=m_byte;
                              }
                         }catch(Exception e){
                              System.out.println("读多个二进制文件出错:"+e);
                         }
                         break;
                    case 4:
                         try{
                              int i=0,j=0;
                              byte m_byte[] = new byte[140];
                              String fileName=smmsg.content+"_0";
                              FileInputStream fis = new FileInputStream(fileName);
                              while(fis.available() != 0) {
                                   j = fis.read();
                                   m_byte[i++] = (new Integer(j)).byteValue();
                                   if(i >= 140)	break;
                              }
                              fis.close();
                              smmsg.content=new String(m_byte);
                         }catch(Exception e){
                              System.out.println("读单个文本文件出错:"+e);
                         }
                         break;
                    case 5:
//                         stmtQuery = dbconn.createStatement();
//                         ResultSet rs5 =stmtQuery.executeQuery("select content from tsmsfile where queueID=" +l+ " order by content");
//                         Vector vector5 = new Vector();
//                         while (rs5.next()){
//                              vector5.addElement(rs5.getString("content"));
//                         }
//                         rs5.close();
//                         stmtQuery.close();
//                         if (vector5.size() > 0){
//                              smmsg.contentMulti = new String[vector5.size()];
//                         }
//                         try{
//                              for (int k = 0; k < vector5.size(); k++){
//                                   int i=0,j=0;
//                                   byte m_byte[] = new byte[140];
//                                   String fileName=vector5.elementAt(k).toString();
//                                   FileInputStream fis = new FileInputStream(fileName);
//                                   while(fis.available() != 0) {
//                                        j = fis.read();
//                                        m_byte[i++] = (new Integer(j)).byteValue();
//                                        if(i >= 140)	break;
//                                   }
//                                   fis.close();
//                                   smmsg.contentMulti[k]=new String(m_byte);
//                              }
//                         }catch(Exception e){
//                              System.out.println("读多个文本文件出错:"+e);
//                         }
//                         break;
                         if (smmsg.fileNum > 0){
                              smmsg.contentMulti = new String[smmsg.fileNum];
                         }
                         try{
                              for (int k = 0; k < smmsg.fileNum; k++){
                                   int i=0,j=0;
                                   byte m_byte[] = new byte[140];

⌨️ 快捷键说明

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