Commit 7f8bf0a4 by Huang Linyu

Merge branch 'f-6.6.3' into release

parents 52a7c1c2 bfcebb0c
......@@ -128,7 +128,6 @@ public class CallCenterController {
// 1)找出具体的命令实例。
logger.debug("event [" + event + "] is ready to execute...");
logger.debug(eventJsonString);
System.out.println("EEEEEEEEEEEEEEEEEEEEEEEEEEEEE: "+eventJsonString);
AbstractEventHandler eventHandler = eventHandlerMap.get(event);
// 2)执行命令并返回结果
......
......@@ -2,12 +2,15 @@ package com.ctrip.fun.admin.eventhandler;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.ctrip.fun.admin.service.system.UserService;
import com.ctrip.fun.admin.vo.callcenter.AbstractEventHandler;
import com.ctrip.fun.admin.vo.callcenter.RsmwNewStateEvent;
import com.ctrip.fun.common.vo.user.UserExtBean;
......@@ -23,6 +26,9 @@ public class NewStateEventHandler extends AbstractEventHandler {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private UserService userService;
@Override
public String handle(JSONObject jsonObject) {
// 先从json对象转成java对象,方便get
......@@ -40,10 +46,17 @@ public class NewStateEventHandler extends AbstractEventHandler {
logger.debug("收到了ringing消息: " + event.getChannel() + event.getConnectedLineNumber());
//来电手机号码
String mobileNo = event.getConnectedLineNumber().replaceFirst("^0*", "");
// String callerIdNumber = event.getCallerIdNumber();
String callerIdNumber = event.getChannel().substring(4, 8);
NewStateWebSocket.unicast(callerIdNumber,mobileNo);
UserExtBean user = userService.getUserByMobile(mobileNo);
String uid = "";
if(user != null){
uid = user.getUid();
}
NewStateWebSocket.unicast(callerIdNumber,uid,mobileNo);
}
return "";
}
......
......@@ -14,14 +14,11 @@ import javax.websocket.server.ServerEndpoint;
/**
* userName : 代表分机号
* @author lyhuang
*
*/
@ServerEndpoint("/websocket/{userName}")
public class NewStateWebSocket {
public NewStateWebSocket(){}
private static Map<String, Session> sessionMap=new HashMap<String, Session>();//在线的客户端session集合,只在第一次new的时候初始化。
/**
* 接收信息事件
......@@ -50,10 +47,8 @@ public class NewStateWebSocket {
*/
@OnOpen
public void onOpen(Session session,@PathParam(value="userName")String userName) throws Exception {
System.out.println("打开连接成功!");
sessionMap.put(userName, session);
System.out.println("用户"+userName+"进来了。。。");
System.out.println("当前在线人数:"+sessionMap.size());
// System.out.println("用户"+userName+"进来了。。。"+"当前在线人数:"+sessionMap.size());
}
/**
......@@ -61,10 +56,8 @@ public class NewStateWebSocket {
*/
@OnClose
public void onClose(Session session,@PathParam(value="userName")String userName) {
System.out.println("关闭连接成功!");
System.out.println("用户"+userName+"离开了。。。");
// System.out.println("用户"+userName+"离开了。。。"+"当前在线人数:"+sessionMap.size());
sessionMap.remove(userName);
System.out.println("当前在线人数:"+sessionMap.size());
}
/**
......@@ -80,14 +73,19 @@ public class NewStateWebSocket {
}
public static void unicast(String username, String mobileNo) {
String message = "/system/user/"+mobileNo+"/detailByUid";
public static void unicast(String username, String uid, String mobileNo) {
String message = "/system/user/"+uid+"/detailByUid";
Session session = sessionMap.get(username);
System.out.println("unicast--------------------------------------------------"+message);
// NewStateWebSocket socket = NewStateWebSocket.getInstance();
if(session == null){
System.out.println("Callcenter pop window:分机号"+username+"没有绑定任何账户或者绑定的账户没有登录。无法为其弹窗");
return ;
}
if("".equals(uid)){
System.out.println("Callcenter pop window:手机号码"+mobileNo+"没有注册!");
message = "/tools/validCode "+mobileNo;
}
try {
session.getBasicRemote().sendText(message);
// socket.onMessage(message, session, username);
} catch (Exception e) {
e.printStackTrace();
}
......
......@@ -94,16 +94,27 @@
$("#btnSendCode").val("请在" + curCount + "秒后再获取验证码");
}
}
document.onreadystatechange = function(e){
if (document.readyState === 'complete')
window.addEventListener('message', function(e){
var params = e.data;
$("#oriMobileNo").val(params[0][1]);
$("#mobileNo").val(params[0][1]);
});
}
}
</script>
</#assign>
<@com.layout title="电话注册 " module="system" pageJs=pageJsContent>
该电话用户未注册,请先注册
<form action="/cc/userRegister" method="post">
<input type="hidden" id="oriMobileNo" name="oriMobileNo" value="${mobileNo!}" />
<input type="hidden" id="oriMobileNo" name="oriMobileNo" />
<div>
手机号码:
<input type="text" name="mobileNo" id="mobileNo" title="请输入手机号" placeholder="请输入正确手机号" value="${mobileNo!}"
/>
<input type="text" name="mobileNo" id="mobileNo" title="请输入手机号" placeholder="请输入正确手机号" />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
<input type="button" id="btnSendCode" class="btn btn-primary" value="获取验证码"
onclick="sendValidCode()" />
......
......@@ -9,7 +9,17 @@
webSocket.onerror = function(event) {};
webSocket.onopen = function(event) {};
webSocket.onmessage = function(event) {
window.open(event.data, "用户来电通知");
if(event.data.startsWith("/tools/validCode")){
var message = event.data;
var msgArr = message.split(" ");
var popupwin = window.open(event.data, "用户来电通知");
var params = new Array();
params[0] = new Array("mobileNo",msgArr[1]);
popupwin.onload = function(e){
popupwin.postMessage(params,"http://"+window.location.host);
}
}
};
webSocket.onclose = function(event){};
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment