📄 individualchat.java
字号:
package jm.form.msn.ctrl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.Map;
import jm.entity.ESM000200;
import jm.form.msn.bean.BusinessImportance;
import jm.form.msn.bean.BusinessUser;
import jm.form.msn.config.JMMRConfigConstants;
import jm.form.msn.util.Manager;
import jm.util.JMCheck;
import jm.util.JMEntity;
import jm.util.JMRandom;
import jm.util.JMVector;
/**
* 智能聊天个人
* 梦界家园MSNP15
*
* @author ISHome
* @since 0.4
* @version 0.5.0.2.1
*/
@SuppressWarnings("unchecked")
public class IndividualChat implements JMMRConfigConstants {
private Manager manager = null;
public IndividualChat(Manager server) {
manager = server;
}
/**
* 智能聊天个人
*/
public void invoker(BusinessUser u, String[] fields) {
JMVector<ESM000200> messageList = new JMVector<ESM000200>();
ESM000200 talk;
try {
// command 客户查询信息
// 全部Talk
Hashtable<String, ESM000200> talkMap = (Hashtable<String, ESM000200>) manager.getTalkMap();
// System.out.println("talkMap==="+talkMap);
// 相似度
HashMap<String, BusinessImportance> importanceBeanMap = new HashMap<String, BusinessImportance>();
// 提高精确度使用
ArrayList<ESM000200> likeTalkList = new ArrayList<ESM000200>();
BusinessImportance importanceBean = new BusinessImportance();
ESM000200 importanceTalk = new ESM000200();
Map.Entry entry = null;
BusinessImportance bean;
String tag;
// System.err.println("talkMap=="+talkMap);
// 内存遍历
for (Iterator iter = talkMap.entrySet().iterator(); iter.hasNext();) {
entry = (Map.Entry) iter.next();
talk = (ESM000200) entry.getValue();
// 相似度比较
for (int i = 0; i < fields.length; i++) {
tag = talk.getTag();
if (tag.indexOf(fields[i]) >= 0) {
bean = importanceBeanMap.get(talk.getNumID());
if (bean == null) {
bean = new BusinessImportance();
}
// Importance 重要度
int num = bean.getImportance();
num = num + 1;
bean.setImportance(num);// 使用
// Tag
tag = bean.getTag();
if (tag == null) {
tag = "";
}
tag = tag + (fields[i] + JMEntity.SPLIT);
bean.setTag(tag);
// save
if (bean.getImportance() > importanceBean.getImportance()) {
importanceBean = bean;
importanceTalk = talk;
}
importanceBeanMap.put(talk.getNumID(), bean);
likeTalkList.add(talk);
}
}
// 精确程度,一次返回最多数据
if (likeTalkList.size() > Integer.parseInt(manager.getConfigMap().get(MAX_IMPORTANCE_NUMBER))) {
break;
}
}
// 精确度不足的时候随机选择
if (importanceBean.getImportance() == 1) {
importanceTalk = likeTalkList.get((new JMRandom(0, likeTalkList.size() - 1)).nextIntSnippet());
}
// 设置返回结果
if (JMCheck.isNull(importanceTalk.getTalkValue()) == false)
messageList.add(importanceTalk);
} catch (Exception e) {
talk = new ESM000200();
talk.setNumID("99999");
talk.setTalkValue("系统忙,请稍后再试。");
messageList.add(talk);
e.printStackTrace();
}
// 用户对话结果保存
u.setMessageList(messageList);
// System.err.println("messageList=="+messageList);
manager.getUserList().put(u.getMsnID(), u);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -