Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
caosy
/
fun-admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7f8bf0a4
authored
Oct 18, 2017
by
Huang Linyu
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'f-6.6.3' into release
parents
52a7c1c2
bfcebb0c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
52 additions
and
21 deletions
src/main/java/com/ctrip/fun/admin/controller/tools/CallCenterController.java
src/main/java/com/ctrip/fun/admin/eventhandler/NewStateEventHandler.java
src/main/java/com/ctrip/fun/admin/eventhandler/NewStateWebSocket.java
src/main/webapp/WEB-INF/templates/tools/validCode.ftl
src/main/webapp/resource/js/app/op.js
src/main/java/com/ctrip/fun/admin/controller/tools/CallCenterController.java
View file @
7f8bf0a4
...
...
@@ -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)执行命令并返回结果
...
...
src/main/java/com/ctrip/fun/admin/eventhandler/NewStateEventHandler.java
View file @
7f8bf0a4
...
...
@@ -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
""
;
}
...
...
src/main/java/com/ctrip/fun/admin/eventhandler/NewStateWebSocket.java
View file @
7f8bf0a4
...
...
@@ -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
();
}
...
...
src/main/webapp/WEB-INF/templates/tools/validCode.ftl
View file @
7f8bf0a4
...
...
@@ -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="请输入正确手机号" />
<input type="button" id="btnSendCode" class="btn btn-primary" value="获取验证码"
onclick="sendValidCode()" />
...
...
src/main/webapp/resource/js/app/op.js
View file @
7f8bf0a4
...
...
@@ -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
){};
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment