📄 businesslistener.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 + -