Ver Fonte

设备同步代码提交

jingyuanchao há 11 meses atrás
pai
commit
c997ae33e2

+ 22 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/event/DeviceSyncEvent.java

@@ -0,0 +1,22 @@
+package com.xunmei.common.core.event;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.context.ApplicationEvent;
+
+
+@Getter
+@Setter
+public class DeviceSyncEvent extends ApplicationEvent {
+
+    @ApiModelProperty(value = "设备id")
+    private Long deviceId;
+
+
+
+    public DeviceSyncEvent(Object source, Long deviceId) {
+        super(source);
+        this.deviceId = deviceId;
+    }
+}

+ 25 - 0
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/listener/DeviceSyncEventListener.java

@@ -0,0 +1,25 @@
+package com.xunmei.iot.listener;
+
+import com.xunmei.common.core.event.DeviceSyncEvent;
+import com.xunmei.system.api.RemoteHostService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.ApplicationListener;
+import org.springframework.context.event.EventListener;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.event.TransactionPhase;
+import org.springframework.transaction.event.TransactionalEventListener;
+
+@Component
+@Slf4j
+public class DeviceSyncEventListener implements ApplicationListener<DeviceSyncEvent> {
+    @Autowired
+    RemoteHostService hostService;
+
+    @Override
+    @EventListener(DeviceSyncEvent.class)
+    @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, fallbackExecution = false)
+    public void onApplicationEvent(DeviceSyncEvent event) {
+        hostService.syncDeviceToHost(event.getDeviceId());
+    }
+}

+ 7 - 2
soc-modules/soc-modules-iot/src/main/java/com/xunmei/iot/service/impl/IotDeviceInfoServiceImpl.java

@@ -15,6 +15,7 @@ import com.xunmei.common.core.domain.iot.domain.IotAlarmDefenceArea;
 import com.xunmei.common.core.domain.iot.domain.IotAlarmSubsystem;
 import com.xunmei.common.core.domain.iot.domain.IotServerProduct;
 import com.xunmei.common.core.enums.iot.BaseDeviceTypeEnum;
+import com.xunmei.common.core.event.DeviceSyncEvent;
 import com.xunmei.common.core.utils.DateUtils;
 import com.xunmei.common.core.utils.StringUtils;
 import com.xunmei.common.core.web.page.TableDataInfo;
@@ -40,6 +41,7 @@ import com.xunmei.system.api.domain.iot.IotDeviceInfoExtend;
 import org.redisson.api.RLock;
 import org.redisson.api.RedissonClient;
 import org.springframework.beans.BeanUtils;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -65,7 +67,8 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
     private IotServerProductMapper productMapper;
     @Resource
     private IotDeviceInfoExtendService extendService;
-
+    @Resource
+    private ApplicationEventPublisher eventPublisher;
     @Override
     public TableDataInfo<IotDeviceInfoPageVo> deviceInfoPage(IotDeviceInfoPageDto request) {
         if (request.getCheckSub()) {
@@ -219,7 +222,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         }
 
         extendService.updateByDeviceId(deviceId, req);
-
+        eventPublisher.publishEvent(new DeviceSyncEvent(this,deviceId));
         return effect;
     }
 
@@ -309,6 +312,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         }
 
         updateAddAlarmHostDevice(req);
+        eventPublisher.publishEvent(new DeviceSyncEvent(this,deviceId));
         return 1;
     }
 
@@ -525,6 +529,7 @@ public class IotDeviceInfoServiceImpl extends ServiceImpl<IotDeviceInfoMapper, I
         deviceInfo.setDeleted(0);
         saveOrUpdate(deviceInfo);
         extendService.updateNetHostExtendByDeviceId(deviceInfo.getId(), req);
+        eventPublisher.publishEvent(new DeviceSyncEvent(this,deviceInfo.getId()));
         return 1;
     }