From c0bd1fe6df4ed89883f4c938195e3df715605d38 Mon Sep 17 00:00:00 2001 From: chanbook <648715275@qq.com> Date: Tue, 2 Aug 2022 15:35:44 +0800 Subject: [PATCH] fix json type --- .../chat/demo/constant/EAgoraEventType.java | 28 ++++++++++++------- .../com/zhangshu/chat/demo/EventTest.java | 23 +++++++++++++++ 2 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 src/test/java/com/zhangshu/chat/demo/EventTest.java diff --git a/src/main/java/com/zhangshu/chat/demo/constant/EAgoraEventType.java b/src/main/java/com/zhangshu/chat/demo/constant/EAgoraEventType.java index 4099278..2f54553 100644 --- a/src/main/java/com/zhangshu/chat/demo/constant/EAgoraEventType.java +++ b/src/main/java/com/zhangshu/chat/demo/constant/EAgoraEventType.java @@ -1,27 +1,35 @@ package com.zhangshu.chat.demo.constant; +import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; import lombok.AllArgsConstructor; import lombok.Getter; +import java.util.Arrays; + @Getter @AllArgsConstructor public enum EAgoraEventType { - channel_create(101,"channel create","创建频道"), - channel_destroy(102,"channel destroy","销毁频道"), - broadcaster_join_channel(103,"broadcaster join channel","直播场景下,主播加入频道"), - broadcaster_leave_channel(104,"broadcaster leave channel","直播场景下,主播离开频道"), - audience_join_channel(105,"audience join channel","直播场景下,观众加入频道"), - audience_leave_channel(106,"audience leave channel","直播场景下,观众离开频道"), - user_join_channel_with_communication_mode(107,"user join channel with communication mode","通信场景下,用户加入频道"), - user_leave_channel_with_communication_mode(108,"user leave channel with communication mode","通信场景下,用户离开频道"), - client_role_change_to_broadcaster(111,"client role change to broadcaster","直播场景下,观众将角色切换为主播"), - client_role_change_to_audience(112,"client role change to audience","直播场景下,主播将角色切换为观众"), + channel_create(101, "channel create", "创建频道"), + channel_destroy(102, "channel destroy", "销毁频道"), + broadcaster_join_channel(103, "broadcaster join channel", "直播场景下,主播加入频道"), + broadcaster_leave_channel(104, "broadcaster leave channel", "直播场景下,主播离开频道"), + audience_join_channel(105, "audience join channel", "直播场景下,观众加入频道"), + audience_leave_channel(106, "audience leave channel", "直播场景下,观众离开频道"), + user_join_channel_with_communication_mode(107, "user join channel with communication mode", "通信场景下,用户加入频道"), + user_leave_channel_with_communication_mode(108, "user leave channel with communication mode", "通信场景下,用户离开频道"), + client_role_change_to_broadcaster(111, "client role change to broadcaster", "直播场景下,观众将角色切换为主播"), + client_role_change_to_audience(112, "client role change to audience", "直播场景下,主播将角色切换为观众"), ; @JsonValue private final int type; private final String name; private final String description; + + @JsonCreator + public static EAgoraEventType getByType(int type) { + return Arrays.stream(EAgoraEventType.values()).filter(v -> v.type == type).findFirst().orElse(channel_create); + } } diff --git a/src/test/java/com/zhangshu/chat/demo/EventTest.java b/src/test/java/com/zhangshu/chat/demo/EventTest.java new file mode 100644 index 0000000..7056095 --- /dev/null +++ b/src/test/java/com/zhangshu/chat/demo/EventTest.java @@ -0,0 +1,23 @@ +package com.zhangshu.chat.demo; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.zhangshu.chat.demo.constant.EAgoraEventType; +import com.zhangshu.chat.demo.dto.AgoraEventDto; +import lombok.SneakyThrows; +import org.junit.jupiter.api.Test; + +public class EventTest { + @Test + @SneakyThrows + public void test() { + String str = "{\"eventType\":101}"; + ObjectMapper mapper = new ObjectMapper(); +// AgoraEventDto agoraEventDto = mapper.readValue(str, AgoraEventDto.class); + AgoraEventDto agoraEventDto = new AgoraEventDto(); + agoraEventDto.setEventType(EAgoraEventType.audience_join_channel); + String s = mapper.writeValueAsString(agoraEventDto); + System.out.println(s); + AgoraEventDto agoraEventDto2 = mapper.readValue(s, AgoraEventDto.class); + System.out.println(mapper.writeValueAsString(agoraEventDto2)); + } +}