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

📄 yydxlistener.java

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