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;