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

📄 mmssmt.java

📁 彩信网关程序,SP程序,包含移动彩信代码和电信彩信代码!供学习之用
💻 JAVA
字号:
package com.hxyh.sanny.mms.cmcc.bussi;

import com.hxyh.sanny.mms.cmcc.mm7.vasp.message.*;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.service.MM7Sender;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.common.*;
import java.io.*;
import java.util.*;
import java.text.*;
import com.hxyh.sanny.mms.cmcc.mm7.vasp.conf.*;

import com.hxyh.sanny.mms.cmcc.base.*;
import java.sql.*;


public class MMSSMT implements Runnable {

	static int m_Tid = 10000;

	Connection m_oCon = null;

	Statement m_oRsStat = null;

	Statement m_oCmdStat = null;

	private Config_XML m_oXmlParser = new Config_XML();

	Map mtmap = new HashMap();

	MM7Config mm7Config[] = null;

	public MMSSMT() {
		try {
			Properties p = new Properties();
			p.load(new FileInputStream(System.getProperty("user.dir")
					+ "/mmsgate.ini"));
			String mt[] = p.getProperty("MTKEY").split(",");
			for (int i = 0; i < mt.length; i++) {
				MM7Config oTmp = new MM7Config(p.getProperty("MT" + mt[i]));
				oTmp.setConnConfigName(p.getProperty("MTCONFIG"));
				MM7Sender oSend = new MM7Sender(oTmp);
				mtmap.put(mt[i], oSend);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("��ʼ��MT�̳߳ɹ�----");
	}

	private MMContent MakeMMS() {
		MMContent content = null;
		try {
			content = new MMContent();
			content.setContentType(MMConstants.ContentType.MULTIPART_RELATED);
			for (int i = 0; i < 30; i++) {
				if (m_oXmlParser.readAttribute("hxyhmms", "item" + i) == null) {
					break;
				} else {
					if (m_oXmlParser.readAttribute("item" + i, "type")
							.toUpperCase().equals("TXT")) {
						MMContent sub = MMContent.createFromBytes(m_oXmlParser
								.readAttribute("item" + i, "value").getBytes(
										"UTF-8"));
						sub.setContentID(i + ".txt");
						sub.setContentType(MMConstants.ContentType.TEXT);
						content.addSubContent(sub);
					} else if (m_oXmlParser.readAttribute("item" + i, "type")
							.toUpperCase().equals("IMG")) {
						String sImgF = m_oXmlParser.readAttribute("item" + i,
								"value");
						MMContent sub = MMContent.createFromFile(sImgF);
						if (sImgF.toLowerCase().indexOf("gif") > 0) {
							sub.setContentID(i + ".gif");
							sub.setContentType(MMConstants.ContentType.GIF);
						} else if ((sImgF.toLowerCase().indexOf("jpg") > 0)
								|| (sImgF.toLowerCase().indexOf("jpeg") > 0)) {
							sub.setContentID(i + ".jpg");
							sub.setContentType(MMConstants.ContentType.JPEG);
						}
						content.addSubContent(sub);

					} else if (m_oXmlParser.readAttribute("item" + i, "type")
							.toUpperCase().equals("RING")) {
						String sRingF = m_oXmlParser.readAttribute("item" + i,
								"value");
						MMContent sub = MMContent.createFromFile(sRingF);
						if (sRingF.toLowerCase().indexOf("mid") > 0) {
							sub.setContentID(i + ".mid");
							sub.setContentType(MMConstants.ContentType.MIDI);
						} else if ((sRingF.toLowerCase().indexOf("amr") > 0))

						{
							sub.setContentID(i + ".amr");
							sub.setContentType(MMConstants.ContentType.AMR);
						}
						content.addSubContent(sub);

					} else if (m_oXmlParser.readAttribute("item" + i, "type")
							.toUpperCase().equals("SMIL")) {
						String smil = m_oXmlParser.readAttribute("item" + i,
								"value");
						MMContent sub = MMContent.createFromFile(smil);
						sub.setContentID(i + ".smil");
						sub.setContentType(MMConstants.ContentType.SMIL);
						content.addSubContent(sub);
					}
				}
			}
		} catch (Exception e) {
			e.printStackTrace();
			return null;
		}
		return content;
	}

	public void run() {
		try {
			m_oCon = DBConnectionPool.getConnection();
			m_oRsStat = m_oCon.createStatement();
			m_oCmdStat = m_oCon.createStatement();
			MM7SubmitReq submit = new MM7SubmitReq();

			while (true) {
				ResultSet rs = m_oRsStat.executeQuery("EXEC SCMP_GETMMS2SEND");

				while (rs.next()) {
					try {
						submit.setTransactionID(rs.getString("YH_ID"));
						submit.setVASPID(rs.getString("VASPID"));
						submit.setVASID(rs.getString("VASID"));
						submit.setServiceCode(rs.getString("SERVICECODE"));
						submit.setSenderAddress(rs.getString("SENDER"));
						List to = new java.util.ArrayList();
						String[] sTo = rs.getString("SENDTO").split(";");
						for (int jj = 0; jj < sTo.length; jj++) {
							to.add(sTo[jj]);
						}
						submit.setTo(to);

						submit.setLinkedID(rs.getString("LINKID"));
						m_oXmlParser.set(rs.getString("MMSMSG"));

						submit.setSubject(m_oXmlParser.readAttribute("subject",
								"value"));
						submit.setMessageClass("Information");
						submit.setDeliveryReport(true);
						submit.setContent(MakeMMS());

						MM7RSRes rsRes = null;
						rsRes = (MM7RSRes) ((MM7Sender) mtmap.get(rs
								.getString("VASPID"))).send(submit);// mm7Sender.send(submit);
						if (rsRes instanceof MM7SubmitRes) {
							MM7SubmitRes submitRes = (MM7SubmitRes) rsRes;
							System.out.println(" >>>mt:ok>>>[to:"
									+ rs.getString("SENDTO") + "][srv:"
									+ rs.getString("SERVICECODE") + "][resp:"
									+ submitRes.getStatusCode() + ":"
									+ submitRes.getStatusText() + "]");
							m_oCmdStat
									.executeUpdate("UPDATE TCMP_MT SET YH_STATUS='RUN'"
											+ ",TRANSACTIONID='"
											+ submitRes.getMessageID()
											+ "',SENDSTATUS='"
											+ submitRes.getStatusText()
											+ "',SENDCODE='"
											+ submitRes.getStatusCode()
											+ "' WHERE yh_id="
											+ rs.getString("YH_ID"));
						} else {
							System.out.println(" >>>mt:fail>>>[to:"
									+ rs.getString("SENDTO")
									+ "][srv:"
									+ rs.getString("SERVICECODE")
									+ "][resp:"
									+ rsRes.getStatusCode()
									+ "][info:"
									+ rsRes.getStatusText()
									+ "]"
									+ (new SimpleDateFormat("MM/dd HH:mm:ss"))
											.format(new java.util.Date(System
													.currentTimeMillis())));
							m_oCmdStat
									.executeUpdate("UPDATE TCMP_MT SET YH_STATUS='FAIL'"
											+ ",SENDSTATUS='"
											+ rsRes.getStatusText()
											+ "',SENDCODE='"
											+ rsRes.getStatusCode()
											+ "' WHERE yh_id="
											+ rs.getString("YH_ID"));
						}
					} catch (Exception e) {
						e.printStackTrace();
					}
					Thread.sleep(20);
				}
				Thread.sleep(500);
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}

⌨️ 快捷键说明

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