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

📄 businesslistener.java

📁 采用JAVA开发
💻 JAVA
字号:
package com.gctech.sms.voice.api;

import org.apache.log4j.Logger;
import com.gctech.sms.sp.cms.msg2.*;
import com.gctech.sms.sp.cms.core2.*;
import com.gctech.sms.voice.common.*;
import java.util.*;

import com.gctech.sms.voice.*;
import com.gctech.sms.voice.dao.*;

/**
 * 此类用于处理短信上行业务逻辑
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2004</p>
 * <p>Company: </p>
 * @author lijz@gctech.com.cn
 * @version 1.0
 */
public class BusinessListener
    extends RecevierListener
{

  static Logger logger = Logger.getLogger(BusinessListener.class);
  PlatformAPI api = null;
  static ThreadLocal local =new ThreadLocal();
  public BusinessListener(PlatformAPI api)
  {
    this.api = api;
  }

  public void onMessage(Message msg)
  {
    if(msg.commandId == Message.DELIVER)
    {
      DeliverMessage dm = (DeliverMessage)msg;
      //如果是状态报告,则不处理,交给FeeListerner处理
      if(dm.isReport == 1)return;
	  local.set(dm.linkId);
      
      /*处理业务逻辑*/
      String content = dm.content;
      StringTokenizer st = new StringTokenizer(content," ",false);
      String key = null;
      Integer id = null;
      String phone = null;
      try
      {
        key = st.nextToken().trim();
        id = new Integer(st.nextToken().trim());
        phone = st.nextToken().trim();

      }
      catch(Exception ex)
      {
        this.notify("格式错误,请输入 " + Consts.SMS_KEY_WORDS +
                    "+对方号码(非北京用户固话需要加区号,手机需要加0,本条免费)",dm.srcTermId);
        return;
      }
      if(!key.equals(Consts.SMS_KEY_WORDS))
      {
        this.notify("格式错误,请输入 " + Consts.SMS_KEY_WORDS +
                    "+对方号码(非北京用户固话需要加区号,手机需要加0,本条免费)",dm.srcTermId);
        return;
      }
      if(!check(phone))
      {
        this.notify("格式错误,请输入 " + Consts.SMS_KEY_WORDS +
                    "+对方号码(非北京用户固话需要加区号,手机需要加0,本条免费)",dm.srcTermId);
        return;
      }

      //准备发送短信和语音请求
      int price = 0;
      try
      {
        VoiceFacade f = new VoiceFacade();
        VoiceValueObject vo = f.getVoiceById(id);
        if(vo == null)
        {
          this.notify("没有找到您要点播的歌曲(本条免费)",dm.srcTermId);
          return;
        }
        price = vo.getPrice().intValue();

      }
      catch(Exception ex)
      {
        this.notify("系统错误,请稍后在尝试(本条免费)",dm.srcTermId);
        return;

      }
      VoiceRequest voiceRequest = new VoiceRequest(id,dm.srcTermId,phone,
          new Date(),null);
      SMSRequest smsReq = SMSRequest.createFeeRequest(dm.srcTermId,
          Util.getServiceId(price),"点播成功,系统将向" + phone + "发送语音,欢迎再次使用");
      APIFacade api = new APIFacade();
      try
      {
        api.addVoiceRequest(voiceRequest,smsReq);
      }
      catch(Exception ex)
      {
        this.notify("系统错误,请稍后在尝试(本条免费)",dm.srcTermId);
        return;
      }

    }
    else
    {
      return;
    }

  }

  private boolean check(String phone)
  {
    char[] chs = phone.toCharArray();
    for(int i = 0;i < chs.length;i++)
    {
      if(!Character.isDigit(chs[i]))
      {
        return false;
      }
    }
    return true;

  }

  private void send(String respContent,String src,String dest,String serviceId)
  {
    SubmitMessage sm = new SubmitMessage(Config.instance().getSpId(),
                                         serviceId,respContent,dest,dest,src);
                                         sm.linkId =(String)local.get();
    try
    {
      if(logger.isDebugEnabled())logger.debug("add response content " +
                                              respContent + " src:" + src +
                                              " dest:" + dest);
                                              System.out.println("linkid:"+sm.linkId);
      api.addMessage(sm);
    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }
  }

  private void notify(String content,String dest)
  {
    this.send(content,"",dest,Config.instance().getServiceId000());
  }

  public static void main(String[] args)
  {
    String content = "TT 123343   01034343434 ";
    StringTokenizer st = new StringTokenizer(content," ",false);
    String key = null;
    Integer id = null;
    String phone = null;
    try
    {
      key = st.nextToken().trim();
      id = new Integer(st.nextToken().trim());
      phone = st.nextToken().trim();

    }
    catch(Exception ex)
    {
      ex.printStackTrace();
    }

    System.out.println(key + ":" + id + ":" + phone + ":");

  }

}

⌨️ 快捷键说明

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