Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SiEn
Overview
Overview
Details
Activity
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
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hewei
SiEn
Commits
15696384
Commit
15696384
authored
Nov 02, 2020
by
zhangjw
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1:完善推送订单逻辑
parent
46255ed1
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
13 additions
and
53 deletions
+13
-53
common/src/main/java/com/jumeirah/common/mq/Queue.java
+1
-1
common/src/main/java/com/jumeirah/common/service/impl/StrokeServiceImpl.java
+3
-1
customer-service/src/main/java/com/ym/im/entity/model/OrderModel.java
+0
-37
customer-service/src/main/java/com/ym/im/mq/Receiver.java
+9
-14
No files found.
common/src/main/java/com/jumeirah/common/mq/Queue.java
View file @
15696384
...
...
@@ -30,7 +30,7 @@ public class Queue {
*
* @param orderInteractionModel
*/
public
void
pushOrder
(
Str
oke
stroke
)
{
public
void
pushOrder
(
Str
ing
stroke
)
{
rabbitTemplate
.
convertAndSend
(
orderQueueName
,
stroke
);
}
...
...
common/src/main/java/com/jumeirah/common/service/impl/StrokeServiceImpl.java
View file @
15696384
package
com
.
jumeirah
.
common
.
service
.
impl
;
import
com.alibaba.fastjson.JSON
;
import
com.baomidou.mybatisplus.core.metadata.IPage
;
import
com.baomidou.mybatisplus.core.metadata.OrderItem
;
import
com.baomidou.mybatisplus.extension.plugins.pagination.Page
;
...
...
@@ -15,6 +16,7 @@ import com.jumeirah.common.vo.McStrokePaymentQueryVo;
import
com.jumeirah.common.vo.McStrokeQueryVo
;
import
com.jumeirah.common.vo.StrokeDetailVo
;
import
com.jumeirah.common.vo.StrokeQueryVo
;
import
com.rabbitmq.tools.json.JSONUtil
;
import
io.geekidea.springbootplus.framework.common.service.impl.BaseServiceImpl
;
import
io.geekidea.springbootplus.framework.core.pagination.PageInfo
;
import
io.geekidea.springbootplus.framework.core.pagination.Paging
;
...
...
@@ -46,7 +48,7 @@ public class StrokeServiceImpl extends BaseServiceImpl<StrokeMapper, Stroke> imp
public
boolean
saveStroke
(
Stroke
stroke
)
throws
Exception
{
final
boolean
save
=
super
.
save
(
stroke
);
if
(
save
)
{
//推送订单到客服系统
queue
.
pushOrder
(
stroke
);
queue
.
pushOrder
(
JSON
.
toJSONString
(
stroke
)
);
}
return
save
;
}
...
...
customer-service/src/main/java/com/ym/im/entity/model/OrderModel.java
deleted
100644 → 0
View file @
46255ed1
package
com
.
ym
.
im
.
entity
.
model
;
import
lombok.Data
;
import
java.io.Serializable
;
/**
* @author: JJww
* @Date:2019-07-19
*/
@Data
public
class
OrderModel
implements
Serializable
{
private
static
final
long
serialVersionUID
=
1L
;
/**
* 订单类型
*/
private
String
type
;
/**
* 订单ID
*/
private
String
orderId
;
/**
* 订单状态
*/
private
String
orderStatus
;
/**
* 用户Id
*/
private
String
userId
;
private
Long
merchantId
;
}
customer-service/src/main/java/com/ym/im/mq/Receiver.java
View file @
15696384
package
com
.
ym
.
im
.
mq
;
import
com.ym.im.entity.ChatRecord
;
import
com.ym.im.entity.MsgBody
;
import
com.ym.im.entity.StaffSocketInfo
;
import
com.ym.im.entity.UserSocketInfo
;
import
com.ym.im.entity.*
;
import
com.ym.im.entity.base.NettyConstant
;
import
com.ym.im.entity.enums.RoleEnum
;
import
com.ym.im.entity.model.IdModel
;
import
com.ym.im.entity.model.OrderModel
;
import
com.ym.im.handler.ChannelGroupHandler
;
import
com.ym.im.service.StaffService
;
import
com.ym.im.util.JsonUtils
;
...
...
@@ -70,7 +66,7 @@ public class Receiver {
if
(
channelGroup
.
getMerchantStaff
(
staffId
)
==
null
)
{
final
Set
<
Long
>
userIds
=
staffSocketInfo
.
getUserIds
();
log
.
info
(
"客服离线队列: "
+
"ID: "
+
"UserIds:"
+
userIds
);
userIds
.
forEach
(
(
Long
userId
)
->
{
userIds
.
forEach
(
userId
->
{
//用户在线才重新分配和转发
if
(
channelGroup
.
USER_GROUP
.
get
(
userId
)
!=
null
)
{
final
StaffSocketInfo
idleStaff
=
staffService
.
getIdleStaff
(
staffSocketInfo
.
getMerchantId
(),
userId
);
...
...
@@ -107,16 +103,15 @@ public class Receiver {
*/
@SneakyThrows
@RabbitListener
(
queues
=
ORDER_QUEUE_NAME
)
public
void
orderHandler
(
OrderModel
orderModel
)
{
log
.
info
(
"Constants.ORDER_QUEUE_NAME: "
+
JsonUtils
.
obj2Json
(
orderModel
));
final
UserSocketInfo
userSocketInfo
=
channelGroup
.
USER_GROUP
.
get
(
Long
.
valueOf
(
orderModel
.
getUserId
()));
public
void
orderHandler
(
String
json
)
{
final
Stroke
stroke
=
JsonUtils
.
json2Obj
(
json
,
Stroke
.
class
);
final
Long
userId
=
stroke
.
getUserId
();
final
UserSocketInfo
userSocketInfo
=
channelGroup
.
USER_GROUP
.
get
(
userId
);
if
(
userSocketInfo
==
null
)
{
return
;
}
StaffSocketInfo
staffSocketInfo
=
channelGroup
.
getMerchantStaff
(
userSocketInfo
.
getStaffId
(
orderModel
.
getMerchant
Id
()));
final
MsgBody
<
OrderModel
>
orderInfo
=
new
MsgBody
<
OrderModel
>().
setCode
(
MsgBody
.
ORDER
).
setData
(
orderModel
);
StaffSocketInfo
staffSocketInfo
=
channelGroup
.
getMerchantStaff
(
userSocketInfo
.
getStaffId
(
stroke
.
getMc
Id
()));
final
MsgBody
<
Stroke
>
orderInfo
=
new
MsgBody
<
Stroke
>().
setCode
(
MsgBody
.
ORDER
).
setData
(
stroke
);
/**
* 绑定客服在线,发送订单信息
*/
...
...
@@ -128,7 +123,7 @@ public class Receiver {
/**
* 绑定客服不在线,给历史客服发送订单信息
*/
final
Long
staffId
=
(
Long
)
redisTemplate
.
opsForHash
().
get
(
NettyConstant
.
IM_USERS
,
orderModel
.
getUserId
()
);
final
Long
staffId
=
(
Long
)
redisTemplate
.
opsForHash
().
get
(
NettyConstant
.
IM_USERS
,
userId
);
if
(
staffId
!=
null
)
{
log
.
info
(
"客服订单: "
+
"尝试给历史客服("
+
staffId
+
")发送订单:"
+
orderInfo
.
toString
());
staffSocketInfo
=
channelGroup
.
getMerchantStaff
(
staffId
);
...
...
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