diff --git a/api/src/main/java/com/sv/netty/controller/AdminNettyController.java b/api/src/main/java/com/sv/netty/controller/AdminNettyController.java index 462f5eb..fabb622 100644 --- a/api/src/main/java/com/sv/netty/controller/AdminNettyController.java +++ b/api/src/main/java/com/sv/netty/controller/AdminNettyController.java @@ -104,6 +104,23 @@ public class AdminNettyController extends BaseApiController { return ResponseDTO.ok(); } + /** + * 检验客户端读取能力 + * @return + */ + @RequestMapping("/upload/log/{id}") + public ResponseDTO uploadLog(@PathVariable("id") Integer id) { + Device device = deviceService.findById(id); + if (device == null){ + throw new ServiceException("设备不存在"); + } + if (!DeviceStatusEnum.ONLINE.value.equals(device.getStatus())){ + throw new ServiceException("设备离线!请检查连接"); + } + messageService.testLoad(device.getName(),device.getVenueId()); + return ResponseDTO.ok(); + } + /** * 下载线下入场凭证(二维码) * @param id diff --git a/api/src/main/java/com/sv/netty/netty/service/MessageService.java b/api/src/main/java/com/sv/netty/netty/service/MessageService.java index 6ea67aa..41ec8cb 100644 --- a/api/src/main/java/com/sv/netty/netty/service/MessageService.java +++ b/api/src/main/java/com/sv/netty/netty/service/MessageService.java @@ -52,5 +52,7 @@ public interface MessageService { void testLoad(String deviceName, Integer venueId); + void uploadLog(String deviceName, Integer venueId); + void offlineOpenDoor(String message); } diff --git a/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java b/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java index 6fd5bff..76c03dd 100644 --- a/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java +++ b/api/src/main/java/com/sv/netty/netty/service/impl/ServerMessageHandlerAdapter.java @@ -225,6 +225,16 @@ public class ServerMessageHandlerAdapter implements MessageService { ServerMessageUtils.INSTANCE.sendMsg(currentChannel,new VenueMessage(MessageType.HB,"测试链接")); } + /** + * 测试客户端连接 + * @return + */ + @Override + public void uploadLog(String deviceName, Integer venueId) { + Channel currentChannel = getCurrentChannel(deviceName, venueId); + ServerMessageUtils.INSTANCE.sendMsg(currentChannel,new VenueMessage(MessageType.LOG,"上传日志")); + } + /** * 线下订单 */ diff --git a/oms/src/main/java/com/sv/oms/controller/DeviceController.java b/oms/src/main/java/com/sv/oms/controller/DeviceController.java index 593cfe3..932dd7e 100644 --- a/oms/src/main/java/com/sv/oms/controller/DeviceController.java +++ b/oms/src/main/java/com/sv/oms/controller/DeviceController.java @@ -85,6 +85,12 @@ public class DeviceController extends OmsController { return ResponseDTO.ok("入场开门成功!"); } + @RequestMapping("/device/upload/log/{id}") + public ResponseDTO uploadLog(@PathVariable("id") Integer deviceId){ + deviceService.uploadLog(deviceId); + return ResponseDTO.ok("上传日志成功!"); + } + /** * 重新连接 * @param deviceId diff --git a/service/src/main/java/com/sv/service/oms/DeviceService.java b/service/src/main/java/com/sv/service/oms/DeviceService.java index 01aa2e6..c4d8cbc 100644 --- a/service/src/main/java/com/sv/service/oms/DeviceService.java +++ b/service/src/main/java/com/sv/service/oms/DeviceService.java @@ -214,6 +214,23 @@ public class DeviceService extends BaseServiceImpl { } } + public void uploadLog(Integer deviceId){ + try { + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + HttpEntity> request = new HttpEntity<>(null,headers); + ResponseDTO responseDTO = null; + responseDTO = restTemplate.postForObject("http://127.0.0.1:8093/uplaod/log/"+deviceId, request, ResponseDTO.class); + Integer code = (Integer) responseDTO.get(ResponseDTO.ERR_CODE); + if(0 != code){ + throw new OmsException("上传日志失败,设备离线或者门禁异常!"); + } + }catch (Exception e){ + logger.error("设备离线或者门禁异常",e); + throw new OmsException("上传日志失败,设备离线或者门禁异常!"); + } + } + /** * find by DeviceName */