Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
com.hdp.customerservice
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
刘文胜
com.hdp.customerservice
Commits
37fdd3af
Commit
37fdd3af
authored
Jun 19, 2015
by
刘文胜
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1111
parent
3d869da6
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
242 additions
and
191 deletions
+242
-191
pom.xml
pom.xml
+26
-0
APP.java
src/main/java/com/hdp/APP.java
+1
-0
LoginController.java
...ain/java/com/hdp/customerservice/api/LoginController.java
+32
-3
UserInfoController.java
.../java/com/hdp/customerservice/api/UserInfoController.java
+2
-2
WorksController.java
...va/com/hdp/customerservice/api/admin/WorksController.java
+2
-2
CORSFilter.java
src/main/java/com/hdp/customerservice/filter/CORSFilter.java
+2
-2
NOLoginFilter.java
...in/java/com/hdp/customerservice/filter/NOLoginFilter.java
+3
-2
GetHttpSessionConfigurator.java
...customerservice/websocket/GetHttpSessionConfigurator.java
+3
-1
HistoryHandler.java
...ava/com/hdp/customerservice/websocket/HistoryHandler.java
+2
-2
IMManager.java
...ain/java/com/hdp/customerservice/websocket/IMManager.java
+77
-98
IMWebSocketEndpoint.java
...om/hdp/customerservice/websocket/IMWebSocketEndpoint.java
+17
-20
SimpleHandshakeInterceptor.java
...customerservice/websocket/SimpleHandshakeInterceptor.java
+42
-0
WaiterManager.java
...java/com/hdp/customerservice/websocket/WaiterManager.java
+0
-49
Customer.java
...ava/com/hdp/customerservice/websocket/model/Customer.java
+0
-2
Waiter.java
.../java/com/hdp/customerservice/websocket/model/Waiter.java
+0
-5
MessageHandler.java
src/main/java/com/hdp/pi/wechat/handler/MessageHandler.java
+1
-1
NewUserMessage.java
src/main/java/com/hdp/pi/wechat/messages/NewUserMessage.java
+21
-0
applicationContext.xml
src/main/resources/META-INF/spring/applicationContext.xml
+9
-0
app.js
src/main/resources/static/js/app.js
+2
-2
No files found.
pom.xml
View file @
37fdd3af
...
...
@@ -93,6 +93,11 @@
<artifactId>
dom4j
</artifactId>
<version>
1.6.1
</version>
</dependency>
<dependency>
<groupId>
com.hdp.pi
</groupId>
<artifactId>
hdp-security
</artifactId>
<version>
0.1.3-SNAPSHOT
</version>
</dependency>
</dependencies>
<build>
<plugins>
...
...
@@ -121,4 +126,25 @@
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>
release
</id>
<name>
Internal Releases
</name>
<url>
http://nexus.wxpai.cn/content/repositories/public/
</url>
</repository>
</repositories>
<distributionManagement>
<repository>
<id>
release
</id>
<name>
Internal Releases
</name>
<url>
http://nexus.wxpai.cn/content/repositories/release/
</url>
</repository>
<snapshotRepository>
<id>
deployment
</id>
<name>
Internal Releases
</name>
<url>
http://nexus.wxpai.cn/content/repositories/snapshots/
</url>
</snapshotRepository>
</distributionManagement>
</project>
src/main/java/com/hdp/APP.java
View file @
37fdd3af
...
...
@@ -72,6 +72,7 @@ public class APP extends WebMvcAutoConfiguration
public
void
registerWebSocketHandlers
(
WebSocketHandlerRegistry
registry
)
{
LOGGER
.
info
(
"这里可以注册websocket路由~~~~"
);
//registry.addHandler(imWebSocketEndpoint(), "/im").addInterceptors(new SimpleHandshakeInterceptor()).setAllowedOrigins("*");
}
@Bean
...
...
src/main/java/com/hdp/customerservice/api/LoginController.java
View file @
37fdd3af
...
...
@@ -9,9 +9,11 @@
package
com
.
hdp
.
customerservice
.
api
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpSession
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.web.bind.annotation.PathVariable
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.RequestMethod
;
...
...
@@ -20,12 +22,15 @@ import org.springframework.web.bind.annotation.ResponseBody;
import
com.hdp.customerservice.dto.DTO
;
import
com.hdp.customerservice.model.WorksEntity
;
import
com.hdp.customerservice.service.WorksService
;
import
com.hdp.customerservice.websocket.model.Waiter
;
import
com.hdp.pi.security.controller.JWTSecurityController
;
import
com.hdp.pi.security.domain.JWT
;
@Controller
@RequestMapping
(
"/customerservice/login"
)
public
class
LoginController
{
public
class
LoginController
extends
JWTSecurityController
{
@Autowired
/*
@Autowired
private WorksService worksService;
Integer entCode = 10001;
...
...
@@ -46,5 +51,29 @@ public class LoginController {
}
dto.data=worker;
return dto.toJson();
}
}*/
/*@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public String getSurvey(HttpServletRequest req){
JWT jwt= super.getToken(req);
DTO dto = DTO.newDTO();
if(jwt!=null && jwt.getEntCode()!=null){
dto.data=true;
Object obj=req.getSession(true).getAttribute("user");
if(obj == null){
Waiter waiter = new Waiter();
waiter.entCode = jwt.getEntCode();
HttpSession s = req.getSession();
req.getSession(true).setAttribute("user", waiter);
s = req.getSession();
System.out.println(s);
}
}else{
dto.errCode=-1;
dto.data=false;
}
return dto.toJson();
}*/
}
src/main/java/com/hdp/customerservice/api/UserInfoController.java
View file @
37fdd3af
...
...
@@ -25,7 +25,7 @@ import com.hdp.customerservice.service.WorksService;
@RequestMapping
(
"/customerservice/signed"
)
public
class
UserInfoController
{
@Autowired
/*
@Autowired
private WorksService worksService;
Integer entCode = 10001;
...
...
@@ -35,5 +35,5 @@ public class UserInfoController {
DTO dto=DTO.newDTO();
dto.data=request.getSession(true).getAttribute("user");
return dto.toJson();
}
}
*/
}
src/main/java/com/hdp/customerservice/api/admin/WorksController.java
View file @
37fdd3af
...
...
@@ -25,7 +25,7 @@ import com.hdp.customerservice.service.WorksService;
@RequestMapping
(
"/admin/customerservice/worker"
)
public
class
WorksController
{
@Autowired
/*
@Autowired
private WorksService worksService;
Integer entCode = 10001;
...
...
@@ -61,5 +61,5 @@ public class WorksController {
DTO dto = DTO.newDTO();
dto.data=worksService.get(id);
return dto.toJson();
}
}
*/
}
src/main/java/com/hdp/customerservice/filter/CORSFilter.java
View file @
37fdd3af
...
...
@@ -21,11 +21,11 @@ import org.springframework.stereotype.Component;
@Component
public
class
CORSFilter
implements
Filter
{
public
void
doFilter
(
ServletRequest
req
,
ServletResponse
res
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
HttpServletResponse
response
=
(
HttpServletResponse
)
res
;
/*
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, PUT, GET, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "7200");
response
.
setHeader
(
"Access-Control-Allow-Headers"
,
"Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With"
);
response.setHeader("Access-Control-Allow-Headers", "Origin, No-Cache, X-Requested-With, If-Modified-Since, Pragma, Last-Modified, Cache-Control, Expires, Content-Type, X-E4M-With");
*/
chain
.
doFilter
(
req
,
res
);
}
public
void
init
(
FilterConfig
filterConfig
)
{}
...
...
src/main/java/com/hdp/customerservice/filter/NOLoginFilter.java
View file @
37fdd3af
...
...
@@ -27,7 +27,7 @@ import com.hdp.customerservice.model.WorksEntity;
@Component
public
class
NOLoginFilter
implements
Filter
{
public
void
doFilter
(
ServletRequest
request
,
ServletResponse
response
,
FilterChain
chain
)
throws
IOException
,
ServletException
{
HttpServletRequest
req
=
(
HttpServletRequest
)
request
;
/*
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
HttpSession session = req.getSession(true);
WorksEntity user = (WorksEntity)session.getAttribute("user");
...
...
@@ -39,7 +39,8 @@ public class NOLoginFilter implements Filter{
chain.doFilter(request, response);
}else{
res.sendRedirect("/login.html");
}
}*/
chain
.
doFilter
(
request
,
response
);
}
public
void
init
(
FilterConfig
filterConfig
)
{}
public
void
destroy
()
{}
...
...
src/main/java/com/hdp/customerservice/websocket/GetHttpSessionConfigurator.java
View file @
37fdd3af
...
...
@@ -21,6 +21,8 @@ public class GetHttpSessionConfigurator extends ServerEndpointConfig.Configurato
HandshakeResponse
response
)
{
HttpSession
httpSession
=
(
HttpSession
)
request
.
getHttpSession
();
config
.
getUserProperties
().
put
(
HttpSession
.
class
.
getName
(),
httpSession
);
if
(
httpSession
!=
null
){
config
.
getUserProperties
().
put
(
HttpSession
.
class
.
getName
(),
httpSession
);
}
}
}
src/main/java/com/hdp/customerservice/websocket/HistoryHandler.java
View file @
37fdd3af
...
...
@@ -29,7 +29,7 @@ public class HistoryHandler {
* @date 2015年6月18日 下午3:35:38
* @version V1.0
*/
private
static
LinkedBlockingQueue
<
HistoryEntity
>
queue
=
new
LinkedBlockingQueue
<
HistoryEntity
>();
/*
private static LinkedBlockingQueue<HistoryEntity> queue = new LinkedBlockingQueue<HistoryEntity>();
public static void push(HistoryEntity h){
try {
...
...
@@ -62,5 +62,5 @@ public class HistoryHandler {
}
}
}).start();
}
}
*/
}
src/main/java/com/hdp/customerservice/websocket/IMManager.java
View file @
37fdd3af
...
...
@@ -9,135 +9,114 @@
package
com
.
hdp
.
customerservice
.
websocket
;
import
java.io.IOException
;
import
java.util.
Iterator
;
import
java.util.
Date
;
import
java.util.concurrent.ConcurrentHashMap
;
import
java.util.concurrent.CopyOnWriteArrayList
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
java.util.concurrent.LinkedBlockingQueue
;
import
javax.websocket.Session
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.util.StringUtils
;
import
com.alibaba.fastjson.JSONObject
;
import
com.hdp.customerservice.model.HistoryEntity
;
import
com.hdp.customerservice.websocket.model.Customer
;
import
com.hdp.customerservice.websocket.model.Waiter
;
import
com.hdp.pi.wechat.messages.AbstractMessage
;
import
com.hdp.pi.wechat.messages.NewUserMessage
;
public
class
IMManager
{
public
final
class
IMManager
{
private
static
Log
log
=
LogFactory
.
getLog
(
IMManager
.
class
);
public
static
ConcurrentHashMap
<
String
,
Waiter
>
waiters
=
new
ConcurrentHashMap
<
String
,
Waiter
>();
private
static
ExecutorService
pool
=
Executors
.
newFixedThreadPool
(
Runtime
.
getRuntime
().
availableProcessors
()
*
2
);
private
static
CopyOnWriteArrayList
<
Waiter
>
waiters
=
new
CopyOnWriteArrayList
<
Waiter
>();
private
static
LinkedBlockingQueue
<
AbstractMessage
>
queue
=
new
LinkedBlockingQueue
<
AbstractMessage
>();
public
static
void
broadcast
(
String
id
,
String
message
){
Iterator
<
Waiter
>
ws
=
waiters
.
values
().
iterator
();
while
(
ws
.
hasNext
()){
try
{
Waiter
w
=(
Waiter
)
ws
.
next
();
Session
s
=
w
.
session
;
if
(
s
!=
null
&&
s
.
isOpen
()
&&
w
.
id
!=
id
){
s
.
getBasicRemote
().
sendText
(
message
);
}
}
catch
(
Throwable
e
){
}
}
}
private
IMManager
(){}
public
static
void
pushMessage
(
AbstractMessage
message
){
CustomerManager
.
addUserIfNotExist
(
message
);
try
{
queue
.
put
(
message
);
}
catch
(
InterruptedException
e
)
{
}
try
{
addUserIfNotExist
(
message
);
}
catch
(
Throwable
e
){
}
}
static
{
//测试用0.0
new
Thread
(
new
Runnable
()
{
//消息发射器
public
void
hand
(){
AbstractMessage
e
=
queue
.
poll
();
if
(
e
==
null
){
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e1
)
{
}
return
;
}
Customer
customer
=
CustomerManager
.
getUserByOpenId
(
e
.
openId
);
if
(
customer
==
null
){
pushMessage
(
e
);
return
;
}
Waiter
waiter
=
WaiterManager
.
getWaiterById
(
customer
.
waiterId
);
if
(
waiter
==
null
){
pushMessage
(
e
);
return
;
}
Session
session
=
waiter
.
session
;
if
(
session
==
null
||
!
session
.
isOpen
()){
pushMessage
(
e
);
return
;
}
String
message
=
null
;
try
{
message
=
JSONObject
.
toJSONString
(
e
);
session
.
getBasicRemote
().
sendText
(
message
);
}
catch
(
IOException
e1
)
{
pushMessage
(
e
);
return
;
}
try
{
HistoryEntity
h
=
new
HistoryEntity
(
e
.
entCode
,
e
.
openId
,
Long
.
parseLong
(
waiter
.
id
),
message
,
1
);
HistoryHandler
.
push
(
h
);
}
catch
(
Throwable
e1
){
}
}
public
static
void
addUserIfNotExist
(
AbstractMessage
e
){
final
NewUserMessage
newUserMessage
=
new
NewUserMessage
();
newUserMessage
.
appId
=
e
.
appId
;
newUserMessage
.
createTime
=
new
Date
();
newUserMessage
.
entCode
=
e
.
entCode
;
newUserMessage
.
openId
=
e
.
openId
;
pool
.
execute
(
new
Runnable
()
{
@Override
public
void
run
()
{
while
(
true
){
hand
();
}
broadcast
(
newUserMessage
);
}
}).
start
();
new
Thread
(
new
Runnable
()
{
//分配客服
public
void
hand
(){
Customer
[]
cs
=
CustomerManager
.
getUsers
();
Waiter
[]
ws
=
WaiterManager
.
getWaits
();
for
(
Customer
c
:
cs
)
{
if
(!
StringUtils
.
isEmpty
(
c
.
waiterId
)){
continue
;
}
for
(
Waiter
w
:
ws
){
if
(
w
.
customs
.
size
()
==
0
){
c
.
waiterId
=
w
.
id
;
w
.
customs
.
add
(
c
.
openId
);
continue
;
});
}
public
static
void
broadcast
(
AbstractMessage
message
){
if
(
waiters
.
size
()
==
0
){
return
;
}
String
m
=
JSONObject
.
toJSONString
(
message
);
for
(
Waiter
waiter
:
waiters
)
{
if
(
waiter
==
null
||
message
.
entCode
==
null
||
waiter
.
entCode
==
null
||
waiter
.
entCode
.
intValue
()
!=
message
.
entCode
.
intValue
()){
//没有客服
continue
;
}
Session
session
=
waiter
.
session
;
if
(
session
==
null
||
!
session
.
isOpen
()){
return
;
}
try
{
session
.
getBasicRemote
().
sendText
(
m
);
}
catch
(
IOException
e1
)
{
}
}
}
public
static
void
addWaiter
(
Waiter
w
){
waiters
.
add
(
w
);
}
public
static
void
removeWaiter
(
Waiter
w
){
waiters
.
remove
(
w
);
}
static
{
int
pross
=
Runtime
.
getRuntime
().
availableProcessors
();
for
(
int
i
=
0
;
i
<
pross
;
i
++){
pool
.
execute
(
new
Runnable
()
{
//消息发射器
public
void
hand
(){
AbstractMessage
e
=
queue
.
poll
();
if
(
e
==
null
){
try
{
Thread
.
sleep
(
3000
);
}
catch
(
InterruptedException
e1
)
{
}
return
;
}
broadcast
(
e
);
}
}
@Override
public
void
run
()
{
while
(
true
){
hand
();
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
@Override
public
void
run
()
{
while
(
true
){
try
{
hand
();
}
catch
(
Throwable
e
){}
}
}
}
}
).
start
();
}
);
}
}
}
src/main/java/com/hdp/customerservice/websocket/IMWebSocketEndpoint.java
View file @
37fdd3af
...
...
@@ -13,36 +13,33 @@ import javax.websocket.server.ServerEndpoint;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.socket.CloseStatus
;
import
org.springframework.web.socket.WebSocketHandler
;
import
org.springframework.web.socket.WebSocketMessage
;
import
org.springframework.web.socket.WebSocketSession
;
import
org.springframework.web.socket.handler.WebSocketHandlerDecorator
;
import
com.hdp.customerservice.model.WorksEntity
;
import
com.hdp.customerservice.websocket.model.Waiter
;
@ServerEndpoint
(
value
=
"/im"
,
configurator
=
GetHttpSessionConfigurator
.
class
)
public
class
IMWebSocketEndpoint
{
@ServerEndpoint
(
value
=
"/im"
/*,configurator=GetHttpSessionConfigurator.class*/
)
public
class
IMWebSocketEndpoint
{
private
static
Log
log
=
LogFactory
.
getLog
(
IMWebSocketEndpoint
.
class
);
private
HttpSession
httpSession
;
//当前登录用户的http session
private
Waiter
waiter
;
//当前客服
private
Waiter
waiter
;
@OnOpen
public
void
handleConnect
(
Session
session
,
EndpointConfig
config
)
throws
IOException
{
this
.
httpSession
=
(
HttpSession
)
config
.
getUserProperties
()
.
get
(
HttpSession
.
class
.
getName
());
WorksEntity
worksEntity
=
(
WorksEntity
)
this
.
httpSession
.
getAttribute
(
"user"
);
waiter
=
new
Waiter
();
waiter
.
entCode
=
worksEntity
.
getEntCode
();
waiter
.
id
=
worksEntity
.
getId
().
toString
();
waiter
.
nickName
=
worksEntity
.
getNickName
();
waiter
.
headImg
=
worksEntity
.
getHeadImg
();
waiter
.
userName
=
worksEntity
.
getUserName
();
waiter
.
session
=
session
;
WaiterManager
.
addWaiter
(
waiter
);
//当前所有在线客服
public
void
handleConnect
(
Session
session
/*,EndpointConfig config*/
)
throws
IOException
{
this
.
waiter
=
new
Waiter
();
String
str
=
session
.
getQueryString
();
str
=
str
.
substring
(
str
.
indexOf
(
"ent_code="
)+
9
);
this
.
waiter
.
entCode
=
Integer
.
parseInt
(
str
);
this
.
waiter
.
session
=
session
;
IMManager
.
addWaiter
(
waiter
);
}
@OnClose
public
void
handleClose
(
Session
session
){
log
.
info
(
waiter
.
nickName
+
"离线了"
);
WaiterManager
.
removeWaiter
(
waiter
.
id
);
IMManager
.
removeWaiter
(
waiter
);
}
@OnError
...
...
src/main/java/com/hdp/customerservice/websocket/SimpleHandshakeInterceptor.java
0 → 100644
View file @
37fdd3af
/**
* @Title: SimpleHandshakeInterceptor.java
* @Package com.hdp.customerservice.websocket
* @Description: TODO
* @author new12304508_163_com
* @date 2015年6月19日 下午3:00:20
* @version V1.0
*/
package
com
.
hdp
.
customerservice
.
websocket
;
import
java.util.Map
;
import
org.springframework.http.server.ServerHttpRequest
;
import
org.springframework.http.server.ServerHttpResponse
;
import
org.springframework.web.socket.WebSocketHandler
;
import
org.springframework.web.socket.server.HandshakeInterceptor
;
public
class
SimpleHandshakeInterceptor
implements
HandshakeInterceptor
{
@Override
public
boolean
beforeHandshake
(
ServerHttpRequest
request
,
ServerHttpResponse
response
,
WebSocketHandler
wsHandler
,
Map
<
String
,
Object
>
attributes
)
throws
Exception
{
return
true
;
}
@Override
public
void
afterHandshake
(
ServerHttpRequest
request
,
ServerHttpResponse
response
,
WebSocketHandler
wsHandler
,
Exception
exception
)
{
// TODO Auto-generated method stub
}
/**
* @Title: SimpleHandshakeInterceptor.java
* @Package com.hdp.customerservice.websocket
* @Description: TODO
* @author new12304508_163_com
* @date 2015年6月19日 下午3:00:20
* @version V1.0
*/
}
src/main/java/com/hdp/customerservice/websocket/WaiterManager.java
deleted
100644 → 0
View file @
3d869da6
/**
* @Title: WaiterManager.java
* @Package com.hdp.customerservice.websocket
* @Description: TODO
* @author new12304508_163_com
* @date 2015年6月16日 下午5:15:41
* @version V1.0
*/
package
com
.
hdp
.
customerservice
.
websocket
;
import
java.util.concurrent.ConcurrentHashMap
;
import
org.springframework.util.StringUtils
;
import
com.hdp.customerservice.websocket.model.Customer
;
import
com.hdp.customerservice.websocket.model.Waiter
;
public
class
WaiterManager
{
private
static
ConcurrentHashMap
<
String
,
Waiter
>
waiters
=
new
ConcurrentHashMap
<
String
,
Waiter
>();
private
WaiterManager
(){}
public
static
Waiter
getWaiterById
(
String
id
){
if
(
StringUtils
.
isEmpty
(
id
)){
return
null
;
}
return
waiters
.
get
(
id
);
}
public
static
void
addWaiter
(
Waiter
waiter
){
if
(
waiter
==
null
||
StringUtils
.
isEmpty
(
waiter
.
id
)){
return
;
}
waiters
.
put
(
waiter
.
id
,
waiter
);
}
public
static
void
removeWaiter
(
String
id
){
if
(!
StringUtils
.
isEmpty
(
id
)){
waiters
.
remove
(
id
);
}
}
public
static
Waiter
[]
getWaits
(){
Waiter
[]
ws
=
new
Waiter
[
waiters
.
size
()];
return
waiters
.
values
().
toArray
(
ws
);
}
}
src/main/java/com/hdp/customerservice/websocket/model/Customer.java
View file @
37fdd3af
...
...
@@ -17,7 +17,5 @@ public class Customer {
public
String
openId
;
public
String
waiterId
;
public
Date
lastTime
;
//最后活动时间
}
\ No newline at end of file
src/main/java/com/hdp/customerservice/websocket/model/Waiter.java
View file @
37fdd3af
...
...
@@ -8,9 +8,6 @@
*/
package
com
.
hdp
.
customerservice
.
websocket
.
model
;
import
java.util.ArrayList
;
import
java.util.List
;
import
javax.websocket.Session
;
public
class
Waiter
{
...
...
@@ -25,6 +22,4 @@ public class Waiter {
public
String
headImg
;
public
Session
session
;
public
List
<
String
>
customs
=
new
ArrayList
<
String
>();
}
src/main/java/com/hdp/pi/wechat/handler/MessageHandler.java
View file @
37fdd3af
...
...
@@ -28,7 +28,7 @@ public abstract class MessageHandler {
public
final
void
deCommonInfo
(
AbstractMessage
entity
,
String
message
)
throws
Exception
{
Document
doc
=
DocumentHelper
.
parseText
(
message
);
Calendar
calendar
=
Calendar
.
getInstance
();
calendar
.
setTimeInMillis
(
Long
.
parseLong
(
getXMLNodeText
(
doc
,
"/xml/CreateTime"
)));
calendar
.
setTimeInMillis
(
Long
.
parseLong
(
getXMLNodeText
(
doc
,
"/xml/CreateTime"
))
*
1000
);
entity
.
openId
=
getXMLNodeText
(
doc
,
"/xml/FromUserName"
);
entity
.
createTime
=
calendar
.
getTime
();
}
...
...
src/main/java/com/hdp/pi/wechat/messages/NewUserMessage.java
0 → 100644
View file @
37fdd3af
/**
* @Title: NewUserMessage.java
* @Package com.hdp.pi.wechat.messages
* @Description: TODO
* @author new12304508_163_com
* @date 2015年6月19日 下午12:09:45
* @version V1.0
*/
package
com
.
hdp
.
pi
.
wechat
.
messages
;
public
class
NewUserMessage
extends
AbstractMessage
{
/**
* @Title: NewUserMessage.java
* @Package com.hdp.pi.wechat.messages
* @Description: TODO
* @author new12304508_163_com
* @date 2015年6月19日 下午12:09:45
* @version V1.0
*/
public
String
msgType
=
"newUser"
;
}
src/main/resources/META-INF/spring/applicationContext.xml
View file @
37fdd3af
...
...
@@ -67,4 +67,13 @@
</bean>
<bean
id=
"validator"
class=
"org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"
/>
<bean
id=
"securityFilter"
class=
"com.hdp.pi.security.filter.SecurityFilter"
>
<property
name=
"debug"
value=
"true"
/>
<property
name=
"whiteList"
>
<list>
<value>
.wxpai.cn
</value>
</list>
</property>
<property
name=
"maxAge"
value=
"7200"
/>
</bean>
</beans>
\ No newline at end of file
src/main/resources/static/js/app.js
View file @
37fdd3af
...
...
@@ -85,9 +85,9 @@ websocketApp.controller('UserListCtrl',
[
'$scope'
,
'$rootScope'
,
'$location'
,
'$resource'
,
'$stateParams'
,
'WebSocketService'
,
function
(
$scope
,
$rootScope
,
$location
,
$resource
,
$stateParams
,
WebSocketService
)
{
$scope
.
users
=
[];
//[{nickName:'111111',messages:11}];
$scope
.
$on
(
'
UserList
'
,
function
(
event
,
data
)
{
$scope
.
$on
(
'
newUser
'
,
function
(
event
,
data
)
{
$scope
.
$apply
(
function
(){
$scope
.
users
=
data
.
data
;
$scope
.
users
.
push
(
data
.
data
.
openId
)
;
});
});
}]);
...
...
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