Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
fuyue82
o2oa
提交
6b97dc22
o2oa
项目概览
fuyue82
/
o2oa
与 Fork 源项目一致
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
6b97dc22
编写于
4月 11, 2022
作者:
R
Ray
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update wsClients
上级
663ece3d
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
38 addition
and
29 deletion
+38
-29
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/ThisApplication.java
...a/com/x/message/assemble/communicate/ThisApplication.java
+11
-0
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java
...ge/assemble/communicate/jaxrs/connector/ActionCreate.java
+4
-5
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/im/ActionMsgCreate.java
...essage/assemble/communicate/jaxrs/im/ActionMsgCreate.java
+1
-2
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/ws/ActionCreate.java
...x/message/assemble/communicate/jaxrs/ws/ActionCreate.java
+2
-2
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/ws/collaboration/ActionCollaboration.java
...ble/communicate/ws/collaboration/ActionCollaboration.java
+20
-20
未找到文件。
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/ThisApplication.java
浏览文件 @
6b97dc22
package
com.x.message.assemble.communicate
;
import
java.util.Map
;
import
java.util.concurrent.ConcurrentHashMap
;
import
javax.websocket.Session
;
import
org.apache.commons.lang3.BooleanUtils
;
import
com.x.base.core.project.Context
;
...
...
@@ -47,6 +52,12 @@ public class ThisApplication {
public
static
final
TableConsumeQueue
tableConsumeQueue
=
new
TableConsumeQueue
();
private
static
final
Map
<
Session
,
String
>
WSCLIENTS
=
new
ConcurrentHashMap
<>();
public
static
Map
<
Session
,
String
>
wsClients
()
{
return
WSCLIENTS
;
}
public
static
Context
context
()
{
return
context
;
}
...
...
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/connector/ActionCreate.java
浏览文件 @
6b97dc22
...
...
@@ -566,7 +566,7 @@ class ActionCreate extends BaseAction {
case
MessageConnector
.
CONSUME_CALENDAR
:
message
=
this
.
v3CalendarMessage
(
wi
,
consumer
);
break
;
// restful, mq, api, mail, jdbc, custom_消息没有其他判断条件
// restful, mq, api, mail, jdbc,
table,
custom_消息没有其他判断条件
default
:
message
=
this
.
v3Message
(
wi
,
consumer
);
break
;
...
...
@@ -579,7 +579,7 @@ class ActionCreate extends BaseAction {
private
Message
v3Message
(
Wi
wi
,
Consumer
consumer
)
{
Message
message
=
new
Message
();
message
.
setBody
(
Objects
.
toString
(
v3
l
oad
(
wi
,
consumer
)));
message
.
setBody
(
Objects
.
toString
(
v3
L
oad
(
wi
,
consumer
)));
message
.
setType
(
wi
.
getType
());
message
.
setPerson
(
wi
.
getPerson
());
message
.
setTitle
(
wi
.
getTitle
());
...
...
@@ -654,8 +654,7 @@ class ActionCreate extends BaseAction {
Message
message
=
null
;
try
{
if
(
BooleanUtils
.
isTrue
(
Config
.
qiyeweixin
().
getEnable
())
&&
BooleanUtils
.
isTrue
(
Config
.
qiyeweixin
().
getMessageEnable
())
&&
BooleanUtils
.
isTrue
(
v3Filter
(
wi
,
consumer
)))
{
&&
BooleanUtils
.
isTrue
(
Config
.
qiyeweixin
().
getMessageEnable
()))
{
message
=
v3Message
(
wi
,
consumer
);
}
}
catch
(
Exception
e
)
{
...
...
@@ -733,7 +732,7 @@ class ActionCreate extends BaseAction {
return
true
;
}
private
JsonElement
v3
l
oad
(
Wi
wi
,
Consumer
consumer
)
{
private
JsonElement
v3
L
oad
(
Wi
wi
,
Consumer
consumer
)
{
JsonElement
jsonElement
=
wi
.
getBody
();
try
{
if
(
StringUtils
.
isNotBlank
(
consumer
.
getLoader
()))
{
...
...
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/im/ActionMsgCreate.java
浏览文件 @
6b97dc22
...
...
@@ -20,7 +20,6 @@ import com.x.base.core.project.logger.Logger;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.message.MessageConnector
;
import
com.x.message.assemble.communicate.ThisApplication
;
import
com.x.message.assemble.communicate.ws.collaboration.ActionCollaboration
;
import
com.x.message.core.entity.IMConversation
;
import
com.x.message.core.entity.IMMsg
;
import
com.x.message.core.entity.Message
;
...
...
@@ -73,7 +72,7 @@ public class ActionMsgCreate extends BaseAction {
MessageConnector
.
send
(
MessageConnector
.
TYPE_IM_CREATE
,
title
,
person
,
msg
);
// 如果消息接收者没有在线 连接ws 就发送一个推送消息
try
{
if
(!
ActionCollaboration
.
clients
.
containsValue
(
person
))
{
if
(!
ThisApplication
.
wsClients
()
.
containsValue
(
person
))
{
LOGGER
.
info
(
"向app 推送im消息, person: "
+
person
);
Message
message
=
new
Message
();
String
body
=
imMessageBody
(
msg
);
...
...
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/jaxrs/ws/ActionCreate.java
浏览文件 @
6b97dc22
...
...
@@ -13,7 +13,7 @@ import com.x.base.core.project.jaxrs.WrapBoolean;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.message.WsMessage
;
import
com.x.message.assemble.communicate.
ws.collaboration.ActionCollabor
ation
;
import
com.x.message.assemble.communicate.
ThisApplic
ation
;
class
ActionCreate
extends
BaseAction
{
...
...
@@ -28,7 +28,7 @@ class ActionCreate extends BaseAction {
Wo
wo
=
new
Wo
();
wo
.
setValue
(
false
);
for
(
Entry
<
Session
,
String
>
entry
:
ActionCollaboration
.
clients
.
entrySet
())
{
for
(
Entry
<
Session
,
String
>
entry
:
ThisApplication
.
wsClients
()
.
entrySet
())
{
if
(
StringUtils
.
equals
(
entry
.
getValue
(),
wi
.
getPerson
()))
{
Session
session
=
entry
.
getKey
();
if
(
session
!=
null
&&
session
.
isOpen
())
{
...
...
o2server/x_message_assemble_communicate/src/main/java/com/x/message/assemble/communicate/ws/collaboration/ActionCollaboration.java
浏览文件 @
6b97dc22
...
...
@@ -3,7 +3,6 @@ package com.x.message.assemble.communicate.ws.collaboration;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.ConcurrentHashMap
;
import
javax.persistence.EntityManager
;
import
javax.persistence.criteria.CriteriaBuilder
;
...
...
@@ -23,6 +22,7 @@ import org.apache.commons.lang3.StringUtils;
import
com.google.gson.JsonElement
;
import
com.x.base.core.container.EntityManagerContainer
;
import
com.x.base.core.container.factory.EntityManagerContainerFactory
;
import
com.x.base.core.entity.JpaObject_
;
import
com.x.base.core.project.gson.XGsonBuilder
;
import
com.x.base.core.project.http.EffectivePerson
;
import
com.x.base.core.project.http.HttpToken
;
...
...
@@ -31,25 +31,24 @@ import com.x.base.core.project.logger.Logger;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.message.MessageConnector
;
import
com.x.base.core.project.message.WsMessage
;
import
com.x.message.assemble.communicate.ThisApplication
;
import
com.x.message.core.entity.Message
;
import
com.x.message.core.entity.Message_
;
@ServerEndpoint
(
value
=
"/ws/collaboration"
,
configurator
=
WsConfigurator
.
class
)
public
class
ActionCollaboration
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ActionCollaboration
.
class
);
public
static
final
ConcurrentHashMap
<
Session
,
String
>
clients
=
new
ConcurrentHashMap
<
Session
,
String
>();
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
ActionCollaboration
.
class
);
@OnOpen
public
void
open
(
Session
session
)
{
EffectivePerson
effectivePerson
=
(
EffectivePerson
)
session
.
getUserProperties
().
get
(
HttpToken
.
X_Person
);
logger
.
debug
(
"@OnOpen: tokenType:{}, distinguishedName:{}."
,
effectivePerson
.
getTokenType
(),
effectivePerson
.
getDistinguishedName
());
if
(
TokenType
.
anonymous
.
equals
(
effectivePerson
.
getTokenType
()))
{
return
;
}
else
{
clients
.
put
(
session
,
effectivePerson
.
getDistinguishedName
());
LOGGER
.
debug
(
"@OnOpen: tokenType:{}, distinguishedName:{}."
,
effectivePerson:
:
getTokenType
,
effectivePerson:
:
getDistinguishedName
);
if
(!
TokenType
.
anonymous
.
equals
(
effectivePerson
.
getTokenType
()))
{
ThisApplication
.
wsClients
()
.
put
(
session
,
effectivePerson
.
getDistinguishedName
());
try
{
List
<
Message
>
messages
=
this
.
load
(
effectivePerson
);
WsMessage
ws
=
null
;
...
...
@@ -63,26 +62,27 @@ public class ActionCollaboration {
session
.
getBasicRemote
().
sendText
(
XGsonBuilder
.
toJson
(
ws
));
}
}
catch
(
Exception
e
)
{
logger
.
error
(
e
);
LOGGER
.
error
(
e
);
}
}
}
@OnClose
public
void
close
(
Session
session
,
CloseReason
reason
)
throws
IOException
{
clients
.
remove
(
session
);
public
void
close
(
Session
session
,
CloseReason
reason
)
{
ThisApplication
.
wsClients
()
.
remove
(
session
);
}
@OnError
public
void
error
(
Throwable
t
)
throws
Throwable
{
public
void
error
(
Throwable
t
)
{
// nothing
}
@OnMessage
public
void
message
(
String
input
,
Session
session
)
throws
Exception
{
public
void
message
(
String
input
,
Session
session
)
throws
IO
Exception
{
EffectivePerson
effectivePerson
=
(
EffectivePerson
)
session
.
getUserProperties
().
get
(
HttpToken
.
X_Person
);
logger
.
debug
(
"@OnMessage1 receive: message {}, person:{}, ip:{}, client:{} ."
,
input
,
effectivePerson
.
getDistinguishedName
(),
effectivePerson
.
getRemoteAddress
(),
effectivePerson
.
getUserAgent
());
LOGGER
.
debug
(
"@OnMessage receive: message {}, person:{}, ip:{}, client:{} ."
,
()
->
input
,
effectivePerson:
:
getDistinguishedName
,
effectivePerson:
:
getRemoteAddress
,
effectivePerson:
:
getUserAgent
);
if
(
StringUtils
.
isBlank
(
input
))
{
return
;
}
...
...
@@ -102,7 +102,7 @@ public class ActionCollaboration {
Predicate
p
=
cb
.
equal
(
root
.
get
(
Message_
.
person
),
effectivePerson
.
getDistinguishedName
());
p
=
cb
.
and
(
p
,
cb
.
equal
(
root
.
get
(
Message_
.
consumer
),
MessageConnector
.
CONSUME_WS
));
p
=
cb
.
and
(
p
,
cb
.
equal
(
root
.
get
(
Message_
.
consumed
),
false
));
cq
.
select
(
root
).
where
(
p
).
orderBy
(
cb
.
desc
(
root
.
get
(
Message
_
.
createTime
)));
cq
.
select
(
root
).
where
(
p
).
orderBy
(
cb
.
desc
(
root
.
get
(
JpaObject
_
.
createTime
)));
os
=
em
.
createQuery
(
cq
).
setMaxResults
(
10
).
getResultList
();
emc
.
beginTransaction
(
Message
.
class
);
for
(
Message
o
:
os
)
{
...
...
@@ -110,7 +110,7 @@ public class ActionCollaboration {
}
emc
.
commit
();
}
catch
(
Exception
e
)
{
logger
.
error
(
e
);
LOGGER
.
error
(
e
);
}
return
os
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录