Bläddra i källkod

Merge branch 'master' into test

李进 2 år sedan
förälder
incheckning
a5ca63700e

+ 0 - 37
device-api-service/src/main/java/com/xy/alipay/ApiDeviceServiceImpl.java

@@ -1,9 +1,6 @@
 package com.xy.alipay;
 
 import cn.hutool.json.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.xxl.job.core.biz.model.ReturnT;
-import com.xxl.job.core.handler.annotation.XxlJob;
 import com.xy.annotate.RestMappingController;
 import com.xy.config.DeviceThreadPoolConfig;
 import com.xy.consumer.connected.ConnectedMqttConfiguration;
@@ -11,10 +8,7 @@ import com.xy.consumer.connected.ConnectedProducer;
 import com.xy.consumer.disconnect.DisconnectedMqttConfiguration;
 import com.xy.consumer.disconnect.DisconnectedProducer;
 import com.xy.dto.DeviceDetailDTO;
-import com.xy.entity.DeviceStatus;
-import com.xy.mapper.DeviceStatusMapper;
 import com.xy.service.AlipayDeviceService;
-import com.xy.service.DeviceStatusServiceImpl;
 import com.xy.utils.R;
 import com.xy.utils.ThreadPoolUtils;
 import com.xy.vo.DeviceDetailVO;
@@ -43,43 +37,12 @@ import java.util.List;
 @RestMappingController("/api/device")
 public class ApiDeviceServiceImpl {
 
-    private DeviceStatusMapper deviceStatusMapper;
-
     private AlipayDeviceService alipayDeviceService;
 
     private ConnectedProducer connectedProducer;
 
     private DisconnectedProducer disconnectedProducer;
 
-    /**
-     * 查询支付宝设备详情job
-     *
-     * @return
-     */
-    @XxlJob("alipayDeviceDetail")
-    public ReturnT<String> alipayDeviceDetail() {
-        //查询离线支付宝设备
-        List<DeviceStatus> deviceStatuses = deviceStatusMapper.aliPayNotNetWorkDevice();
-        if (deviceStatuses.size() == 0) {
-            return ReturnT.SUCCESS;
-        }
-        //查询支付宝设备详情
-        ThreadPoolUtils.Execute execute = ThreadPoolUtils.excPoll(DeviceThreadPoolConfig.ALIPAY_DEVICE_DETAIL, deviceStatuses.size());
-        deviceStatuses.forEach(deviceStatus -> execute.execute(() -> {
-            DeviceDetailVO deviceDetailVO = alipayDeviceService.queryDetail(new DeviceDetailDTO().setTerminalId(String.valueOf(deviceStatus.getDeviceId())));
-            if (deviceDetailVO == null) {
-                return;
-            }
-            //修改设备为在线
-            if (deviceDetailVO.getOnline()) {
-                JSONObject jsonObject = new JSONObject().set("clientid", deviceStatus.getDeviceId());
-                connectedProducer.sendToMqtt(jsonObject.toString(), ConnectedMqttConfiguration.TOPIC, 1);
-            }
-        }));
-        execute.end();
-        return ReturnT.SUCCESS;
-    }
-
     @ApiOperation("刷新设备联网状态")
     @PostMapping("refurbishDeviceNetWork")
     public R refurbishDeviceNetWork(@RequestBody List<Long> deviceIds) {

+ 24 - 6
device-api-service/src/main/java/com/xy/alipay/SpiDeviceServiceImpl.java

@@ -2,6 +2,7 @@ package com.xy.alipay;
 
 import cn.hutool.json.JSONObject;
 import com.xy.constants.SpiResponseConst;
+import com.xy.consumer.connected.ConnectedProducer;
 import com.xy.consumer.disconnect.DisconnectedMqttConfiguration;
 import com.xy.consumer.disconnect.DisconnectedProducer;
 import com.xy.dto.DeviceEventMsgDto;
@@ -9,10 +10,12 @@ import com.xy.dto.spi.DeviceAlarmNotifyDTO;
 import com.xy.dto.spi.DeviceStatusChangeNotifyDTO;
 import com.xy.entity.DeviceCharging;
 import com.xy.entity.DeviceInfo;
+import com.xy.entity.DeviceStatus;
 import com.xy.entity.SysDictRedis;
 import com.xy.service.DeviceChargingServiceImpl;
 import com.xy.service.DeviceEventMsgServiceImpl;
 import com.xy.service.DeviceInfoServiceImpl;
+import com.xy.service.DeviceStatusServiceImpl;
 import com.xy.utils.SysDictUtils;
 import com.xy.utils.enums.DeviceErrorRecordTypesEnum;
 import com.xy.utils.enums.DictsEnum;
@@ -40,11 +43,15 @@ public class SpiDeviceServiceImpl implements SpiDeviceService {
 
     private DeviceInfoServiceImpl deviceInfoService;
 
+    private DeviceStatusServiceImpl deviceStatusService;
+
     private DeviceEventMsgServiceImpl deviceEventMsgService;
 
+    private DeviceChargingServiceImpl deviceChargingService;
+
     private DisconnectedProducer disconnectedProducer;
 
-    private DeviceChargingServiceImpl deviceChargingService;
+    private ConnectedProducer connectedProducer;
 
     @Override
     @ApiOperation("设备告警通知")
@@ -64,11 +71,6 @@ public class SpiDeviceServiceImpl implements SpiDeviceService {
         save.setCode(deviceErrorRecordTypesEnum.getCode());
         save.setMsg(deviceAlarmNotifyDTO.getFaultMsg());
         deviceEventMsgService.save(save);
-        //修改设备为离线
-        if (deviceErrorRecordTypesEnum.getCode() == DeviceErrorRecordTypesEnum.NET.getCode()) {
-            JSONObject jsonObject = new JSONObject().set("clientid", deviceInfo.getDeviceId());
-            disconnectedProducer.sendToMqtt(jsonObject.toString(), DisconnectedMqttConfiguration.TOPIC, 1);
-        }
         return SpiResponseConst.SPI_SUCCESS;
     }
 
@@ -106,6 +108,22 @@ public class SpiDeviceServiceImpl implements SpiDeviceService {
             }
         }
         deviceInfoService.updateById(updateDeviceInfo);
+        //修改在线状态
+        Boolean online = deviceStatusChangeNotifyDTO.getOnline();
+        if (online != null) {
+            DeviceStatus deviceStatus = deviceStatusService.getById(deviceInfo.getDeviceId());
+            int netState = online ? 1 : 2;
+            if (netState != deviceStatus.getNetState()) {
+                JSONObject jsonObject = new JSONObject().set("clientid", deviceInfo.getDeviceId());
+                if (online) {
+                    //在线
+                    connectedProducer.sendToMqtt(jsonObject.toString(), DisconnectedMqttConfiguration.TOPIC, 1);
+                } else {
+                    //离线
+                    disconnectedProducer.sendToMqtt(jsonObject.toString(), DisconnectedMqttConfiguration.TOPIC, 1);
+                }
+            }
+        }
         return SpiResponseConst.SPI_SUCCESS;
     }
 }