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

📄 msnmessagecenter.java.svn-base

📁 MSN客服自动化机器人
💻 SVN-BASE
字号:
package jm.form.msn.ctrl;

import jm.entity.CommandOftenKeys;
import jm.entity.ESM000200;
import jm.entity.ESM000500;
import jm.form.msn.action.Contral;
import jm.form.msn.bean.BusinessUser;
import jm.form.msn.util.Manager;
import jm.util.JMEntity;
import jm.util.JMVector;

/**
 * 处理响应中心
 * 梦界家园MSNP15
 * @author ISHome
 * @since 0.4
 * @version 0.4
 */
public class MsnMessageCenter implements CommandOftenKeys {
	Manager manager = null;

	public MsnMessageCenter(Manager server) {
		manager = server;
	}

	public String invoker(BusinessUser u) {
		// 当前结果
		JMVector messageList = u.getMessageList();
		// 用户检验
		// 组织使用
		if ("1".equals(manager.getConfigMap().get(SYSTEM_TYPE))) {
			// 根据需要自己修改
			// 两次命令重新响应判断
			boolean continueFlag = true;
			// 当前结果没有完全显示的时候是否进行新的查询
			if (messageList.size() > 0) {
				// ******************************//
				// 该处根据需要修改
				String command = u.getCommand();
				// 标准的Next命令
				if ("n".equalsIgnoreCase(command)) {
					// Next命令
					continueFlag = false;
				} else
				// 商业程序二次命令是否响应系统程序处理
				// 两次命令不一致时,处理新的命令;相同时,捕捉处理
				if (command.equals(u.getLastCommand()) == true) {
					// 新的命令
					continueFlag = false;
				}
			}
			// 判断是否可以使用商业命令
			// 这里仅仅判断是否可以使用,权限在Contral里面处理
			if (manager.getBusinessCanUseList().containsKey(u.getMsnID())) {
				if (continueFlag == true) {
					// 纯粹商业用途
					// 用于连接组织的管理系统
					// 更多了解请直接联系
					// ISHOme(Spook)
					// Spookfcy@hotmail.com
					// 具体例子参考Login.java
					(new Contral()).invoker(u, manager);
					// 商业操作返回结果
					messageList = u.getMessageList();
				}
			}
		}

		// 商业处理没有返回 或者 个人使用
		if (messageList.size() == 0) {
			manager.getSegmenter().invoker(u);// 智能聊天
		}

		// 智能聊天返回结果
		messageList = u.getMessageList();

		// 格式话输出结果
		StringBuffer out = new StringBuffer();
		if (messageList.size() == 0) {
			// 是否切换人工帮助
			// 下发消息5版可以使用
			return "大哥让我休息一会吧。";
		} else if (messageList.size() == 1) {
			// 唯一结果返回直接处理
			// 个人和组织使用时候的区分处理
			// 影响返回结果的表现形式
			JMEntity message = (JMEntity) messageList.get(0);
			if (message instanceof ESM000500) {
				// 组织使用(商业程序)
				ESM000500 faq = (ESM000500) message;
				out.append(faq.getTitle() + "\r\n");
				out.append("----------\r\n");
				out.append(faq.getFaqValue() + "\r\n");
				messageList.clear();
			} else if (message instanceof ESM000200) {
				// 个人使用
				ESM000200 talk = (ESM000200) message;
				out.append(talk.getTalkValue() + "\r\n");
				messageList.clear();
			}
		} else {
			// 自由组织使用时候返回多种FAQ信息
			ESM000500 faq = (ESM000500) messageList.get(0);
			out.append(faq.getTitle() + "\r\n");
			out.append("----------\r\n");
			out.append(faq.getFaqValue() + "\r\n");
			messageList.remove(0);
		}

		// 保存结果
		u.setMessageList(messageList);

		manager.getUserList().put(u.getMsnID(), u);
		return "" + out;
	}
}

⌨️ 快捷键说明

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