📄 structconverter.java
字号:
package com.gctech.sms.gateway.commoncnc;
import com.gctech.sms.msg.MTInfo;
import com.gctech.cngp.msg.CNGPSubmitMessage;
import com.gctech.sms.msg.MOInfo;
import com.gctech.cngp.msg.CNGPDeliverMessage;
import com.gctech.sms.core.IsReply;
import org.apache.log4j.Logger;
import com.gctech.sms.gateway.basic.ReportStatus;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: gctech</p>
* @author 王红宝
* @version $Id: StructConverter.java,v 1.2 2004/08/23 06:45:45 lijz Exp $
*/
public class StructConverter {
private static StructConverter singleton;
StructConverter() {
}
static StructConverter getInstance(){
if ( singleton == null )
singleton = new StructConverter();
return singleton;
}
void setDestPrefix(int destPrefix){
this.destPrefix = destPrefix;
}
private int destPrefix = 0;
/**
* 将CNGP的上行信息转换成通用的上行信息。
* */
public MOInfo CNGPDeliver2MOInfo(CNGPDeliverMessage msg){
MOInfo info = new MOInfo();
info.content = msg.sMsgContent;
info.srcPhoneNo = msg.sSrcTerminalId;
if ( msg.nIsReport == IsReply.IS_REPLY.getValue() || destPrefix == 0 )
info.destTermId = msg.sDestId;
else
info.destTermId = msg.sDestId.substring(this.destPrefix);
info.strMsgID = msg.sMsgId;
info.IsReply = msg.nIsReport;
//如果是状态报告,找到对应MT的MSGID
if ( msg.nIsReport == IsReply.IS_REPLY.getValue() ){
info.linkMtMsgId = msg.sMsgContent.substring(3, 13);
logger.debug(""+ info.linkMtMsgId.length());
int idx = msg.sMsgContent.indexOf("stat:");
if ( idx > 0 ){
String key = msg.sMsgContent.substring(idx+5, idx+5+7);
logger.debug(key);
ReportStatus re = ReportStatus.get(key);
if (re == null)
info.status = ReportStatus.CA_XXXX.getValue();
else
info.status = re.getValue();
}
}
return info;
}
/**
* 将通用下行信息转换成CNGP下行信息。
* */
public static CNGPSubmitMessage MTInfo2CNGPSubmit(MTInfo info){
CNGPSubmitMessage msg = new CNGPSubmitMessage();
msg.nDestCount = info.bDestNo;
msg.nFeeUserType = info.bFeeUserType;
msg.nMsgFormat = info.bMsgFmt;
msg.nMsgLength = (short)info.content.getBytes().length;
msg.nMsgLevel = info.bMsgLevel;
msg.nNeedReply = info.bNeedReply;
msg.sAtTime = info.AtTime;
msg.sDestTerminalId = info.sDestPhone;
msg.sFeeCode = info.FeeCode;
msg.sFeeMobile = info.FeeterminalId;
msg.sFeeType = info.FeeType;
msg.sMsgContent = info.content;
msg.sServiceId = info.ServiceID;
msg.sSrcId = info.srcPhone;
msg.subType = info.bSubType;
//时间格式需要转换
//msg.sValidTime = info.ValidTime;
return msg;
}
public static void main(String[] args) {
System.out.println(3+11+4+4+6+4+12+11+10+11+5);
}
static final Logger logger = Logger.getLogger(StructConverter.class);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -