package com.inspur.netty.handler; import com.inspur.device.domain.SmsbDeviceRunInfo; import com.inspur.device.domain.vo.SmsbDeviceVo; import com.inspur.device.mapper.SmsbDeviceRunInfoMapper; import com.inspur.device.service.ISmsbDeviceService; import com.inspur.device.service.impl.SmsbDeviceServiceImpl; import com.inspur.netty.message.receive.ReceiveMessageType; import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelInboundHandlerAdapter; import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.utils.SpringUtils; /** * 设备运行信息处理器 * * @author lihao16 */ @Slf4j public class DeviceRunInfoHandler extends ChannelInboundHandlerAdapter { private static final SmsbDeviceRunInfoMapper smsbDeviceRunInfoMapper = SpringUtils.getBean(SmsbDeviceRunInfoMapper.class); private static final ISmsbDeviceService smsbDeviceService = SpringUtils.getBean(SmsbDeviceServiceImpl.class); @Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { String message = (String) msg; if (message.contains(ReceiveMessageType.DEVICE_RUN_INFO.getValue())) { log.info("DeviceRunInfoHandler : receive device run info message :{}", message); String[] messageArray = message.split("/"); String identifier = messageArray[0]; SmsbDeviceVo smsbDeviceVo = smsbDeviceService.getDeviceByIdentifier(identifier); if (null == smsbDeviceVo) { return; } SmsbDeviceRunInfo smsbDeviceRunInfo = new SmsbDeviceRunInfo(); buildSmsbDeviceRunInfo(smsbDeviceRunInfo, messageArray, smsbDeviceVo); smsbDeviceRunInfoMapper.insert(smsbDeviceRunInfo); } else { ctx.fireChannelRead(message); } } private void buildSmsbDeviceRunInfo(SmsbDeviceRunInfo smsbDeviceRunInfo, String[] messageArray, SmsbDeviceVo smsbDeviceVo) { } }