Преглед на файлове

修改接收代码,这是临时修改,以后需要经过大量测试,完成正式优化。

zhuoning преди 2 години
родител
ревизия
3dd7918fbc

+ 16 - 10
registration-center/src/main/java/com/huimv/center/server/RegisterServerHandler2.java

@@ -54,20 +54,25 @@ public class RegisterServerHandler2 extends ChannelInboundHandlerAdapter {
         ByteBuf data = (ByteBuf) msg;
         String clientAskText = data.toString(CharsetUtil.UTF_8);
         //保存实例内的客户端请求
-        appendClientAsk(clientAskText);
+//        appendClientAsk(clientAskText);
+
+        InetSocketAddress ipSocket = (InetSocketAddress)ctx.channel().remoteAddress();
+        String clientIp = ipSocket.getAddress().getHostAddress();
+        log.info("客户端ip地址:{}",clientIp);
+        handleBusinessMessage(clientAskText, ctx,clientIp);
     }
 
     @Override
     public void channelReadComplete(ChannelHandlerContext ctx) throws Exception {
-        if (askTextSb.toString().indexOf("end") != -1) {
-            InetSocketAddress ipSocket = (InetSocketAddress)ctx.channel().remoteAddress();
-            String clientIp = ipSocket.getAddress().getHostAddress();
-            log.info("客户端ip地址:{}",clientIp);
-            // 处理客户端消息(业务入口)
-            handleBusinessMessage(askTextSb.toString(), ctx,clientIp);
-            //清空重置;
-            askTextSb.delete(0, askTextSb.length());
-        }
+//        if (askTextSb.toString().indexOf("end") != -1) {
+//            InetSocketAddress ipSocket = (InetSocketAddress)ctx.channel().remoteAddress();
+//            String clientIp = ipSocket.getAddress().getHostAddress();
+//            log.info("客户端ip地址:{}",clientIp);
+//            // 处理客户端消息(业务入口)
+//            handleBusinessMessage(askTextSb.toString(), ctx,clientIp);
+//            //清空重置;
+//            askTextSb.delete(0, askTextSb.length());
+//        }
     }
 
     @Override
@@ -93,6 +98,7 @@ public class RegisterServerHandler2 extends ChannelInboundHandlerAdapter {
         System.out.println("服务端开始接收数据 >>" + clientAskText);
         // 计算+号数量
         int countPlus = regexUtil.countPlus(clientAskText);
+
         if (countPlus < 4) {
             System.out.println("当前数据为不完整数据,故丢弃.>>" + clientAskText);
         } else {

+ 37 - 22
registration-center/src/main/java/com/huimv/center/service/impl/BizDeviceRegisterServiceImpl.java

@@ -187,19 +187,27 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
         DateUtil dateUtil = new DateUtil();
         QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("chip_id", chipId);
+        queryWrapper.orderByDesc("id");
+        queryWrapper.last("limit 1");
         // 查询注册设备
-        BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
-        if (deviceRegister.getFirstTime() == null) {
-            deviceRegister.setFirstTime(dateUtil.getTodayDatetime());
-        }
-        deviceRegister.setLastTime(dateUtil.getTodayDatetime());
-        Integer times = deviceRegister.getAskTimes();
-        if (times == null) {
-            times = 0;
+//        BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
+        List<BizDeviceRegister> deviceRegisterList = bizDeviceRegisterMapper.selectList(queryWrapper);
+        if (deviceRegisterList.size() > 0) {
+            BizDeviceRegister deviceRegister = deviceRegisterList.get(0);
+            if (deviceRegister.getFirstTime() == null) {
+                deviceRegister.setFirstTime(dateUtil.getTodayDatetime());
+            }
+            deviceRegister.setLastTime(dateUtil.getTodayDatetime());
+            Integer times = deviceRegister.getAskTimes();
+            if (times == null) {
+                times = 0;
+            }
+            deviceRegister.setAskTimes(++times);
+            int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
+            return ResultUtil.result(rows);
+        } else {
+            return null;
         }
-        deviceRegister.setAskTimes(++times);
-        int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
-        return ResultUtil.result(rows);
     }
 
     /**
@@ -216,19 +224,26 @@ public class BizDeviceRegisterServiceImpl extends ServiceImpl<BizDeviceRegisterM
         DateUtil dateUtil = new DateUtil();
         QueryWrapper<BizDeviceRegister> queryWrapper = new QueryWrapper<>();
         queryWrapper.eq("chip_id", chipId);
+        queryWrapper.orderByDesc("id");
+        queryWrapper.last("limit 1");
         // 查询注册设备
-        BizDeviceRegister deviceRegister = bizDeviceRegisterMapper.selectOne(queryWrapper);
-        if (deviceRegister.getFirstTimeAnswer() == null) {
-            deviceRegister.setFirstTimeAnswer(dateUtil.getTodayDatetime());
-        }
-        deviceRegister.setLastTimeAnswer(dateUtil.getTodayDatetime());
-        Integer times = deviceRegister.getAnswerTimes();
-        if (times == null) {
-            times = 0;
+        List<BizDeviceRegister> deviceRegisterList = bizDeviceRegisterMapper.selectList(queryWrapper);
+        if (deviceRegisterList.size() > 0) {
+            BizDeviceRegister deviceRegister = deviceRegisterList.get(0);
+            if (deviceRegister.getFirstTimeAnswer() == null) {
+                deviceRegister.setFirstTimeAnswer(dateUtil.getTodayDatetime());
+            }
+            deviceRegister.setLastTimeAnswer(dateUtil.getTodayDatetime());
+            Integer times = deviceRegister.getAnswerTimes();
+            if (times == null) {
+                times = 0;
+            }
+            deviceRegister.setAnswerTimes(++times);
+            int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
+            return ResultUtil.result(rows);
+        } else {
+            return null;
         }
-        deviceRegister.setAnswerTimes(++times);
-        int rows = bizDeviceRegisterMapper.updateById(deviceRegister);
-        return ResultUtil.result(rows);
     }
 
     @Override