Eric 2 years ago
parent
commit
2755f9e87e

+ 33 - 5
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TencentData.java

@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.annotation.JSONField;
+import com.fasterxml.jackson.annotation.JsonProperty;
 import com.ym.mec.biz.dal.enums.ETencentGroupType;
 import com.ym.mec.biz.dal.enums.ETencentImCallbackCommand;
 import com.ym.mec.biz.dal.enums.ETencentTRTCCallbackCommand;
@@ -456,37 +457,64 @@ public class TencentData {
     }
 
 
-    @NoArgsConstructor
     @Data
-    public static class TRTCEventInfo {
+    @NoArgsConstructor
+    @AllArgsConstructor
+    @ApiModel("腾讯云回调事件")
+    public static class TRTCEventInfo implements Serializable {
 
+        @JsonProperty("EventGroupId")
         @ApiModelProperty("事件组")
         private String eventGroupId;
+
+        @JsonProperty("EventType")
         @ApiModelProperty("事件类型")
         private ETencentTRTCCallbackCommand eventType;
+
+        @JsonProperty("CallbackTs")
         @ApiModelProperty("事件时间")
-        private Date callbackTs;
+        private Long callbackTs;
+
+        @JsonProperty("EventInfo")
         @ApiModelProperty("事件消息")
         private EventInfo eventInfo;
 
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
     }
 
     @Data
+    @NoArgsConstructor
+    @AllArgsConstructor
     @ApiModel("事件消息")
-    public static class EventInfo {
+    public static class EventInfo implements Serializable {
 
+        @JsonProperty("RoomId")
         @ApiModelProperty("房间号")
         private String roomId;
+
+        @JsonProperty("EventTs")
         @ApiModelProperty("事件发生时间")
-        private Date eventTs;
+        private Long eventTs;
+
+        @JsonProperty("UserId")
         @ApiModelProperty("事件发生用户")
         private String userId;
+
+        @JsonProperty("Role")
         @ApiModelProperty("用户角色")
         private String role;
+
+        @JsonProperty("TerminalType")
         @ApiModelProperty("终端类型")
         private String terminalType;
+
+        @JsonProperty("UserType")
         @ApiModelProperty("用户类型")
         private String userType;
+
+        @JsonProperty("Reason")
         @ApiModelProperty("原因")
         private String reason;
     }

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ETencentTRTCCallbackCommand.java

@@ -1,5 +1,6 @@
 package com.ym.mec.biz.dal.enums;
 
+import com.ym.mec.common.enums.BaseEnum;
 import lombok.Getter;
 
 /**
@@ -9,7 +10,7 @@ import lombok.Getter;
  * @date 2023-03-02
  */
 @Getter
-public enum ETencentTRTCCallbackCommand {
+public enum ETencentTRTCCallbackCommand implements BaseEnum<Integer, ETencentTRTCCallbackCommand> {
 
     EVENT_TYPE_CREATE_ROOM("101", "创建房间"),
     EVENT_TYPE_DISMISS_ROOM("102", "解散房间"),
@@ -20,12 +21,13 @@ public enum ETencentTRTCCallbackCommand {
     private final String command;
     private final String desc;
 
-    private final String code;
+    private final Integer code;
 
     ETencentTRTCCallbackCommand(String command, String desc) {
         this.command = command;
         this.desc = desc;
 
-        this.code = this.name();
+        // 枚举转换对象
+        this.code = Integer.parseInt(command);
     }
 }

+ 2 - 3
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -1,6 +1,5 @@
 package com.ym.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.ym.common.BaseResponse;
 import com.ym.mec.biz.dal.dto.TencentData;
@@ -110,7 +109,7 @@ public class RoomController{
     @PostMapping(value = "/statusSyncTencent")
     public void statusSyncTencent(@RequestBody TencentData.TRTCEventInfo eventInfo) {
         try {
-            log.info("statusSyncTencent: {}", JSON.toJSON(eventInfo));
+            log.info("statusSyncTencent: {}", eventInfo.jsonString());
             String roomId = eventInfo.getEventInfo().getRoomId();
             String userId = eventInfo.getEventInfo().getUserId();
             switch (eventInfo.getEventType()){
@@ -124,7 +123,7 @@ public class RoomController{
                     break;
             }
         }catch (Exception e){
-            log.error(e.getLocalizedMessage());
+            log.error("statusSyncTencent event={}", eventInfo.jsonString(), e);
         }
     }
 

+ 6 - 6
mec-im/src/main/java/com/ym/service/Impl/RoomServiceImpl.java

@@ -712,25 +712,25 @@ public class RoomServiceImpl implements RoomService {
             RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(rtcServiceProvider);
             if (rtcServiceProvider.equals(TencentCloudRTCPlugin.PLUGIN_NAME)) {
                 // 腾讯云RTC服务
-                RTCRoomMessage.MessageContent.MessageContentBuilder messageContentBuilder = RTCRoomMessage.MessageContent
+                RTCRoomMessage.MessageContent messageContent = RTCRoomMessage.MessageContent
                         .builder()
                         .action(EMemberAction.LEAVE.getValue())
+                        .role(EMemberRole.STUDENT.getValue())
                         .handUpOn(false)
                         .timestamp(System.currentTimeMillis())
                         .microphone(false)
                         .camera(false)
-                        .sendUserInfo(getSendUser(userId,roleEnum));
+                        .sendUserInfo(getSendUser(userId, roleEnum))
+                        .build();
 
                 if (roleEnum == RoleTeacher) {
-                    messageContentBuilder.role(EMemberRole.TEACHER.getValue());
-                } else {
-                    messageContentBuilder.role(EMemberRole.STUDENT.getValue());
+                    messageContent.setRole(EMemberRole.TEACHER.getValue());
                 }
 
                 RTCRoomMessage roomMessage = RTCRoomMessage.builder()
                         .objectName(RTCRoomMessage.MEMBER_CHANGE_MESSAGE)
                         .toChatRoomId(roomId)
-                        .content(messageContentBuilder.build())
+                        .content(messageContent)
                         .fromUserId(userId)
                         .isPersisted(1)
                         .isIncludeSender(1)