From dd975d50ee8a7b221dbec0904e5fc514156fc8e1 Mon Sep 17 00:00:00 2001 From: hunan Date: Tue, 2 Aug 2022 16:45:34 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8map=E6=8E=A5=E6=94=B6?= =?UTF-8?q?=E5=A3=B0=E7=BD=91=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + .../java/com/zhangshu/chat/demo/Solution.java | 9 ++++++ .../chat/demo/controller/EventController.java | 8 +++-- .../chat/demo/service/EventService.java | 4 ++- .../chat/demo/service/EventServiceImpl.java | 31 ++++++++++++------- 5 files changed, 38 insertions(+), 15 deletions(-) create mode 100644 .gitignore create mode 100644 src/main/java/com/zhangshu/chat/demo/Solution.java diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..85e7c1d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/.idea/ diff --git a/src/main/java/com/zhangshu/chat/demo/Solution.java b/src/main/java/com/zhangshu/chat/demo/Solution.java new file mode 100644 index 0000000..461e1f3 --- /dev/null +++ b/src/main/java/com/zhangshu/chat/demo/Solution.java @@ -0,0 +1,9 @@ +package com.zhangshu.chat.demo; + +public class Solution { + + public int[] findDiagonalOrder(int[][] mat) { + int + } + +} diff --git a/src/main/java/com/zhangshu/chat/demo/controller/EventController.java b/src/main/java/com/zhangshu/chat/demo/controller/EventController.java index 5fe2770..2e724cb 100644 --- a/src/main/java/com/zhangshu/chat/demo/controller/EventController.java +++ b/src/main/java/com/zhangshu/chat/demo/controller/EventController.java @@ -13,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.Map; + @Slf4j @RestController @RequestMapping("/event") @@ -23,9 +25,9 @@ public class EventController { @PostMapping("/agora") @ApiOperation(value = "agora") - public CommonResult agora(@RequestBody AgoraEventDto dto) { - log.info("事件回调:{}", dto); - eventService.agora(dto); + public CommonResult agora(@RequestBody Map body) { + log.info("事件回调:{}", body); + eventService.agora(body); return CommonResult.success(); } } diff --git a/src/main/java/com/zhangshu/chat/demo/service/EventService.java b/src/main/java/com/zhangshu/chat/demo/service/EventService.java index 506b50e..616c1d8 100644 --- a/src/main/java/com/zhangshu/chat/demo/service/EventService.java +++ b/src/main/java/com/zhangshu/chat/demo/service/EventService.java @@ -2,6 +2,8 @@ package com.zhangshu.chat.demo.service; import com.zhangshu.chat.demo.dto.AgoraEventDto; +import java.util.Map; + public interface EventService { - void agora(AgoraEventDto dto); + void agora(Map body); } diff --git a/src/main/java/com/zhangshu/chat/demo/service/EventServiceImpl.java b/src/main/java/com/zhangshu/chat/demo/service/EventServiceImpl.java index c79ed36..7d4b04b 100644 --- a/src/main/java/com/zhangshu/chat/demo/service/EventServiceImpl.java +++ b/src/main/java/com/zhangshu/chat/demo/service/EventServiceImpl.java @@ -1,11 +1,12 @@ package com.zhangshu.chat.demo.service; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.bean.copier.CopyOptions; import com.zhangshu.chat.demo.config.AgoraProperties; +import com.zhangshu.chat.demo.constant.EAgoraEventType; import com.zhangshu.chat.demo.constant.ERoomUserType; import com.zhangshu.chat.demo.dto.AgoraChannelEventDto; import com.zhangshu.chat.demo.dto.AgoraChannelUserEventDto; -import com.zhangshu.chat.demo.dto.AgoraEventDto; -import com.zhangshu.chat.demo.entity.Room; import com.zhangshu.chat.demo.entity.User; import com.zhangshu.chat.demo.mapper.UserMapper; import com.zhangshu.chat.demo.vo.RoomUserVo; @@ -13,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.stereotype.Service; +import java.util.Map; import java.util.Objects; @Service @@ -24,22 +26,29 @@ public class EventServiceImpl implements EventService { RoomCache roomCache; @Autowired UserMapper userMapper; + + T mapToBean(Map map, Class targetClass) { + return BeanUtil.mapToBean(map, targetClass, false, CopyOptions.create()); + } @Override - public void agora(AgoraEventDto dto) { - switch (dto.getEventType()) { + public void agora(Map body) { + + Object eventTypeObj = body.get("eventType"); + EAgoraEventType eventType = EAgoraEventType.getByType((Integer) eventTypeObj); + switch (eventType) { case channel_create: { - AgoraChannelEventDto eventDto = dto.convert(AgoraChannelEventDto.class); + AgoraChannelEventDto eventDto = mapToBean(body, AgoraChannelEventDto.class); roomCache.add(eventDto.getChannelName()); } break; case channel_destroy: { - AgoraChannelEventDto eventDto = dto.convert(AgoraChannelEventDto.class); + AgoraChannelEventDto eventDto = mapToBean(body, AgoraChannelEventDto.class); roomCache.remove(eventDto.getChannelName()); } break; case broadcaster_join_channel: { - AgoraChannelUserEventDto eventDto = dto.convert(AgoraChannelUserEventDto.class); + AgoraChannelUserEventDto eventDto = mapToBean(body, AgoraChannelUserEventDto.class); User user = userMapper.selectById(eventDto.getUid()); if (Objects.isNull(user)) { break; @@ -54,12 +63,12 @@ public class EventServiceImpl implements EventService { break; case broadcaster_leave_channel: case audience_leave_channel: { - AgoraChannelUserEventDto eventDto = dto.convert(AgoraChannelUserEventDto.class); + AgoraChannelUserEventDto eventDto = mapToBean(body, AgoraChannelUserEventDto.class); roomCache.removeUser(eventDto.getChannelName(), eventDto.getUid()); } break; case audience_join_channel: { - AgoraChannelUserEventDto eventDto = dto.convert(AgoraChannelUserEventDto.class); + AgoraChannelUserEventDto eventDto = mapToBean(body, AgoraChannelUserEventDto.class); User user = userMapper.selectById(eventDto.getUid()); if (Objects.isNull(user)) { break; @@ -73,12 +82,12 @@ public class EventServiceImpl implements EventService { } break; case client_role_change_to_audience: { - AgoraChannelUserEventDto eventDto = dto.convert(AgoraChannelUserEventDto.class); + AgoraChannelUserEventDto eventDto = mapToBean(body, AgoraChannelUserEventDto.class); roomCache.changeUserType(eventDto.getChannelName(), eventDto.getUid(), ERoomUserType.audience); } break; case client_role_change_to_broadcaster: { - AgoraChannelUserEventDto eventDto = dto.convert(AgoraChannelUserEventDto.class); + AgoraChannelUserEventDto eventDto = mapToBean(body, AgoraChannelUserEventDto.class); roomCache.changeUserType(eventDto.getChannelName(), eventDto.getUid(), ERoomUserType.broadcaster); } break;