浏览代码

更新!

TRX 1 年之前
父节点
当前提交
a9f09d0a27

+ 7 - 1
OneCardIotClient/src/main/java/com/zhongshu/iot/client/model/artemis/OperationMessageResultSearch.java

@@ -9,6 +9,9 @@ import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
 
+import java.util.ArrayList;
+import java.util.List;
+
 /**
  * @author TRX
  * @date 2024/7/15
@@ -19,7 +22,7 @@ import lombok.NoArgsConstructor;
 public class OperationMessageResultSearch extends SuperSearchParam {
 
     @Schema(description = "设备ID")
-    private String deviceId;
+    private List<String> deviceIds = new ArrayList<String>();
 
     @Schema(description = "分组ID")
     private String projectCode;
@@ -53,4 +56,7 @@ public class OperationMessageResultSearch extends SuperSearchParam {
 
     @Schema(description = "属性,,事件名称")
     private String iotName;
+
+    @Schema(description = "所属物模型id")
+    private String iotThingId;
 }

+ 8 - 2
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/dao/mqtt/impl/OperationMessageResultDaoImpl.java

@@ -7,6 +7,7 @@ import com.zhongshu.iot.server.core.dao.mqtt.extend.OperationMessageResultDaoExt
 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.message.OperationMessageResult;
+import org.apache.commons.lang3.ObjectUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,8 +43,8 @@ public class OperationMessageResultDaoImpl extends BaseImpl implements Operation
     public Page<OperationMessageResult> page(Pageable pageable, OperationMessageResultSearch param) {
         Criteria criteria = buildCriteriaAboutTime(param);
 
-        if (StringUtils.isNotEmpty(param.getDeviceId())) {
-            criteria.and("deviceId").is(param.getDeviceId());
+        if (ObjectUtils.isNotEmpty(param.getDeviceIds())) {
+            criteria.and("deviceId").in(param.getDeviceIds());
         }
 
         if (StringUtils.isNotEmpty(param.getGateWayId())) {
@@ -62,6 +63,10 @@ public class OperationMessageResultDaoImpl extends BaseImpl implements Operation
             criteria.and("iotTemplate").is(IotTemplate.build(param.getIotTemplateId()));
         }
 
+        if (StringUtils.isNotEmpty(param.getIotThingId())) {
+            criteria.and("iotThingId").is(param.getIotThingId());
+        }
+
         // 是否成功
         if (param.getIsSendSuccess() != null) {
             criteria.and("isSendSuccess").is(param.getIsSendSuccess());
@@ -76,6 +81,7 @@ public class OperationMessageResultDaoImpl extends BaseImpl implements Operation
             criteria.and("functionType").is(param.getFunctionType());
         }
 
+        // 标识符
         if (StringUtils.isNotEmpty(param.getIdentifier())) {
             criteria.and("identifier").is(param.getIdentifier());
         }

+ 10 - 0
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/domain/iot/IotDeviceData.java

@@ -1,5 +1,6 @@
 package com.zhongshu.iot.server.core.domain.iot;
 
+import com.github.microservice.types.FunctionType;
 import com.github.microservice.types.deviceUse.IotDeviceDataType;
 import com.zhongshu.card.client.utils.DateUtils;
 import com.zhongshu.iot.server.core.domain.base.SuperEntity;
@@ -33,6 +34,15 @@ public class IotDeviceData extends SuperEntity {
     @Schema(description = "关联的设备")
     private String deviceId;
 
+    @Schema(description = "功能类型,属性 事件 服务")
+    private FunctionType functionType;
+
+    @Schema(description = "功能名称")
+    private String iotName;
+
+    @Schema(description = "标识符")
+    private String identifier;
+
     @Schema(description = "所属分组code")
     private String projectCode;
 

+ 1 - 1
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/domain/iot/IotMain.java

@@ -42,7 +42,7 @@ public class IotMain extends SuperEntity {
 
     @Schema(description = "所属物模型id")
     private String iotThingId;
-    
+
     @Schema(description = "区分是模版还是设备关联的物模型")
     private IotDataType iotDataType;
 

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

@@ -711,6 +711,7 @@ public class OperationMessageService {
         // 产品code
         messageResult.setProductCode(iotMain.getProductCode());
         messageResult.setFunctionType(iotMain.getFunctionType());
+
         messageResult.setIdentifier(iotMain.getIdentifier());
         messageResult.setIotName(iotMain.getName());
         messageResult.setEventType(iotMain.getEventType());
@@ -723,11 +724,12 @@ public class OperationMessageService {
         DeviceInfo deviceInfo = deviceInfoDao.findTopByDeviceId(iotMain.getDeviceId());
         messageResult.setDeviceId(iotMain.getDeviceId());
         if (ObjectUtils.isNotEmpty(deviceInfo)) {
-            DeviceInfo gateWayInfo = gateWayManagerService.getDeviceGateWayInfo(deviceInfo);
             messageResult.setDeviceName(deviceInfo.getDeviceName());
             messageResult.setDeviceType(deviceInfo.getDeviceType());
             messageResult.setDeviceCategory(deviceInfo.getDeviceCategory());
+            messageResult.setMqttUserName(deviceInfo.getMqttUserName());
 
+            DeviceInfo gateWayInfo = gateWayManagerService.getDeviceGateWayInfo(deviceInfo);
             // 所属网关信息
             if (ObjectUtils.isNotEmpty(gateWayInfo)) {
                 messageResult.setGateWayId(gateWayInfo.getDeviceId());

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

@@ -59,6 +59,10 @@ public class IotDeviceDataService {
             IotMain iotMain = iotMains.get(0);
             IotDeviceData temp = new IotDeviceData();
             temp.setIotMain(iotMain);
+            temp.setIotName(iotMain.getName());
+            temp.setFunctionType(iotMain.getFunctionType());
+            temp.setIdentifier(iotMain.getIdentifier());
+
             temp.setIotTemplateId(iotMain.getIotMainTemplateId());
             temp.setIotThingId(iotMain.getIotThingId());
             temp.setDeviceId(deviceId);

+ 12 - 2
OneCardIotServer/src/main/java/com/zhongshu/iot/server/core/service/iot/IotFreshService.java

@@ -4,8 +4,10 @@ import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
 import com.github.microservice.dataConfig.IotTtlConfig;
 import com.github.microservice.net.ResultContent;
+import com.zhongshu.iot.server.core.dao.mqtt.DeviceInfoDao;
 import com.zhongshu.iot.server.core.domain.iot.IotMain;
 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.DateUtils;
 import com.zhongshu.iot.server.core.util.mqtt.mqttConfig.client.MQClient;
 import lombok.extern.slf4j.Slf4j;
@@ -25,6 +27,12 @@ public class IotFreshService {
     @Autowired
     private MQClient mqClient;
 
+    @Autowired
+    private DeviceInfoDao deviceInfoDao;
+
+    @Autowired
+    private GateWayManagerService gateWayManagerService;
+
     /**
      * 发送页面刷新消息
      * @param messageResult
@@ -37,11 +45,13 @@ public class IotFreshService {
         String iotThingId = messageResult.getIotThingId();
         String deviceId = messageResult.getDeviceId();
         String messageId = messageResult.getMessageId();
-        String topic = String.format("/page/fresh/%s", iotThingId);
+        String topicDevice = String.format("/page/fresh/message/%s", deviceId);
 
         JSONObject data = new JSONObject();
         data.set("iotThingId", iotThingId);
         data.set("deviceId", deviceId);
+        data.set("gateWayId", messageResult.getGateWayId());
+        data.set("mqttUserName", messageResult.getMqttUserName());
         IotMain iotMain = messageResult.getIotMain();
         if (iotMain != null) {
             data.set("functionType", iotMain.getFunctionType());
@@ -54,7 +64,7 @@ public class IotFreshService {
         jsonObject.set("time", System.currentTimeMillis());
         jsonObject.set("ttl", IotTtlConfig.MQTT_TIME_OUT_TTL);
         jsonObject.set("issued", Boolean.TRUE);
-        mqClient.sendObject(topic, JSONUtil.toJsonStr(jsonObject), messageId);
+        mqClient.sendObject(topicDevice, JSONUtil.toJsonStr(jsonObject), messageId);
         log.info("sendPageFreshMessage: {}", jsonObject.toString());
         return ResultContent.buildSuccess();
     }