From 47b7c25027580aa41fa6daa20f715044b1772a46 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 16 十月 2023 10:55:24 +0800
Subject: [PATCH] 优化

---
 server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java                  |    2 
 server/services/src/main/java/com/doumee/service/business/impl/DeviceSubscribeServiceImpl.java |   12 ++++--
 server/services/src/main/java/com/doumee/core/constants/Constants.java                         |   11 +++--
 server/platform/src/main/java/com/doumee/api/business/SitesController.java                     |    1 
 server/web/src/main/resources/application.yml                                                  |    2 
 server/services/src/main/java/com/doumee/service/business/impl/DeviceServiceImpl.java          |    4 +-
 server/自行车mqtt协议.md                                                                            |   35 +++++++++--------
 7 files changed, 36 insertions(+), 31 deletions(-)

diff --git a/server/platform/src/main/java/com/doumee/api/business/SitesController.java b/server/platform/src/main/java/com/doumee/api/business/SitesController.java
index 7d55909..169afd4 100644
--- a/server/platform/src/main/java/com/doumee/api/business/SitesController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/SitesController.java
@@ -7,7 +7,6 @@
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
 import com.doumee.dao.business.model.Sites;
-import com.doumee.dao.business.web.request.SitesMonitorBikeDTO;
 import com.doumee.dao.business.web.request.SitesMonitorDTO;
 import com.doumee.service.business.SitesService;
 import io.swagger.annotations.Api;
diff --git a/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java b/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java
index 9bcdd03..a803fd3 100644
--- a/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java
+++ b/server/platform/src/main/java/com/doumee/service/impl/MqttSubServiceImpl.java
@@ -31,6 +31,6 @@
     @Override
     @PostConstruct
     public void startSubcribe() {
-        mqttToolService.subscribe(new String[]{ Constants.MqttTopic.lockInfo, Constants.MqttTopic.closeLock});
+        mqttToolService.subscribe(new String[]{ Constants.MqttTopic.sub_lockInfo, Constants.MqttTopic.sub_closeLock});
     }
 }
diff --git a/server/services/src/main/java/com/doumee/core/constants/Constants.java b/server/services/src/main/java/com/doumee/core/constants/Constants.java
index 6887607..e236ec7 100644
--- a/server/services/src/main/java/com/doumee/core/constants/Constants.java
+++ b/server/services/src/main/java/com/doumee/core/constants/Constants.java
@@ -34,15 +34,16 @@
     public static final String FORCE_BACK_SITE = "FORCE_BACK_SITE";
     public static String REDIS_DEBUG_STR="test_";
     public  interface MqttTopic{
-        //寮�閿侊紙鍙戝竷锛�
+
         String topic_index = "device/lock/";
-        String openLock = "device/lock/+/unlock";
+        //寮�閿侊紙鍙戝竷锛�
+        String pub_openLock = "device/lock/{siteId}/{lockId}/unlock";
         //閿佷俊鎭紝鍦ㄥ垵濮嬪寲銆佺姸鎬佸彉鏇存椂浼氭帹閫侀攣鐨勫畬鏁寸姸鎬�(璁㈤槄锛�
-        String lockInfo = "device/lock/+/info";
+        String sub_lockInfo = "device/lock/+/+/info";
         //杩樿溅閿佸ご锛堣闃咃級
-        String closeLock = "device/lock/+/bike";
+        String sub_closeLock = "device/lock/+/+/bike";
         //瀹炴椂鑾峰彇閿佷俊鎭紙鍙戝竷锛�
-        String getLockInfo = "device/lock/+/getInfo";
+        String pub_getLockInfo = "device/lock/{siteId}/{lockId}/getInfo";
     }
 
     /**
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 07c619d..1383d8a 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
@@ -34,7 +34,7 @@
      */
     @Override
     public MqttLog openLock(Locks locks) {
-        String topic =  Constants.MqttTopic.openLock.replace("+", locks.getId());
+        String topic =  Constants.MqttTopic.pub_openLock.replace("+", locks.getId());
         int result = mqttToolService.pubMessage("{}",topic);
         MqttLog mqttLog = createPushLog(topic,result,"璇锋眰寮�閿乢"+locks.getId());
         return mqttLog;
@@ -46,7 +46,7 @@
      */
     @Override
     public MqttLog getLockInfo(Locks locks) {
-        String topic =  Constants.MqttTopic.getLockInfo.replace("+", locks.getId());
+        String topic =  Constants.MqttTopic.pub_getLockInfo.replace("+", locks.getId());
         int result = mqttToolService.pubMessage("{}",topic);
         MqttLog mqttLog = createPushLog(topic,result,"瀹炴椂鏌ヨ閿佷俊鎭痏"+locks.getId());
         return mqttLog;
diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DeviceSubscribeServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DeviceSubscribeServiceImpl.java
index a34dbae..e4cda85 100644
--- a/server/services/src/main/java/com/doumee/service/business/impl/DeviceSubscribeServiceImpl.java
+++ b/server/services/src/main/java/com/doumee/service/business/impl/DeviceSubscribeServiceImpl.java
@@ -39,16 +39,20 @@
     @Override
     public void listener(String msgId,String param,String topic) {
        log.info("mqtt娑堟伅璁㈤槄==================="+param);
-        String info = Constants.MqttTopic.lockInfo.substring(Constants.MqttTopic.lockInfo.lastIndexOf("/")+1) ;
-        String closeLock = Constants.MqttTopic.closeLock.substring(Constants.MqttTopic.closeLock.lastIndexOf("/")+1) ;
+        String info = Constants.MqttTopic.sub_lockInfo.substring(Constants.MqttTopic.sub_lockInfo.lastIndexOf("/")+1) ;
+        String closeLock = Constants.MqttTopic.sub_closeLock.substring(Constants.MqttTopic.sub_closeLock.lastIndexOf("/")+1) ;
         if(topic.indexOf(Constants.MqttTopic.topic_index)!=0
+                ||topic.split("/").length < 5
                 || (!StringUtils.contains(topic, info)
                    &&!StringUtils.contains(topic,closeLock))){
             log.error("mqtt娑堟伅璁㈤槄===========鏃犳晥鏁版嵁========"+param);
             return;
         }
-        String lockid =  getLockIdFromTopic(topic);
-        if(StringUtils.isBlank(lockid)){
+
+        String[] ss = topic.split("/");
+        String siteid =  ss[2];//绔欑偣缂栫爜
+        String lockid =  ss[3];//閿佸ご缂栫爜
+        if(StringUtils.isBlank(siteid)||StringUtils.isBlank(lockid)){
             //濡傛灉閿佸ご缂栫爜涓虹┖
             log.error("mqtt娑堟伅璁㈤槄==============鏃犳晥鏁版嵁====="+param);
             return;
diff --git a/server/web/src/main/resources/application.yml b/server/web/src/main/resources/application.yml
index e6fd44e..8664b05 100644
--- a/server/web/src/main/resources/application.yml
+++ b/server/web/src/main/resources/application.yml
@@ -60,7 +60,7 @@
 
   # WEB鏈嶅姟鍣ㄩ厤缃�
 server:
-   port: 10013
+   port: 10025
 
 mqtt:
   clientid: doumeetestweb
diff --git "a/server/\350\207\252\350\241\214\350\275\246mqtt\345\215\217\350\256\256.md" "b/server/\350\207\252\350\241\214\350\275\246mqtt\345\215\217\350\256\256.md"
index 179201d..997a0d5 100644
--- "a/server/\350\207\252\350\241\214\350\275\246mqtt\345\215\217\350\256\256.md"
+++ "b/server/\350\207\252\350\241\214\350\275\246mqtt\345\215\217\350\256\256.md"
@@ -1,48 +1,49 @@
 # 鑷杞� mqtt 鍗忚鏂囨。
 
+## {"bikeCode":"1234567890","id":"kjflksjlkfsjdlk","siteId": 456,"status":0,"code":"789"}
+
+## {"bikeCode":"1234567890","lockId":789,"siteId": 456,"time":"2023-10-13 10:12:90"}
 ## 閫氫俊瑙勮寖
 - 姣忎釜绔欑偣涓�涓� mqtt 杩炴帴锛宑lientId 涓� SITE_绔欑偣缂栧彿
 - 涓�涓珯鐐圭敱閮ㄧ讲鍦ㄤ笂浣嶆満涓婄殑杞欢閫氳繃can鎬荤嚎涓庡涓攣閫氫俊锛屽苟涓庢湇鍔″櫒閫氳繃mqtt鍋氭秷鎭浆鍙�
 
 
-## sub: device/lock/{id}/info
+## sub: device/lock/{siteId}/{lockId}/info
 > **閿佷俊鎭紝鍦ㄥ垵濮嬪寲銆佺姸鎬佸彉鏇存椂浼氭帹閫侀攣鐨勫畬鏁寸姸鎬�**
 - 鏁版嵁
 ```json
 {
-    "siteId": "1015", // 绔欑偣缂栧彿 
-    "code": "01", // 閿佺紪鍙�
-    "id": "123456789103", // 閿佸敮涓�id,鍚屼富棰榹id}
-    "status": 1, // 鐘舵�侊紝0闂悎, 1鎵撳紑锛�2杩愯涓�, 3寮傚父
-    "bikeCode": "1234567890" // 鑷杞c鍗″彿锛屾棤杞︿负绌�
+    "siteId": "1015", // 绔欑偣缂栧彿,鍚屼富棰榹siteId}
+    "lockId": 2, // 閿佺紪鍙�,鍚屼富棰榹lockId}
+    "status": 1, // 鐘舵�侊紝0闂悎, 1鎵撳紑锛�2杩愯涓�, 3寮傚父, -1鑷涓�
+    "bikeCode": "12345678" // 鑷杞c鍗″彿锛�8浣嶆暟瀛�,濡傦細10000012锛屾棤杞︿负绌�
 }
-
-## {"bikeCode":"1234567890","id":"kjflksjlkfsjdlk","siteId": 456,"status":0,"code":"789"}
 ```
 
-## pub: device/lock/{id}/getInfo
+## pub: device/lock/{siteId}/{lockId}/getInfo
 > 瀹炴椂鑾峰彇閿佷俊鎭�
 - 鏁版嵁
 ```json
 {}
 ```
 
-## pub: device/lock/{id}/unlock
+## pub: device/lock/{siteId}/{lockId}/unlock
 > 寮�閿侊紝鎴愬姛澶辫触鍙叧娉╥nfo娑堟伅鎺ㄩ��
 - 鏁版嵁
 ```json
 {}
 ```
 
-## sub: device/lock/{id}/bike
+## sub: device/lock/{siteId}/{lockId}/bike
 > 杩樿溅, 杩樿溅鎴愬姛鏃讹紝鑾峰緱鎵�杩樿溅杈唅c鍗″彿鎺ㄩ��
 - 鏁版嵁
 ```json
 {
-    "bikeCode": "1234567890",
-    "lockId": 123,
-    "siteId": 234,
-    "time": "2023-10-13 10:12:90"
+    "bikeCode": "12345678",
+    "lockId": 2,
+    "siteId": "1050",
+    "time": "2023-10-13 10:12:90" // 绔欑偣涓婁綅鏈烘敹鍒拌繕杞︽寚浠ょ殑鏃堕棿锛屼粎鍋氬弬鑰冿紝璇蜂互鏈嶅姟鍣ㄦ椂闂翠负鍑�
 }
-## {"bikeCode":"1234567890","lockId":789,"siteId": 456,"time":"2023-10-13 10:12:90"}
-```
\ No newline at end of file
+```
+
+ 
\ No newline at end of file

--
Gitblit v1.9.3