📄 jmsmtreceiver.java
字号:
package cn.madhouse.jms;
import java.util.Map;
import java.util.concurrent.ConcurrentLinkedQueue;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import cn.madhouse.gateway.empp.msgformat.SubmitRequest;
import cn.madhouse.gateway.empp.service.MessageQueue;
import cn.madhouse.gateway.empp.util.*;
import com.madhouse.wireless.sms.MTSMS;
public class JmsMtReceiver implements MessageListener {
private MessageQueue msgQueue;
private int msgSize = 60;
public void setMsgQueue(MessageQueue msgQueue) {
this.msgQueue = msgQueue;
}
public void setMsgSize(int msgSize) {
this.msgSize = msgSize;
}
public void onMessage(Message m) {
ObjectMessage msg = (ObjectMessage)m;
Object obj = null;
try {
obj = (Object)msg.getObject();
} catch (JMSException e) {
e.printStackTrace();
}
doMsg(obj);
}
public void doMsg(Object obj) {
if((obj instanceof MTSMS)) {
ConcurrentLinkedQueue<SubmitRequest> mtReqQueue = msgQueue.getMtRequestQueue();
Map<Integer,Long> sequenseId_idMap = msgQueue.getSequenseId_idMap();
MTSMS mt = (MTSMS)obj;
SubmitRequest[] mtRequestArray = parseMtRequest(mt);
/*long id = mt.getId();
int sequenseId = mtRequestArray*/
//System.out.println("!!!!!" + mt.getMessage() +" " + mt.getMessage().length());
sequenseId_idMap.put(mtRequestArray[0].getSequenceId(),mt.getId());
for(int i=0;i<mtRequestArray.length;i++) {
//System.out.println("0000000000= " + mtRequestArray[i].getMsgContent());
//System.out.println("!!!!!!" + mtRequestArray[i].getMsgContent() + " " + mtRequestArray[i].getMsgContent().length());
System.out.println("sequense = " + mtRequestArray[i].getSequenceId());
mtReqQueue.offer(mtRequestArray[i]);
}
}
}
private SubmitRequest[] parseMtRequest(MTSMS mt) {
String message = mt.getMessage();
int msgLen = message.length();
int n;
if(msgLen%msgSize == 0) {
n = msgLen/msgSize;
} else n = msgLen/msgSize + 1;
SubmitRequest[] moRequestArray = new SubmitRequest[n];
int sequenceId = cn.madhouse.gateway.empp.msgformat.Message.genSeqId();
for(int i=1;i<=n;i++) {
byte[] msgId = null;
Integer pkTotal = n;
Integer pkNumber = i;
Integer registeredDelivery = mt.getNeedReportStatus();
Integer msgFmt = 15;
String valIdTime = EmppUtil.getValIdTime();
String atTime = EmppUtil.getAtTime();
Integer destUsrtl = 1;
String destTerminalId = mt.getDestTermID();
String msgContent;
if(i != n) {
msgContent = message.substring(msgSize*(i-1),msgSize*i);
} else msgContent = message.substring(msgSize*(i-1));
Integer msgLength = msgContent.length();
String msgSrc = null;
String srcId = mt.getSrcTermID();
String serviceId = mt.getServiceID();
SubmitRequest mtRequest = new SubmitRequest(
msgId, pkTotal, pkNumber, registeredDelivery, msgFmt,
valIdTime, atTime, destUsrtl, destTerminalId, msgLength,
msgContent, msgSrc, srcId, serviceId);
mtRequest.setSequenceId(sequenceId);
moRequestArray[i-1] = mtRequest;
}
return moRequestArray;
}
public static void main(String[] arg) {
MTSMS mt = new MTSMS();
mt.setGateway("empp");
mt.setDestTermID("13916065149");
mt.setLongCode("55551883311");
mt.setMessage("中华任命共和国万岁!1234567890中华任命共和国万岁!1234567890中华任命共和国万岁!1234567890中华任命共和国万岁!1234567890中华任命共和国万岁!1234567890中华任命共和国万岁!1234567890");
mt.setMsgType(MTSMS.MSG_TYPE_SMS);
mt.setNeedReportStatus(1);
mt.setSrcTermID("55551883311");
mt.setServiceID("555518833");
SubmitRequest[] mtRequestArray = new JmsMtReceiver().parseMtRequest(mt);
for(int i=0;i<mtRequestArray.length;i++) {
System.out.println("0000000000= " + mtRequestArray[i].getMsgContent());
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -