From 0918083443d3920335c5b09a5d28e4f8d1bb3f45 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 27 May 2021 16:59:28 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java   |   14 +++++--
 src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java       |   59 ++++++++---------------------
 src/main/java/com/xcong/excoin/rabbit/consumer/ChatConsumer.java |   22 +++++-----
 3 files changed, 37 insertions(+), 58 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java b/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java
index 15936f6..ef23959 100644
--- a/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java
+++ b/src/main/java/com/xcong/excoin/netty/bean/ChatRequest.java
@@ -1,58 +1,31 @@
 package com.xcong.excoin.netty.bean;
 
 
-import java.io.Serializable;
+import lombok.Data;
 
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ *  {"data": {"fromMemberId": 443, "isSelf": 1, "memberId": 443, "msg": "w shi shei ", "msgType": 1, "targetId": 444}, "type": 2}
+ */
+@Data
 public class ChatRequest implements Serializable {
     private static final long serialVersionUID = 3079080008111369136L;
 
-    private String to;
+    private Long fromMemberId;
 
-    private String from;
+    private Long targetId;
+
+    private Long memberId;
 
     private Integer msgType;
 
-    private String content;
+    private String msg;
+
+    private Integer isSelf;
 
     private Integer cmd;
 
-    public Integer getCmd() {
-        return cmd;
-    }
-
-    public void setCmd(Integer cmd) {
-        this.cmd = cmd;
-    }
-
-    public String getTo() {
-        return to;
-    }
-
-    public void setTo(String to) {
-        this.to = to;
-    }
-
-    public String getFrom() {
-        return from;
-    }
-
-    public void setFrom(String from) {
-        this.from = from;
-    }
-
-    public Integer getMsgType() {
-        return msgType;
-    }
-
-    public void setMsgType(Integer msgType) {
-        this.msgType = msgType;
-    }
-
-    public String getContent() {
-        return content;
-    }
-
-    public void setContent(String content) {
-        this.content = content;
-    }
+    private Long timestamp;
 }
diff --git a/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java b/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java
index 8378aa7..aec85e6 100644
--- a/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java
+++ b/src/main/java/com/xcong/excoin/netty/logic/WebSocketLogic.java
@@ -79,16 +79,22 @@
         ChatRequest chat = JSONObject.parseObject(chatStr, ChatRequest.class);
 
         Channel channel = ChannelManager.findWebSocketChannel(requestBean.getChannelId());
-        channel.writeAndFlush(NettyTools.webSocketJson(ResponseBean.ok(chat)));
+        ResponseBean res = ResponseBean.ok(chat);
+        res.setType(2);
+        channel.writeAndFlush(NettyTools.webSocketJson(res));
+
         // 判断是否在线
-        Channel targetChannel = ChannelManager.findWsChannel(Long.parseLong(chat.getTo()));
+        Channel targetChannel = ChannelManager.findWsChannel(chat.getTargetId());
         if (targetChannel != null) {
-            targetChannel.writeAndFlush(NettyTools.webSocketBytes(JSONObject.toJSONString(ResponseBean.ok(chat))));
+            chat.setIsSelf(2);
+            ResponseBean toRes = ResponseBean.ok(chat);
+            res.setType(2);
+            targetChannel.writeAndFlush(NettyTools.webSocketJson(toRes));
 
             chatProducer.sendMsgHistory(chat);
         } else {
             // 在redis中保存用户未在线时,给该用户发送的消息条数
-            String key = AppContants.MSG_NOTICE + chat.getTo();
+            String key = AppContants.MSG_NOTICE + chat.getTargetId();
             String value = redisUtils.getString(key);
             if (StrUtil.isEmpty(value)) {
                 redisUtils.set(key , 1);
diff --git a/src/main/java/com/xcong/excoin/rabbit/consumer/ChatConsumer.java b/src/main/java/com/xcong/excoin/rabbit/consumer/ChatConsumer.java
index 4902736..fffc824 100644
--- a/src/main/java/com/xcong/excoin/rabbit/consumer/ChatConsumer.java
+++ b/src/main/java/com/xcong/excoin/rabbit/consumer/ChatConsumer.java
@@ -41,33 +41,33 @@
         log.info("收到历史消息处理:{}", content);
         ChatRequest chat = JSONObject.parseObject(content, ChatRequest.class);
 
-        Long toId = Long.parseLong(chat.getTo());
-        Long fromId = Long.parseLong(chat.getFrom());
+        Long toId = chat.getTargetId();
+        Long fromId = chat.getFromMemberId();
 
         // 发送人是否存在聊天框
-        OtcMsgUserListEntity fromList = otcMsgUserListDao.selectChatListByToAndFrom(Long.parseLong(chat.getTo()), Long.parseLong(chat.getFrom()));
+        OtcMsgUserListEntity fromList = otcMsgUserListDao.selectChatListByToAndFrom(toId, fromId);
         if (fromList == null) {
             OtcMsgUserListEntity from = new OtcMsgUserListEntity();
-            from.setMemberId(Long.parseLong(chat.getFrom()));
-            from.setTargetId(Long.parseLong(chat.getTo()));
+            from.setMemberId(toId);
+            from.setTargetId(fromId);
             from.setIsRead(OtcMsgUserListEntity.ISREAD_TWO);
             from.setLastMsgTime(new Date());
             otcMsgUserListDao.insert(from);
         }
 
         // 收件人是否存在聊天框
-        OtcMsgUserListEntity toList = otcMsgUserListDao.selectChatListByToAndFrom(Long.parseLong(chat.getFrom()), Long.parseLong(chat.getTo()));
+        OtcMsgUserListEntity toList = otcMsgUserListDao.selectChatListByToAndFrom(fromId, toId);
         if (toList == null) {
             OtcMsgUserListEntity from = new OtcMsgUserListEntity();
-            from.setMemberId(Long.parseLong(chat.getTo()));
-            from.setTargetId(Long.parseLong(chat.getFrom()));
+            from.setMemberId(toId);
+            from.setTargetId(fromId);
             from.setIsRead(OtcMsgUserListEntity.ISREAD_ONE);
             from.setLastMsgTime(new Date());
             otcMsgUserListDao.insert(from);
         } else {
             // 收件人正在聊的用户
-            String value = redisUtils.getString(AppContants.MSG_CHATTING + chat.getTo());
-            if (StrUtil.isNotBlank(value) && value.equals(chat.getFrom())) {
+            String value = redisUtils.getString(AppContants.MSG_CHATTING + toId);
+            if (StrUtil.isNotBlank(value) && value.equals(fromId.toString())) {
                 toList.setLastMsgTime(new Date());
                 otcMsgUserListDao.updateById(toList);
             } else {
@@ -84,7 +84,7 @@
         toHistory.setTargetId(toId);
         toHistory.setIsSelf(OtcMsgHistoryEntity.ISSELF_TWO);
         toHistory.setMsgType(chat.getMsgType());
-        toHistory.setMsg(chat.getContent());
+        toHistory.setMsg(chat.getMsg());
 
         OtcMsgHistoryEntity fromHistory = new OtcMsgHistoryEntity();
         BeanUtil.copyProperties(toHistory, fromHistory);

--
Gitblit v1.9.1