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

📄 structconverter.java

📁 采用JAVA开发
💻 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 + -