From 153091d6b8962fddcf9af750164c81c8aab80be2 Mon Sep 17 00:00:00 2001
From: zhaowenyu <35589726@qq.com>
Date: Fri, 31 Oct 2025 16:16:03 +0800
Subject: [PATCH] 2025-10-31 zwy 整理更新机场在线状态代码,删除没用的引用。
---
ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 52 insertions(+), 0 deletions(-)
diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java
index cd29c0f..7466075 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/DeviceServiceImpl.java
@@ -1,5 +1,7 @@
package com.ard.sample.manage.service.impl;
+import com.alibaba.fastjson2.JSONObject;
+import com.ard.system.authorize.service.AuthorizeService;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -89,6 +91,9 @@
@Autowired
private IDeviceFirmwareService deviceFirmwareService;
+
+ @Resource
+ private AuthorizeService authorizeService;
@Autowired
@Qualifier("gatewayOSDServiceImpl")
@@ -305,6 +310,9 @@
.collect(Collectors.toList());
}
+ /**
+ * 设备列表
+ * */
@Override
public List<DeviceDTO> getDevicesTopoForWeb() {
List<DeviceDTO> devicesList = this.getDevicesByParams(
@@ -533,10 +541,54 @@
mapper.updateById(entity);
return Optional.of(deviceEntity);
}
+ // 2025-10-20 zwy 添加时增加授权验证及数量限制,限制为3台机场设备,超出则抛出异常
+ try{
+ // 查询数据库中机器设备数量
+ // 根据参数获取设备列表
+ List<DeviceDTO> devicesList = this.getDevicesByParams(
+ DeviceQueryParam.builder()
+ // 过滤设备域为GATEWAY和DOCK的设备
+ .domains(List.of(DeviceDomainEnum.GATEWAY.getVal(), DeviceDomainEnum.DOCK.getVal()))
+ .build());
+ // 验证授权数量
+ validateAuthorization(devicesList.size(), 1);
+ }
+ catch (Exception e) {
+ return Optional.empty();
+ }
+ // 调用验证方法
+
return mapper.insert(entity) > 0 ? Optional.of(entity) : Optional.empty();
}
/**
+ * 验证授权数量
+ */
+ private void validateAuthorization(int existingCount, int newCount) {
+ int totalCount = existingCount + newCount;
+
+ JSONObject authInfo = authorizeService.getAuthorizationInfo();
+ String authType = authInfo.getString("Type");
+
+ switch (authType) {
+ case "normal":
+ int allowedDockNum = authInfo.getIntValue("dockNum");
+ if (totalCount > allowedDockNum) {
+ throw new RuntimeException(String.format(
+ "授权数量%d,当前操作将导致总数达到%d,超过授权限制",
+ allowedDockNum, totalCount));
+ }
+ break;
+ case "expired":
+ throw new RuntimeException("授权文件已过期");
+ case "mismatch":
+ throw new RuntimeException("授权文件不匹配");
+ default:
+ throw new RuntimeException("未知的授权类型: " + authType);
+ }
+ }
+
+ /**
* Convert the received gateway device object into a database entity object.
*
* @param gateway
--
Gitblit v1.9.3