Parcourir la source

开发空间解绑网关(一个空间解绑一个或多个网关)接口

james il y a 1 semaine
Parent
commit
e68149e898

+ 9 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/controller/web/EmsModelController.java

@@ -189,6 +189,15 @@ public class EmsModelController {
         return ApiResult.success();
     }
 
+    /**
+     * 空间解绑网关(一个空间解绑一个或多个网关)
+     */
+    @PostMapping("/space/gateway/unbind")
+    public ApiResult<Void> unbindSpaceGateways(@RequestBody SpaceGatewayBindRequest request) {
+        emsModelService.unbindSpaceGateways(request.getSpaceId(), request.getGatewayUuids());
+        return ApiResult.success();
+    }
+
     /**
      * 根据空间ID查询网关列表
      */

+ 7 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/EmsModelService.java

@@ -93,6 +93,13 @@ public interface EmsModelService {
      */
     void bindSpaceGateways(Long spaceId, List<String> gatewayUuids);
 
+    /**
+     * 空间解绑网关(一个空间可解绑多个网关)
+     * @param spaceId 空间ID
+     * @param gatewayUuids 网关uuid列表
+     */
+    void unbindSpaceGateways(Long spaceId, List<String> gatewayUuids);
+
     /**
      * 根据空间ID查询绑定的网关列表
      * @param spaceId 空间ID

+ 20 - 0
service-ems/service-ems-biz/src/main/java/com/usky/ems/service/impl/EmsModelServiceImpl.java

@@ -784,6 +784,26 @@ public class EmsModelServiceImpl implements EmsModelService {
         }
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void unbindSpaceGateways(Long spaceId, List<String> gatewayUuids) {
+        if (spaceId == null || gatewayUuids == null || gatewayUuids.isEmpty()) {
+            return;
+        }
+        Set<String> normalizedUuids = gatewayUuids.stream()
+                .filter(Objects::nonNull)
+                .map(String::trim)
+                .filter(s -> !s.isEmpty())
+                .collect(Collectors.toCollection(LinkedHashSet::new));
+        if (normalizedUuids.isEmpty()) {
+            return;
+        }
+
+        baseSpaceGatewayMapper.delete(new LambdaQueryWrapper<BaseSpaceGateway>()
+                .eq(BaseSpaceGateway::getSpaceId, spaceId)
+                .in(BaseSpaceGateway::getGatewayUuid, normalizedUuids));
+    }
+
     @Override
     public List<DmpGatewayDetailResponse> getGatewayListBySpaceId(Long spaceId) {
         if (spaceId == null) {