Bladeren bron

fix : Websocket客服系统优化处理01

bilingfeng 1 jaar geleden
bovenliggende
commit
d6940fa162

+ 1 - 1
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/ManageApplication.java

@@ -23,7 +23,7 @@ public class ManageApplication {
 
     public static void main(String[] args) {
         SpringApplication.run(ManageApplication.class, args);
-        System.out.println("赞象Manage服务启动成功 <Websocket客服系统优化处理> ( ´・・)ノ(._.`) \n" +
+        System.out.println("赞象Manage服务启动成功 <Websocket客服系统优化处理01> ( ´・・)ノ(._.`) \n" +
                 "___  ___  ___   _   _   ___  _____  _____ \n" +
                 "|  \\/  | / _ \\ | \\ | | / _ \\|  __ \\|  ___|\n" +
                 "| .  . |/ /_\\ \\|  \\| |/ /_\\ \\ |  \\/| |__  \n" +

+ 10 - 7
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/service/impl/KfRoomMsgServiceImpl.java

@@ -51,13 +51,16 @@ public class KfRoomMsgServiceImpl extends ServiceImpl<KfRoomMsgMapper, KfRoomMsg
         //构造消息列表
         List<KfWebSocketMsgDTO.RoomMsgBean> roomMsgBeanList = kfRoomMsgPage.getRecords().stream()
                 .map(roomMsgBean -> this.transform(roomMsgBean, kfUserNameMap)).collect(Collectors.toList());
-        //消息列表不为空
-        if (CollectionUtils.isNotEmpty(roomMsgBeanList)) {
-            //更新消息已读状态
-            List<String> msgIdList = roomMsgBeanList.stream()
-                    .filter(msg -> Objects.equals(msg.getReadStatus(), Boolean.FALSE))
-                    .map(KfWebSocketMsgDTO.RoomMsgBean::getMsgId)
-                    .collect(Collectors.toList());
+        //没有查到数据
+        if (CollectionUtils.isEmpty(roomMsgBeanList)) {
+            return Tuples.of(KfWebSocketMsgDTO.defaultPage(pageBean.getPageNum(), pageBean.getPageSize()), Collections.emptyList());
+        }
+        //更新消息已读状态
+        List<String> msgIdList = roomMsgBeanList.stream()
+                .filter(msg -> Objects.equals(msg.getReadStatus(), Boolean.FALSE))
+                .map(KfWebSocketMsgDTO.RoomMsgBean::getMsgId)
+                .collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(msgIdList)) {
             super.update(new LambdaUpdateWrapper<KfRoomMsg>()
                     .set(KfRoomMsg::getReadStatus, Boolean.TRUE)
                     .set(KfRoomMsg::getUpdateTime, LocalDateTime.now())

+ 2 - 0
game-module/game-module-manage/src/main/java/com/zanxiang/game/module/manage/websocket/KfMsgWebsocketHandler.java

@@ -392,6 +392,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
         kfRoomMsgService.update(new LambdaUpdateWrapper<KfRoomMsg>()
                 .set(KfRoomMsg::getRoomId, roomId)
                 .set(KfRoomMsg::getKfUserId, SecurityUtil.getUserId())
+                .set(kfSessionUser.getUserId() != null, KfRoomMsg::getUserId, kfSessionUser.getUserId())
                 .set(KfRoomMsg::getUpdateTime, LocalDateTime.now())
                 .eq(KfRoomMsg::getOpenId, param.getOpenId())
                 .eq(KfRoomMsg::getGameId, param.getGameId())
@@ -498,6 +499,7 @@ public class KfMsgWebsocketHandler implements WebSocketHandler {
     private void sendMessage(WebSocketSession session, KfWebSocketMsgDTO kfWebSocketMsgDTO) {
         try {
             session.sendMessage(new TextMessage(JsonUtil.toString(kfWebSocketMsgDTO)));
+            log.error("发送消息给客服 kfUserId : {}, msg : {}", SecurityUtil.getUserId(), JsonUtil.toString(kfWebSocketMsgDTO));
         } catch (IOException ignored) {
         }
     }