From ffac3458fddcc632b4118f2c4160bbf565a31a98 Mon Sep 17 00:00:00 2001
From: shikong <919411476@qq.com>
Date: Mon, 11 Sep 2023 10:17:58 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E8=A1=A8?=
=?UTF-8?q?=20=E7=B4=A2=E5=BC=95=E5=AE=9A=E4=B9=89=20=E4=B8=8E=20=E6=B7=BB?=
=?UTF-8?q?=E5=8A=A0=E8=AE=BE=E5=A4=87=20=E9=80=BB=E8=BE=91=20=E4=B8=80?=
=?UTF-8?q?=E4=B8=AA=E4=B8=8B=E7=BA=A7=E5=B9=B3=E5=8F=B0=20=E6=9C=89?=
=?UTF-8?q?=E5=A4=9A=E4=B8=AA=E8=AE=BE=E5=A4=87,=20=E6=AF=8F=E4=B8=AA?=
=?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=B8=BA=E4=B8=80=E4=B8=AA=E9=80=9A=E9=81=93?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../operation/WvpProxyOperateTableMapper.xml | 27 +++++++++----------
.../wvp/service/device/DeviceService.java | 14 ++++++++--
2 files changed, 24 insertions(+), 17 deletions(-)
diff --git a/gb28181-wvp-proxy-orm/src/main/java/cn/skcks/docking/gb28181/wvp/orm/mybatis/operation/WvpProxyOperateTableMapper.xml b/gb28181-wvp-proxy-orm/src/main/java/cn/skcks/docking/gb28181/wvp/orm/mybatis/operation/WvpProxyOperateTableMapper.xml
index b873aa8..f33ffab 100644
--- a/gb28181-wvp-proxy-orm/src/main/java/cn/skcks/docking/gb28181/wvp/orm/mybatis/operation/WvpProxyOperateTableMapper.xml
+++ b/gb28181-wvp-proxy-orm/src/main/java/cn/skcks/docking/gb28181/wvp/orm/mybatis/operation/WvpProxyOperateTableMapper.xml
@@ -4,20 +4,17 @@
- CREATE TABLE IF NOT EXISTS `wvp_proxy_device`
- (
- `id` bigint NOT NULL AUTO_INCREMENT,
- `device_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
- `gb_device_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
- `gb_device_channel_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
- `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
- `address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `gb_device_id` (`gb_device_id`),
- UNIQUE KEY `device_code` (`device_code`),
- UNIQUE KEY `gb_device_id_2` (`gb_device_id`, `gb_device_channel_id`)
- ) ENGINE = InnoDB
- DEFAULT CHARSET = utf8mb4
- COLLATE = utf8mb4_unicode_ci;
+ CREATE TABLE `wvp_proxy_device` (
+ `id` bigint(20) NOT NULL AUTO_INCREMENT,
+ `device_code` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
+ `gb_device_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
+ `gb_device_channel_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
+ `name` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
+ `address` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
+ PRIMARY KEY (`id`),
+ UNIQUE KEY `gb_device_id` (`gb_device_id`),
+ UNIQUE KEY `device_code_2` (`device_code`,`gb_device_id`,`gb_device_channel_id`),
+ KEY `device_code` (`device_code`) USING BTREE
+ ) ENGINE=InnoDB AUTO_INCREMENT=0 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
diff --git a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/device/DeviceService.java b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/device/DeviceService.java
index e0ea765..0bed52a 100644
--- a/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/device/DeviceService.java
+++ b/gb28181-wvp-proxy-service/src/main/java/cn/skcks/docking/gb28181/wvp/service/device/DeviceService.java
@@ -40,6 +40,12 @@ public class DeviceService {
s.where(WvpProxyDeviceDynamicSqlSupport.gbDeviceId,isEqualTo(gbDeviceId)));
}
+ public Optional getDeviceByGbDeviceIdAndChannel(String gbDeviceId,String channel){
+ return deviceMapper.selectOne(s->
+ s.where(WvpProxyDeviceDynamicSqlSupport.gbDeviceId,isEqualTo(gbDeviceId))
+ .and(WvpProxyDeviceDynamicSqlSupport.gbDeviceChannelId,isEqualTo(channel)));
+ }
+
/**
* 添加设备
* @param device 设备
@@ -60,11 +66,15 @@ public class DeviceService {
}
String gbDeviceId = device.getGbDeviceId();
+ String channel = device.getGbDeviceChannelId();
if(StringUtils.isBlank(gbDeviceId)){
throw new JsonException("国标编码不能为空");
}
- if(getDeviceByGbDeviceId(gbDeviceId).isPresent()){
- throw new JsonException(MessageFormat.format("国标编码 {0} 已存在" ,gbDeviceId));
+ if(StringUtils.isBlank(channel)){
+ throw new JsonException("国标通道不能为空");
+ }
+ if(getDeviceByGbDeviceIdAndChannel(gbDeviceId,channel).isPresent()){
+ throw new JsonException(MessageFormat.format("国标编码 {0}, 通道 {1} 已存在" ,gbDeviceId, channel));
}
return deviceMapper.insert(device) > 0;