Kaynağa Gözat

录像相关,摄像头,磁盘与主机查询方式变更

jingyuanchao 1 yıl önce
ebeveyn
işleme
8062e82b60
12 değiştirilmiş dosya ile 82 ekleme ve 29 silme
  1. 7 0
      soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/protection/VideoRecorderHardDiskDetectionEditDto.java
  2. 1 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/IotDvrDiskService.java
  3. 9 9
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/IotDvrDiskServiceImpl.java
  4. 10 4
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/IotDvrHardDiskDetectionServiceImpl.java
  5. 9 5
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoDiagnosisRecordServiceImpl.java
  6. 16 9
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoIntegrityCheckServiceImpl.java
  7. 9 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoDiagnosis/VideoDiagnosisDto.java
  8. 5 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoDiagnosis/VideoDiagnosisReq.java
  9. 7 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoIntegrityCheck/VideoIntegrityCheckDto.java
  10. 3 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoIntegrityCheck/VideoIntegrityCheckReq.java
  11. 5 0
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/dto/WebsocketExecuteReq.java
  12. 1 1
      soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/handler/SocWebSocketHandler.java

+ 7 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/dto/protection/VideoRecorderHardDiskDetectionEditDto.java

@@ -39,4 +39,11 @@ public class VideoRecorderHardDiskDetectionEditDto {
 
    @ApiModelProperty("硬盘当前状态信息")
    private List<Map<String, Object>> detailInfo;
+
+
+
+   @ApiModelProperty(value = "唯一编码")
+   private String token;
+   @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
+   private String deviceName;
 }

+ 1 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/IotDvrDiskService.java

@@ -21,7 +21,7 @@ public interface IotDvrDiskService extends IService<IotDvrDisk> {
 
     ReceiveErrorDto saveData(DataPageDto<DvrDiskPageDto> dataPageDto, String msgId) throws Exception;
 
-    void updateStatusByDiskDetection(IotDvrHardDiskDetection videoRecorderHardDiskDetection);
+    void updateStatusByDiskDetection(IotDvrHardDiskDetection req,String token);
 
 
     /**

+ 9 - 9
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/IotDvrDiskServiceImpl.java

@@ -69,10 +69,10 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void updateStatusByDiskDetection(IotDvrHardDiskDetection videoRecorderHardDiskDetection) {
-        final String equipmentCode = videoRecorderHardDiskDetection.getEquipmentCode();
-        final List<IotDvrDisk> list = lambdaQuery().eq(IotDvrDisk::getHostCode, equipmentCode).eq(IotDvrDisk::getDeleted, 0).list();
-        final String detailInfo = videoRecorderHardDiskDetection.getDetailInfo();
+    public void updateStatusByDiskDetection(IotDvrHardDiskDetection req,String token) {
+        final String equipmentCode = req.getEquipmentCode();
+        final List<IotDvrDisk> list = lambdaQuery().eq(IotDvrDisk::getHostCode, equipmentCode).eq(IotDvrDisk::getIotToken, token).eq(IotDvrDisk::getDeleted, 0).list();
+        final String detailInfo = req.getDetailInfo();
         final List<Map> mapList = JSON.parseArray(detailInfo, Map.class);
         List<IotDvrDisk> diskArrayList = new ArrayList<>();
         for (Map map : mapList) {
@@ -88,15 +88,15 @@ public class IotDvrDiskServiceImpl extends ServiceImpl<IotDvrDiskMapper, IotDvrD
             final IotDvrDisk iotDvrDisk = first.get();
             iotDvrDisk.setState((Integer) map.get("state"));
             iotDvrDisk.setDiskName((String) map.get("name"));
-            Long totalBytes = (Long) map.get("totalBytes");
-            Integer availableBytes = (Integer) map.get("availableBytes");
-            Integer originState = (Integer) map.get("originState");
+            String totalBytes = String.valueOf(map.get("totalBytes"));
+            String availableBytes = String.valueOf(map.get("availableBytes")) ;
+            String originState = String.valueOf(map.get("originState"));
             //Integer freeBytes = (Integer) map.get("freeBytes");
 
-            iotDvrDisk.setOriginState(originState);
+            iotDvrDisk.setOriginState(Integer.valueOf(originState));
             iotDvrDisk.setAvailable(new BigDecimal(availableBytes).divide(BigDecimal.valueOf(1024 * 1024), 2, RoundingMode.HALF_UP).intValue());
             iotDvrDisk.setTotal(new BigDecimal(totalBytes).divide(BigDecimal.valueOf(1024 * 1024), 2, RoundingMode.HALF_UP).intValue());
-            iotDvrDisk.setStateUpdateTime(videoRecorderHardDiskDetection.getCheckTime());
+            iotDvrDisk.setStateUpdateTime(req.getCheckTime());
             iotDvrDisk.setUpdateTime(LocalDateTime.now());
             diskArrayList.add(iotDvrDisk);
         }

+ 10 - 4
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/IotDvrHardDiskDetectionServiceImpl.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetection;
 import com.xunmei.common.core.domain.iot.domain.IotDvrHardDiskDetectionLog;
 import com.xunmei.common.core.util.BeanHelper;
@@ -19,6 +18,7 @@ import com.xunmei.mediator.api.video.service.IotDvrDiskService;
 import com.xunmei.mediator.api.video.service.IotDvrHardDiskDetectionLogService;
 import com.xunmei.mediator.api.video.service.IotDvrHardDiskDetectionService;
 import com.xunmei.mediator.domain.dto.disk.VideoRecorderHardDiskDetectionReq;
+import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.websocket.constant.WebSocketConstants;
 import com.xunmei.mediator.websocket.dto.WebsocketExecuteReq;
@@ -26,6 +26,7 @@ import com.xunmei.mediator.websocket.enums.ProductEnums;
 import com.xunmei.mediator.websocket.service.RouterService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.domain.iot.IotDeviceInfo;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.dto.protection.VideoRecorderHardDiskDetectionEditDto;
 import com.xunmei.system.api.util.LogUtils;
@@ -64,7 +65,8 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
 
     @Resource
     IotServerInfoService iotServerInfoService;
-
+    @Resource
+    IIotDeviceInfoService iotDeviceInfoService;
     @Override
     public ProductEnums product() {
         return ProductEnums.DVS;
@@ -93,6 +95,8 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
             String token = req.getToken();
             SysOrg sysOrg = iotServerInfoService.selectOrgByToken(token);
             dto.setOrganizationGuid(sysOrg.getCode());
+            dto.setToken(token);
+            dto.setDeviceName(dto.getDeviceName());
 
             return saveData(dto, req.getId());
         } catch (IllegalAccessException e) {
@@ -125,7 +129,9 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
                 return map;
             }
             String equipmentCode = videoRecorderHardDiskDetectionEditDto.getEquipmentCode();
-            final IotDevice device = iIotDeviceService.findByHostCode(equipmentCode, org.getId());
+            //final IotDevice device = iIotDeviceService.findByHostCode(equipmentCode, org.getId());
+            IotDeviceInfo device = iotDeviceInfoService.selectByTypeAndCode(videoRecorderHardDiskDetectionEditDto.getToken(), videoRecorderHardDiskDetectionEditDto.getEquipmentCode(), videoRecorderHardDiskDetectionEditDto.getDeviceName());
+
             if (ObjectUtil.isNull(device)) {
                 error.setSuccess(false);
                 error.setErrorMsg("参数非法:设备code:" + equipmentCode + "不存在");
@@ -235,7 +241,7 @@ public class IotDvrHardDiskDetectionServiceImpl extends ServiceImpl<IotDvrHardDi
         videoRecorderHardDiskDetectionLogService.saveOrUpdate(videoRecorderHardDiskDetectionLog);
         try {
             LogUtils.STATUS_INFO_DISKS.info("硬盘检测上报状态消息,开始处理对应盘符状态.....");
-            iotDvrDiskService.updateStatusByDiskDetection(videoRecorderHardDiskDetection);
+            iotDvrDiskService.updateStatusByDiskDetection(videoRecorderHardDiskDetection, videoRecorderHardDiskDetectionEditDto.getToken());
         } catch (Exception e) {
             LogUtils.STATUS_INFO_DISKS.info("硬盘检测处理处理对应盘符状态时发生异常!内容:{}",e.getMessage());
             throw new RuntimeException(e);

+ 9 - 5
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoDiagnosisRecordServiceImpl.java

@@ -5,7 +5,6 @@ import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.iot.domain.IotDevice;
 import com.xunmei.common.core.domain.iot.domain.IotDvrChannel;
 import com.xunmei.common.core.domain.video.MediatorVideoDiagnosisRecord;
 import com.xunmei.common.core.utils.IDHelper;
@@ -22,6 +21,7 @@ import com.xunmei.mediator.domain.dto.redis.RedisKey;
 import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisDetailInfoVo;
 import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisDto;
 import com.xunmei.mediator.domain.dto.videoDiagnosis.VideoDiagnosisReq;
+import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
 import com.xunmei.mediator.util.CheckDataUtil;
 import com.xunmei.mediator.util.RedisUtil;
 import com.xunmei.mediator.websocket.constant.WebSocketConstants;
@@ -30,6 +30,7 @@ import com.xunmei.mediator.websocket.enums.ProductEnums;
 import com.xunmei.mediator.websocket.service.RouterService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.domain.iot.IotDeviceInfo;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.util.LogUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -70,7 +71,8 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
     private IotAlarmDataService iotAlarmDataService;
     @Autowired
     private IotServerInfoService iotServerInfoService;
-
+    @Resource
+    IIotDeviceInfoService iotDeviceInfoService;
     @Override
     public ProductEnums product() {
         return ProductEnums.DVS;
@@ -101,6 +103,8 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
             dto.setDetailInfo(req.getDetailInfo());
             SysOrg sysOrg = iotServerInfoService.selectOrgByToken(obj.getToken());
             dto.setOrganizationGuid(sysOrg.getCode());
+            dto.setDeviceName(req.getDeviceName());
+            dto.setToken(req.getToken());
             return saveData(dto, obj.getId());
         } catch (Exception e) {
             LogUtils.STATUS_INFO_VIDEO_DIAGNOSIS.error(e.getMessage());
@@ -157,7 +161,7 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
                 map.put("error", error);
                 return map;
             }
-            final IotDvrChannel channel = dvrChannelService.findChannel(videoDiagnosisDto.getChannelCode(), videoDiagnosisDto.getEquipmentCode(), org.getId());
+            IotDeviceInfo channel = iotDeviceInfoService.selectByTypeAndHostAndCode(videoDiagnosisDto.getToken(), videoDiagnosisDto.getEquipmentCode(), videoDiagnosisDto.getChannelCode());
             if (ObjectUtil.isNull(channel)) {
                 error.setSuccess(false);
                 error.setErrorMsg("通道/设备不存在!");
@@ -263,9 +267,9 @@ public class VideoDiagnosisRecordServiceImpl extends ServiceImpl<VideoDiagnosisR
         videoDiagnosis.setOrgName(org.getShortName());
         videoDiagnosis.setOrgPath(org.getPath());
         videoDiagnosis.setImgUrl(videoDiagnosisDto.getImgUrl());
-        IotDevice hostDevice = iIotDeviceService.findByHostCode(videoDiagnosis.getEquipmentCode(), org.getId());
+        IotDeviceInfo hostDevice = iotDeviceInfoService.selectByTypeAndCode(videoDiagnosisDto.getToken(), videoDiagnosisDto.getEquipmentCode(), videoDiagnosisDto.getDeviceName());
         if (hostDevice != null) {
-            videoDiagnosis.setEquipmentName(hostDevice.getEquipmentName());
+            videoDiagnosis.setEquipmentName(hostDevice.getDeviceName());
         }
         videoDiagnosis.setDeviceName(channel.getChannelName());
         videoDiagnosis.setDeviceId(String.valueOf(channel.getId()));

+ 16 - 9
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/api/video/service/impl/VideoIntegrityCheckServiceImpl.java

@@ -9,8 +9,6 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xunmei.common.core.constant.Constants;
 import com.xunmei.common.core.constant.SecurityConstants;
-import com.xunmei.common.core.domain.iot.domain.IotDevice;
-import com.xunmei.common.core.domain.iot.domain.IotDvrChannel;
 import com.xunmei.common.core.domain.video.MediatorVideoDaysCheck;
 import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheck;
 import com.xunmei.common.core.domain.video.MediatorVideoIntegrityCheckLog;
@@ -26,6 +24,7 @@ import com.xunmei.mediator.api.video.service.IVideoIntegrityCheckService;
 import com.xunmei.mediator.api.video.service.MediatorVideoIntegrityCheckLogService;
 import com.xunmei.mediator.domain.dto.videoIntegrityCheck.VideoIntegrityCheckDto;
 import com.xunmei.mediator.domain.dto.videoIntegrityCheck.VideoIntegrityCheckReq;
+import com.xunmei.mediator.iot.service.IIotDeviceInfoService;
 import com.xunmei.mediator.util.RedisUtil;
 import com.xunmei.mediator.websocket.constant.WebSocketConstants;
 import com.xunmei.mediator.websocket.dto.WebsocketExecuteReq;
@@ -35,6 +34,7 @@ import com.xunmei.mediator.websocket.holder.WebSocketSessionHolder;
 import com.xunmei.mediator.websocket.service.RouterService;
 import com.xunmei.system.api.RemoteOrgService;
 import com.xunmei.system.api.domain.SysOrg;
+import com.xunmei.system.api.domain.iot.IotDeviceInfo;
 import com.xunmei.system.api.domain.north.NorthError;
 import com.xunmei.system.api.dto.protection.ReceiveErrorDto;
 import com.xunmei.system.api.util.LogUtils;
@@ -80,7 +80,8 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
 
     @Resource
     IotServerInfoService iotServerInfoService;
-
+    @Resource
+    IIotDeviceInfoService iotDeviceInfoService;
 
     @Override
     public ProductEnums product() {
@@ -128,6 +129,8 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         dst.setLoseSpan(req.getLoseSpan());
         dst.setRecordSpan(req.getRecordSpan());
         dst.setCheckSpan(req.getCheckSpan());
+        dst.setDeviceName(req.getDeviceName());
+        dst.setToken(req.getToken());
 
         return dst;
     }
@@ -148,12 +151,13 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         SysOrg org = orgService.findByCode(organizationGuid, SecurityConstants.INNER);
         if (org == null) {
             northErrorService.saveError(new NorthError(msgId, "/video/complete", videoIntegrityCheckDto, "参数非法:organizationGuid:" + organizationGuid + "不正确"));
-            return ReceiveErrorDto.success();
+            return ReceiveErrorDto.error("参数非法:organizationGuid:" + organizationGuid + "不正确");
         }
-        final IotDvrChannel channel = dvrChannelService.findChannel(videoIntegrityCheckDto.getChannelCode(), videoIntegrityCheckDto.getEquipmentCode(), org.getId());
+        IotDeviceInfo channel = iotDeviceInfoService.selectByTypeAndHostAndCode(videoIntegrityCheckDto.getToken(), videoIntegrityCheckDto.getEquipmentCode(), videoIntegrityCheckDto.getChannelCode());
+        //final IotDvrChannel channel = dvrChannelService.findChannel(videoIntegrityCheckDto.getChannelCode(), videoIntegrityCheckDto.getEquipmentCode(), org.getId());
         if (ObjectUtil.isNull(channel)) {
             northErrorService.saveError(new NorthError(msgId, "/video/complete", videoIntegrityCheckDto, "通道/设备不存在"));
-            return ReceiveErrorDto.success();
+            return ReceiveErrorDto.error("通道/设备不存在");
         }
 
         MediatorVideoIntegrityCheck old = this.findByOrgIdAndEquipmentCodeAndAndChannelCodeAndRecordDate(org.getId(), videoIntegrityCheckDto.getEquipmentCode(), videoIntegrityCheckDto.getChannelCode());
@@ -170,10 +174,13 @@ public class VideoIntegrityCheckServiceImpl extends ServiceImpl<VideoIntegrityCh
         }
 
         //获取监控主机
-        IotDevice hostDevice = iIotDeviceService.findByHostCode(videoIntegrityCheckDto.getEquipmentCode(), org.getId());
-        if (hostDevice != null) {
-            videoIntegrityCheck.setEquipmentName(hostDevice.getEquipmentName());
+        IotDeviceInfo hostDevice = iotDeviceInfoService.selectByTypeAndCode(videoIntegrityCheckDto.getToken(), videoIntegrityCheckDto.getEquipmentCode(), videoIntegrityCheckDto.getDeviceName());
+
+        if (hostDevice == null) {
+            northErrorService.saveError(new NorthError(msgId, "/video/complete", videoIntegrityCheckDto, "监控主机不存在"));
+            return ReceiveErrorDto.error("监控主机不存在");
         }
+        videoIntegrityCheck.setEquipmentName(hostDevice.getDeviceName());
 
         //获取录像检查天数 用于设置计划存储天数
         MediatorVideoDaysCheck dayCheck = videoDaysCheckService.findByOrgIdAndEquipmentCodeAndChannelCode(org.getId(), videoIntegrityCheckDto.getEquipmentCode(), videoIntegrityCheckDto.getChannelCode());

+ 9 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoDiagnosis/VideoDiagnosisDto.java

@@ -3,6 +3,7 @@ package com.xunmei.mediator.domain.dto.videoDiagnosis;
 import com.alibaba.fastjson.JSON;
 import com.xunmei.system.api.function.IRedisCompare;
 import com.xunmei.mediator.domain.dto.redis.RedisKey;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Data;
@@ -25,6 +26,13 @@ public class VideoDiagnosisDto implements IRedisCompare {
     private List detailInfo;
 
 
+
+    @ApiModelProperty(value = "唯一编码")
+    private String token;
+    @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
+    private String deviceName;
+
+
     @Override
     public String toKey() {
         return RedisKey.VIDEO_DIAGNOSIS_CHECK_KEY;
@@ -34,4 +42,5 @@ public class VideoDiagnosisDto implements IRedisCompare {
     public String toCompareString() {
         return JSON.toJSONString(this);
     }
+
 }

+ 5 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoDiagnosis/VideoDiagnosisReq.java

@@ -32,4 +32,9 @@ public class VideoDiagnosisReq{
     @ApiModelProperty(value = "详情")
     private List<String> detailInfo;
 
+
+    @ApiModelProperty(value = "唯一编码")
+    private String token;
+    @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
+    private String deviceName;
 }

+ 7 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoIntegrityCheck/VideoIntegrityCheckDto.java

@@ -31,6 +31,13 @@ public class VideoIntegrityCheckDto implements IRedisCompare {
     @ApiModelProperty(value = "原始录像索引")
     private List recordSpan;
 
+
+
+    @ApiModelProperty(value = "唯一编码")
+    private String token;
+    @ApiModelProperty(value = "设备名称",notes = "topic中的deviceName")
+    private String deviceName;
+
     @Override
     public String toKey() {
         return RedisKey.VIDEO_INTEGRITY_CHECK_KEY;

+ 3 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/domain/dto/videoIntegrityCheck/VideoIntegrityCheckReq.java

@@ -40,6 +40,9 @@ public class VideoIntegrityCheckReq {
     private List<String> loseSpan;
 
 
+    private String token;
+
+
 
 
 

+ 5 - 0
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/dto/WebsocketExecuteReq.java

@@ -22,4 +22,9 @@ public class WebsocketExecuteReq {
     @ApiModelProperty(value = "消息中的id,以此作为msgId")
     private String id;
 
+    @ApiModelProperty(value = "topic中的productName")
+    private String productName;
+    @ApiModelProperty(value = "topic中的deviceName")
+    private String deviceName;
+
 }

+ 1 - 1
soc-modules/soc-modules-mediator/src/main/java/com/xunmei/mediator/websocket/handler/SocWebSocketHandler.java

@@ -185,7 +185,7 @@ public class SocWebSocketHandler extends AbstractWebSocketHandler {
                         //IoT返回服务调用消息
                     case PRODUCT_SERVICE_REPLY:
                         RouterService routeService = RouterServiceHandler.getRouteService(typeEnums.getProductName(), routingKey);
-                        ReceiveErrorDto dto = (ReceiveErrorDto) routeService.execute(new WebsocketExecuteReq(event, args, token,websocketResult.getId()));
+                        ReceiveErrorDto dto = (ReceiveErrorDto) routeService.execute(new WebsocketExecuteReq(event, args, token,websocketResult.getId(),typeEnums.getProductName(), typeEnums.getDeviceName()));
                         WebSocketUtils.sendMessage(session,WebsocketResult.of(dto, topic, websocketResult.getId()));
                         break;
                     //IoT返回属性