liujc 2 år sedan
förälder
incheckning
c11f86e64a

+ 39 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TencentData.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.annotation.JSONField;
 import com.ym.mec.biz.dal.enums.ETencentGroupType;
 import com.ym.mec.biz.dal.enums.ETencentImCallbackCommand;
+import com.ym.mec.biz.dal.enums.ETencentTRTCCallbackCommand;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
@@ -16,6 +17,7 @@ import lombok.NoArgsConstructor;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 import java.util.ArrayList;
+import java.util.Date;
 import java.util.List;
 import java.util.Locale;
 
@@ -25,6 +27,8 @@ import java.util.Locale;
  * @author liujunchi
  * @date 2023-03-06
  */
+@NoArgsConstructor
+@Data
 public class TencentData {
 
     // 群成员离开之后回调对象
@@ -451,4 +455,39 @@ public class TencentData {
         private Integer code;
     }
 
+
+    @NoArgsConstructor
+    @Data
+    public static class TRTCEventInfo {
+
+        @ApiModelProperty("事件组")
+        private String eventGroupId;
+        @ApiModelProperty("事件类型")
+        private ETencentTRTCCallbackCommand eventType;
+        @ApiModelProperty("事件时间")
+        private Date callbackTs;
+        @ApiModelProperty("事件消息")
+        private EventInfo eventInfo;
+
+    }
+
+    @Data
+    @ApiModel("事件消息")
+    public static class EventInfo {
+
+        @ApiModelProperty("房间号")
+        private String roomId;
+        @ApiModelProperty("事件发生时间")
+        private Date eventTs;
+        @ApiModelProperty("事件发生用户")
+        private String userId;
+        @ApiModelProperty("用户角色")
+        private String role;
+        @ApiModelProperty("终端类型")
+        private String terminalType;
+        @ApiModelProperty("用户类型")
+        private String userType;
+        @ApiModelProperty("原因")
+        private String reason;
+    }
 }

+ 31 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ETencentTRTCCallbackCommand.java

@@ -0,0 +1,31 @@
+package com.ym.mec.biz.dal.enums;
+
+import lombok.Getter;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2023-03-02
+ */
+@Getter
+public enum ETencentTRTCCallbackCommand {
+
+    EVENT_TYPE_CREATE_ROOM("101", "创建房间"),
+    EVENT_TYPE_DISMISS_ROOM("102", "解散房间"),
+    EVENT_TYPE_ENTER_ROOM("103", "进入房间"),
+    EVENT_TYPE_EXIT_ROOM("104", "退出房间"),
+    ;
+
+    private final String command;
+    private final String desc;
+
+    private final String code;
+
+    ETencentTRTCCallbackCommand(String command, String desc) {
+        this.command = command;
+        this.desc = desc;
+
+        this.code = this.name();
+    }
+}

+ 24 - 0
mec-im/src/main/java/com/ym/controller/RoomController.java

@@ -1,7 +1,9 @@
 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;
 import com.ym.pojo.*;
 import com.ym.service.MessageService;
 import com.ym.service.RoomService;
@@ -104,6 +106,28 @@ public class RoomController{
         }
     }
 
+
+    @PostMapping(value = "/statusSyncTencent")
+    public void statusSyncTencent(@RequestBody TencentData.TRTCEventInfo eventInfo) {
+        try {
+            log.info("statusSyncTencent: {}", JSON.toJSON(eventInfo));
+            String roomId = eventInfo.getEventInfo().getRoomId();
+            String userId = eventInfo.getEventInfo().getUserId();
+            switch (eventInfo.getEventType()){
+                case EVENT_TYPE_ENTER_ROOM:
+                    //成员加入
+                    roomService.joinRoomSuccess(roomId, userId,null);
+                    break;
+                case EVENT_TYPE_EXIT_ROOM:
+                    //成员退出
+                    roomService.leaveRoomSuccess(roomId, userId,null);
+                    break;
+            }
+        }catch (Exception e){
+            log.error(e.getLocalizedMessage());
+        }
+    }
+
     @RequestMapping(value = "/downgrade", method = RequestMethod.POST)
     public Object downRole(@RequestBody ReqChangeUserRoleData data)
             throws Exception {