From f9691d544e62d6c04dbfe45d05a6c7bc5e004291 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 29 十二月 2023 11:52:29 +0800
Subject: [PATCH] 服务商

---
 server/services/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java |   61 +++++++++++++++++++++++++-----
 1 files changed, 51 insertions(+), 10 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
index 64cf5ed..c923d9e 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java
@@ -1,14 +1,18 @@
 package com.doumee.service.business.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.doumee.core.constants.Constants;
-import com.doumee.core.mqtt.service.MqttPushCallback;
+import com.doumee.core.mqtt.config.MqttConfig;
 import com.doumee.core.mqtt.service.MqttToolService;
+import com.doumee.dao.business.MqttLogMapper;
 import com.doumee.dao.business.model.Locks;
+import com.doumee.dao.business.model.MqttLog;
 import com.doumee.service.business.DeviceService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
-
 import javax.annotation.PostConstruct;
+import java.util.Date;
 
 /**
  *  涓庣‖浠跺鎺ユ湇鍔�
@@ -17,19 +21,56 @@
  */
 @Service
 public class DeviceServiceImpl implements DeviceService {
-
     @Autowired
     private MqttToolService mqttToolService;
-
+    @Autowired
+    private MqttLogMapper mqttLogMapper;
+    @Autowired
+    private MqttConfig mqttConfig;
+    /**
+     * 鍙戣捣寮�閿佹寚浠�
+     * @param locks
+     * @return
+     */
     @Override
-    @PostConstruct
-    public void startSubcribe() {
-        mqttToolService.subscribe(new String[]{ Constants.MqttTopic.openLock, Constants.MqttTopic.closeLock});
+    public MqttLog openLock(Locks locks) {
+        String topic =  Constants.MqttTopic.pub_openLock.replace("{siteId}", locks.getSiteId()).replace("{lockId}", locks.getCode()+"");
+        int result = mqttToolService.pubMessage("{}",topic);
+        MqttLog mqttLog = createPushLog(topic,result,"璇锋眰寮�閿乢"+locks.getId());
+        return mqttLog;
+    }
+    /**
+     * 瀹炴椂鏌ヨ閿佷俊鎭�
+     * @param locks
+     * @return
+     */
+    @Override
+    public MqttLog getLockInfo(Locks locks) {
+        String topic =  Constants.MqttTopic.pub_getLockInfo.replace("{siteId}", locks.getSiteId()).replace("{lockId}", locks.getCode()+"");
+        int result = mqttToolService.pubMessage("{}",topic);
+        MqttLog mqttLog = createPushLog(topic,result,"瀹炴椂鏌ヨ閿佷俊鎭痏"+locks.getId());
+        return mqttLog;
     }
     @Override
-    public String openLock(Locks locks) {
-        mqttToolService.pubMessage(locks.getName(), Constants.MqttTopic.openLock);
-        return null;
+    @Async
+    public void testPush(String topic, String json){
+        int result = mqttToolService.pubMessage(json,topic);
     }
 
+    private MqttLog createPushLog(String topic, int result,String info) {
+        MqttLog log = new MqttLog();
+        log.setId(Constants.getUUID());
+        log.setCreateDate(new Date());
+        log.setResult(result);
+        log.setTopic(topic);
+        log.setClientid(mqttConfig.getClientid());
+        log.setHostInfo(mqttConfig.getHost());
+        log.setInfo(JSONObject.toJSONString(mqttConfig));
+        log.setType(Constants.ONE);
+        log.setMsg("");
+        log.setInfo(info);
+        log.setIsdeleted(Constants.ZERO);
+        mqttLogMapper.insert(log);
+        return  log;
+    }
 }

--
Gitblit v1.9.3