TRX il y a 1 an
Parent
commit
3ec1a85e5a

+ 1 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/controller/devices/DeviceController.java

@@ -108,7 +108,7 @@ public class DeviceController {
     @Operation(summary = "查询设备详情")
     @RequestMapping(value = "getDeviceById", method = {RequestMethod.GET})
     public ResultContent<DeviceInfoModel> getDeviceById(
-            @Parameter(name = "deviceId", description = "数据ID", example = "")
+            @Parameter(name = "deviceId", description = "deviceId", example = "")
             @RequestParam("deviceId") String deviceId) {
         return deviceInfoService.getDeviceById(deviceId);
     }

+ 2 - 2
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/artemis/OperationMessageService.java

@@ -30,7 +30,7 @@ import com.zhongshu.iot.server.core.httpRequest.ApiRequestService;
 import com.zhongshu.iot.server.core.service.device.DeviceInfoService;
 import com.zhongshu.iot.server.core.service.device.GateWayManagerService;
 import com.zhongshu.iot.server.core.service.iot.IotDataVerifyService;
-import com.zhongshu.iot.server.core.service.iot.IotFreshService;
+import com.zhongshu.iot.server.core.service.iot.IotReFreshPageService;
 import com.zhongshu.iot.server.core.service.iotPlatform.PlatformTopic;
 import com.zhongshu.iot.server.core.util.CommonUtil;
 import com.zhongshu.iot.server.core.util.DateUtils;
@@ -105,7 +105,7 @@ public class OperationMessageService {
     public Long ttlMill = 30 * 24L * 60 * 60 * 1000L;
 
     @Autowired
-    private IotFreshService iotFreshService;
+    private IotReFreshPageService iotFreshService;
 
     /**
      * 发送指令

+ 6 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/device/DevicePingInfoService.java

@@ -2,7 +2,6 @@ package com.zhongshu.iot.server.core.service.device;
 
 import cn.hutool.json.JSONUtil;
 import com.github.microservice.models.hxz.DevicePingInfoParam;
-import com.github.microservice.models.hxz.GateWayPingInfoParam;
 import com.github.microservice.models.hxz.PingResult;
 import com.github.microservice.net.ResultContent;
 import com.github.microservice.types.deviceUse.OnLineState;
@@ -18,6 +17,7 @@ import com.zhongshu.iot.server.core.domain.iot.device.GateWay2Device;
 import com.zhongshu.iot.server.core.service.base.CommonService;
 import com.zhongshu.iot.server.core.service.base.RedisService;
 import com.zhongshu.iot.server.core.service.base.SuperService;
+import com.zhongshu.iot.server.core.service.iot.IotReFreshPageService;
 import com.zhongshu.iot.server.core.service.sync.DeviceSyncFullCardService;
 import com.zhongshu.iot.server.core.util.DateUtils;
 import lombok.extern.slf4j.Slf4j;
@@ -63,6 +63,9 @@ public class DevicePingInfoService extends SuperService {
     @Autowired
     private DeviceOnLineRecordService deviceOnLineRecordService;
 
+    @Autowired
+    private IotReFreshPageService iotReFreshPageService;
+
     public ResultContent<Object> ping(String dataId, String dataStr) {
         PingResult pingResult = new PingResult();
         DevicePingInfoParam param = JSONUtil.toBean(dataStr, DevicePingInfoParam.class);
@@ -283,6 +286,8 @@ public class DevicePingInfoService extends SuperService {
         deviceSyncFullCardService.noticeSyncDeviceOnlineStateChange(deviceId);
 
         deviceOnLineRecordService.addOnLineRecord(deviceInfo, onLineState);
+
+        iotReFreshPageService.sendDeviceOnLineChange(deviceInfo, onLineState);
     }
 
 }

+ 1 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/iot/IotDeviceDataService.java

@@ -41,7 +41,7 @@ public class IotDeviceDataService {
     private IotMainDao iotMainDao;
 
     @Autowired
-    private IotFreshService iotFreshService;
+    private IotReFreshPageService iotFreshService;
 
     @Autowired
     private IotServiceImpl iotService;

+ 28 - 7
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/iot/IotFreshService.java → OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/iot/IotReFreshPageService.java

@@ -6,11 +6,14 @@ import com.github.microservice.dataConfig.IotTtlConfig;
 import com.github.microservice.deviceTopicConfig.IotTopIcConfig;
 import com.github.microservice.models.iotDeviceData.IotDeviceDataSimpleModel;
 import com.github.microservice.net.ResultContent;
+import com.github.microservice.types.deviceUse.OnLineState;
 import com.zhongshu.iot.server.core.dao.mqtt.DeviceInfoDao;
 import com.zhongshu.iot.server.core.domain.iot.IotDeviceData;
 import com.zhongshu.iot.server.core.domain.iot.IotMain;
+import com.zhongshu.iot.server.core.domain.iot.device.DeviceInfo;
 import com.zhongshu.iot.server.core.domain.iot.message.OperationMessageResult;
 import com.zhongshu.iot.server.core.service.device.GateWayManagerService;
+import com.zhongshu.iot.server.core.util.CommonUtil;
 import com.zhongshu.iot.server.core.util.DateUtils;
 import com.zhongshu.iot.server.core.util.mqtt.mqttConfig.client.MQClient;
 import lombok.extern.slf4j.Slf4j;
@@ -25,17 +28,11 @@ import org.springframework.stereotype.Service;
  */
 @Slf4j
 @Service
-public class IotFreshService {
+public class IotReFreshPageService {
 
     @Autowired
     private MQClient mqClient;
 
-    @Autowired
-    private DeviceInfoDao deviceInfoDao;
-
-    @Autowired
-    private GateWayManagerService gateWayManagerService;
-
     @Autowired
     private IotDeviceDataService iotDeviceDataService;
 
@@ -108,4 +105,28 @@ public class IotFreshService {
         return ResultContent.buildSuccess();
     }
 
+    public ResultContent sendDeviceOnLineChange(DeviceInfo deviceInfo, OnLineState onLineState) {
+        if (deviceInfo == null) {
+            return ResultContent.buildFail("设备信息为空");
+        }
+        String deviceId = deviceInfo.getDeviceId();
+        // 发送通知页面消息
+        String topicDevice = String.format(IotTopIcConfig.deviceOnLineChange, deviceId);
+
+        String messageId = CommonUtil.UUID();
+        JSONObject data = new JSONObject();
+        data.set("deviceId", deviceId);
+        data.set("onLineState", onLineState);
+
+        JSONObject jsonObject = new JSONObject();
+        jsonObject.set("id", messageId);
+        jsonObject.set("data", data);
+        jsonObject.set("timeStr", DateUtils.paresTime(System.currentTimeMillis(), DateUtils.patternyyyySSS));
+        jsonObject.set("time", System.currentTimeMillis());
+        jsonObject.set("ttl", IotTtlConfig.MQTT_TIME_OUT_TTL);
+        jsonObject.set("issued", Boolean.TRUE);
+        mqClient.sendObject(topicDevice, JSONUtil.toJsonStr(jsonObject), messageId);
+        return ResultContent.buildSuccess();
+    }
+
 }

+ 1 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/iot/IotSendMessageService.java

@@ -74,7 +74,7 @@ public class IotSendMessageService extends SuperService {
     public Long ttlMill = 30 * 24L * 60 * 60 * 1000L;
 
     @Autowired
-    private IotFreshService iotFreshService;
+    private IotReFreshPageService iotFreshService;
 
     /**
      * 根据物模型 服务id 下发消息

+ 6 - 5
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/iot/IotServiceImpl.java

@@ -18,10 +18,7 @@ import com.zhongshu.iot.server.core.dao.iot.IotThingDao;
 import com.zhongshu.iot.server.core.dao.iot.IotTopicDao;
 import com.zhongshu.iot.server.core.dao.mqtt.DeviceInfoDao;
 import com.zhongshu.iot.server.core.dao.mqtt.GateWay2DeviceDao;
-import com.zhongshu.iot.server.core.domain.iot.IotMain;
-import com.zhongshu.iot.server.core.domain.iot.IotTemplate;
-import com.zhongshu.iot.server.core.domain.iot.IotThing;
-import com.zhongshu.iot.server.core.domain.iot.IotTopic;
+import com.zhongshu.iot.server.core.domain.iot.*;
 import com.zhongshu.iot.server.core.domain.iot.device.DeviceInfo;
 import com.zhongshu.iot.server.core.domain.iot.device.GateWay2Device;
 import com.zhongshu.iot.server.core.service.base.SuperService;
@@ -719,7 +716,11 @@ public class IotServiceImpl extends SuperService {
 
             // 属性值
             if (entity.getFunctionType() == FunctionType.Attribute && entity.getIotDataType() == IotDataType.Device) {
-                model.setValue(iotDeviceDataService.getDeviceProperty(entity.getDeviceId(), entity.getIdentifier()));
+                IotDeviceData newData = iotDeviceDataService.getDevicePropertyObject(entity.getDeviceId(), entity.getIdentifier());
+                if (ObjectUtils.isNotEmpty(newData)) {
+                    model.setValue(newData.getValue());
+                    model.setUpdateTime(newData.getUpdateTime());
+                }
             }
         }
         return model;