From d267efe74181bbc89e7ecda1032f11965984769b Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Wed, 19 Mar 2025 14:08:07 +0800
Subject: [PATCH] 增加状态统一订阅 增加载荷和飞控用户同时获取

---
 ard-work/src/main/java/com/ard/tianyu/service/control/UavControlService.java |   19 ++++++++++++++-----
 1 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/ard-work/src/main/java/com/ard/tianyu/service/control/UavControlService.java b/ard-work/src/main/java/com/ard/tianyu/service/control/UavControlService.java
index a58c63b..c30411c 100644
--- a/ard-work/src/main/java/com/ard/tianyu/service/control/UavControlService.java
+++ b/ard-work/src/main/java/com/ard/tianyu/service/control/UavControlService.java
@@ -1,12 +1,14 @@
 package com.ard.tianyu.service.control;
 
-import com.ard.common.exception.NoPermissionException;
+import com.ard.common.exception.ControlException;
 import com.ard.common.utils.SecurityUtils;
 import com.ard.tianyu.websocket.domain.UavControlType;
 import com.ard.tianyu.websocket.handler.UavControlManager;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
 
 /**
@@ -66,7 +68,7 @@
             requestMap.put(boxSn, requester);
             uavControlManager.sendControlRequest(controller, boxSn, controlType.getType(), requester);
         } else {
-            throw new NoPermissionException("当前已拥有控制权");
+            throw new ControlException("当前已拥有控制权");
         }
         return false;
     }
@@ -94,7 +96,7 @@
         Long requester = requestMap.get(boxSn);
 
         if (requester == null || requester.equals(controller)) {
-            throw new NoPermissionException("无控制请求");
+            throw new ControlException("无控制请求");
         }
 
         if (approve) {
@@ -128,7 +130,7 @@
         ConcurrentHashMap<String, Long> controlMap = getControlMap(controlType);
 
         if (!controller.equals(controlMap.get(boxSn))) {
-            throw new NoPermissionException("没有该设备的" + controlType.getType().toUpperCase() + "控制权");
+            throw new ControlException("没有该设备的" + controlType.getType().toUpperCase() + "控制权");
         }
 
         controlMap.remove(boxSn);
@@ -158,7 +160,14 @@
         UavControlType controlType = UavControlType.fromString(type);
         return getControlMap(controlType).get(boxSn);
     }
-
+    public Map<String,Long> getCurrentController(String boxSn) {
+        Long flyController = uavFlyControlMap.get(boxSn);
+        Map<String,Long> map=new HashMap<>();
+        map.put("flyController",flyController);
+        Long payloadController = uavPayloadControlMap.get(boxSn);
+        map.put("payloadController",payloadController);
+        return map;
+    }
     /**
      * 根据控制类型获取对应的控制 Map
      */

--
Gitblit v1.9.3