📄 yydxlistener.java
字号:
/*
* Created on 2004-12-13
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package com.gctech.sms.sp.dwzb;
import org.apache.log4j.Logger;
import com.gctech.sms.sp.cms.core.PlatformAPI;
import com.gctech.sms.sp.cms.core.RecevierListener;
import com.gctech.sms.sp.cms.msg.DeliverMessage;
import com.gctech.sms.sp.cms.msg.Message;
import com.gctech.sms.sp.cms.msg.SubmitMessage;
import com.gctech.sms.sp.cms.util.SMSContent;
/**
* <p>Title:</p>
* <p>Description:</p>
* <p>Copyright: Copyright (c) Gctech 2004-12-13</p>
* <p>Company: 吉芙德资讯有限公司</p>
*
* @version 1.0
* @author liyi
*
*/
public class YYDXListener extends RecevierListener {
static Logger logger = Logger.getLogger(DWZBListener.class);
private PlatformAPI api = null;
private SessionFactory sf = null;
private Config cfg = Config.instance();
public YYDXListener(PlatformAPI api, SessionFactory sf) {
this.api = api;
this.sf = sf;
}
public void onMessage(Message msg) {
logger.info("onmessage: " + msg);
if (msg.commandId == Message.DELIVER) {
onDeliver((DeliverMessage) msg);
} else {
//do nothing
}
}
/**
* 处理该消息
* @param msg
*/
private void onDeliver(DeliverMessage msg) {
DeliverMessage dm = (DeliverMessage) msg;
// logger.info("deliver " + dm);
String phone = dm.srcTermId;
String dest = dm.destTermId;
String content = dm.content;
//String serviceNo = Config.instance().getServiceNo();
User user = new User(phone);
SMSContent smsContent = new SMSContent(content);
String key = smsContent.keyWord();
//点播业务
//取得计费代码
String serviceId = null;
if ("YTDX".equals(key))
serviceId = "YTDX";
else if ("YFDX".equals(key))
serviceId = "YFDX";
else if ("YODX".equals(key))
serviceId = "YODX";
else
return;
Response response = ResponseFactory.create(key);
if (response == null) {
notify("语音短信提示: 没有提供该服务,请查询相关帮助", phone);
return;
}
response.setContent(smsContent);
response.setUser(user);
/*以下代码考虑了会话*/
//use dest as session id,if session dose not exist,sf will create it
Session session = sf.getSession(dest);
RabitMessage rm = (RabitMessage) session.getValue(key);
if (rm == null) {
String reply = response.getResponse();
logger.info("whole content:" + reply);
if (reply.length() <= 58) {
send(reply, "", phone, serviceId);
return;
}
rm = new RabitMessage(reply, key);
session.setValue(key, rm);
String respContent = null;
if (rm.hasRabbit()) {
respContent = rm.nextRabbit();
} else {
respContent = "语音短信提示:相关信息已经点播完!";
session.setValue(key, null);
}
send(respContent, "", phone, serviceId);
return;
} else {
String respContent = null;
if (rm.hasRabbit()) {
respContent = rm.nextRabbit();
} else {
respContent = "语音短信提示:相关信息已经点播完!";
session.setValue(key, null);
}
send(respContent, "", phone, serviceId);
return;
}
/*以上代码考虑了会话*/
}
private void send(
String respContent,
String src,
String dest,
String serviceId) {
SubmitMessage sm =
new SubmitMessage(
Config.instance().getSpId(),
serviceId,
respContent,
dest,
dest,
src);
try {
if (logger.isDebugEnabled())
logger.debug(
"add response content "
+ respContent
+ " src:"
+ src
+ " dest:"
+ dest);
api.addMessage(sm);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private void notify(String content, String dest) {
this.send(content, "", dest, Config.instance().getFreeFeeServiceId());
}
private void notify(String content, String dest, String serviceid) {
this.send(content, "", dest, serviceid);
}
public static void main(String[] args) {
String str = "9600288123344";
String serviceNo = "9600288";
System.out.println(str.substring(serviceNo.length()));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -