|
@@ -0,0 +1,46 @@
|
|
|
|
+package com.xy.consumer;
|
|
|
|
+
|
|
|
|
+import cn.hutool.json.JSONObject;
|
|
|
|
+import cn.hutool.json.JSONUtil;
|
|
|
|
+import com.xy.dto.DeviceStatusDto;
|
|
|
|
+import com.xy.service.DeviceStatusService;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+/**
|
|
|
|
+ * <p>
|
|
|
|
+ * 设备上线监听消费者
|
|
|
|
+ * </p>
|
|
|
|
+ *
|
|
|
|
+ * @author lijin
|
|
|
|
+ * @since 2022-12-27
|
|
|
|
+ */
|
|
|
|
+@Slf4j
|
|
|
|
+@Service
|
|
|
|
+@AllArgsConstructor
|
|
|
|
+public class ConnectedConsumer implements MqttConsumer {
|
|
|
|
+
|
|
|
|
+ private DeviceStatusService deviceStatusService;
|
|
|
|
+
|
|
|
|
+ @Override
|
|
|
|
+ public boolean message(String topic, String payload) {
|
|
|
|
+ log.info("设备上线监听:{}", payload);
|
|
|
|
+ return exc(payload, true);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public boolean exc(String payload, boolean netState) {
|
|
|
|
+ JSONObject jsonObject = JSONUtil.parseObj(payload);
|
|
|
|
+ String clientid = jsonObject.getStr("clientid");
|
|
|
|
+ Long deviceId;
|
|
|
|
+ try {
|
|
|
|
+ deviceId = Long.valueOf(clientid);
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ return true;
|
|
|
|
+ }
|
|
|
|
+ DeviceStatusDto.Up up = new DeviceStatusDto.Up().setDeviceId(deviceId);
|
|
|
|
+ up.setNetState(netState);
|
|
|
|
+ int code = deviceStatusService.up(up).getCode();
|
|
|
|
+ return code == 200;
|
|
|
|
+ }
|
|
|
|
+}
|