From c69a8bc29d0b5178321c84e86f07e308c2116c7e Mon Sep 17 00:00:00 2001
From: Xiajijian <1176061145@qq.com>
Date: Fri, 26 Dec 2025 15:18:56 +0800
Subject: [PATCH] 1. 优化新增地图/修改地图名称重复校验。 2. 优化新增模型/修改模型名称重复校验。 3. 优化新增tile/修改tile名称重复校验。

---
 ard-system/src/main/java/com/ard/data/tile/service/IArdTileService.java                |    9 +++
 ard-system/src/main/resources/mapper/data/ArdModelMapper.xml                           |    5 +
 ard-admin/src/main/java/com/ard/web/controller/data/ArdModelController.java            |    7 ++
 ard-admin/src/main/java/com/ard/web/controller/data/ArdTileController.java             |    7 ++
 ard-system/src/main/java/com/ard/data/map/service/impl/ArdMapServiceImpl.java          |   21 +++++++
 ard-system/src/main/java/com/ard/data/model/service/impl/ArdModelServiceImpl.java      |   21 +++++++
 ard-system/src/main/resources/mapper/data/ArdMapMapper.xml                             |    5 +
 ard-system/src/main/resources/mapper/data/ArdTileMapper.xml                            |    5 +
 ard-system/src/main/java/com/ard/data/model/mapper/ArdModelMapper.java                 |   10 +++
 ard-system/src/main/resources/mapper/data/ArdNoFlyZoneMapper.xml                       |    2 
 ard-system/src/main/java/com/ard/data/map/mapper/ArdMapMapper.java                     |   10 +++
 ard-system/src/main/java/com/ard/data/model/service/IArdModelService.java              |    9 +++
 ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java |    1 
 ard-system/src/main/java/com/ard/data/map/service/IArdMapService.java                  |    9 +++
 ard-system/src/main/java/com/ard/data/tile/service/impl/ArdTileServiceImpl.java        |   21 +++++++
 ard-admin/src/main/java/com/ard/web/controller/data/ArdMapController.java              |    7 ++
 ard-system/src/main/java/com/ard/data/tile/mapper/ArdTileMapper.java                   |   10 +++
 17 files changed, 158 insertions(+), 1 deletions(-)

diff --git a/ard-admin/src/main/java/com/ard/web/controller/data/ArdMapController.java b/ard-admin/src/main/java/com/ard/web/controller/data/ArdMapController.java
index 5a97336..537ac14 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/data/ArdMapController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/data/ArdMapController.java
@@ -3,6 +3,7 @@
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ard.common.constant.DeviceConstants;
 import com.ard.data.map.domain.ArdMap;
 import com.ard.data.map.service.IArdMapService;
 import io.swagger.annotations.Api;
@@ -81,6 +82,9 @@
     @Log(title = "地图管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ArdMap ardMap) {
+        if (DeviceConstants.NOT_UNIQUE.equals(ardMapService.checkArdMapNameUnique(ardMap))) {
+            return error("新增地图'" + ardMap.getMapName() + "'失败,已存在");
+        }
         return toAjax(ardMapService.insertArdMap(ardMap));
     }
 
@@ -92,6 +96,9 @@
     @Log(title = "地图管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody ArdMap ardMap) {
+        if (DeviceConstants.NOT_UNIQUE.equals(ardMapService.checkArdMapNameUnique(ardMap))) {
+            return error("修改地图'" + ardMap.getMapName() + "'失败,已存在");
+        }
         return toAjax(ardMapService.updateArdMap(ardMap));
     }
 
diff --git a/ard-admin/src/main/java/com/ard/web/controller/data/ArdModelController.java b/ard-admin/src/main/java/com/ard/web/controller/data/ArdModelController.java
index d9e6612..3db3520 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/data/ArdModelController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/data/ArdModelController.java
@@ -3,6 +3,7 @@
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ard.common.constant.DeviceConstants;
 import com.ard.data.model.domain.ArdModel;
 import com.ard.data.model.service.IArdModelService;
 import io.swagger.annotations.Api;
@@ -81,6 +82,9 @@
     @Log(title = "模型管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ArdModel ardModel) {
+        if (DeviceConstants.NOT_UNIQUE.equals(ardModelService.checkArdModelNameUnique(ardModel))) {
+            return error("新增模型'" + ardModel.getModelName() + "'失败,已存在");
+        }
         return toAjax(ardModelService.insertArdModel(ardModel));
     }
 
@@ -92,6 +96,9 @@
     @Log(title = "模型管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody ArdModel ardModel) {
+        if (DeviceConstants.NOT_UNIQUE.equals(ardModelService.checkArdModelNameUnique(ardModel))) {
+            return error("修改模型'" + ardModel.getModelName() + "'失败,已存在");
+        }
         return toAjax(ardModelService.updateArdModel(ardModel));
     }
 
diff --git a/ard-admin/src/main/java/com/ard/web/controller/data/ArdTileController.java b/ard-admin/src/main/java/com/ard/web/controller/data/ArdTileController.java
index dc69330..4f57755 100644
--- a/ard-admin/src/main/java/com/ard/web/controller/data/ArdTileController.java
+++ b/ard-admin/src/main/java/com/ard/web/controller/data/ArdTileController.java
@@ -3,6 +3,7 @@
 import java.util.List;
 import javax.servlet.http.HttpServletResponse;
 
+import com.ard.common.constant.DeviceConstants;
 import com.ard.data.tile.domain.ArdTile;
 import com.ard.data.tile.service.IArdTileService;
 import io.swagger.annotations.Api;
@@ -81,6 +82,9 @@
     @Log(title = "tile管理", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ArdTile ardTile) {
+        if (DeviceConstants.NOT_UNIQUE.equals(ardTileService.checkArdTileNameUnique(ardTile))) {
+            return error("新增tile'" + ardTile.getTilesName() + "'失败,已存在");
+        }
         return toAjax(ardTileService.insertArdTile(ardTile));
     }
 
@@ -92,6 +96,9 @@
     @Log(title = "tile管理", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody ArdTile ardTile) {
+        if (DeviceConstants.NOT_UNIQUE.equals(ardTileService.checkArdTileNameUnique(ardTile))) {
+            return error("修改tile'" + ardTile.getTilesName() + "'失败,已存在");
+        }
         return toAjax(ardTileService.updateArdTile(ardTile));
     }
 
diff --git a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
index 0940bbd..8a6d437 100644
--- a/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
+++ b/ard-sample/src/main/java/com/ard/sample/manage/service/impl/LiveStreamServiceImpl.java
@@ -21,7 +21,6 @@
 import com.ard.sample.manage.service.ILiveStreamService;
 import com.ard.vtdu.config.MediamtxConfig;
 import com.ard.vtdu.domain.ArdVtdu;
-import com.ard.vtdu.service.IArdMediaService;
 import com.ard.vtdu.service.IArdVtduService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
diff --git a/ard-system/src/main/java/com/ard/data/map/mapper/ArdMapMapper.java b/ard-system/src/main/java/com/ard/data/map/mapper/ArdMapMapper.java
index ae12f02..3aaaeaf 100644
--- a/ard-system/src/main/java/com/ard/data/map/mapper/ArdMapMapper.java
+++ b/ard-system/src/main/java/com/ard/data/map/mapper/ArdMapMapper.java
@@ -1,6 +1,7 @@
 package com.ard.data.map.mapper;
 
 import com.ard.data.map.domain.ArdMap;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -59,4 +60,13 @@
      * @return 结果
      */
     public int deleteArdMapByIds(String[] ids);
+
+    /**
+     * 校验地图管理信息名称是否唯一
+     *
+     * @param mapName 名称
+     * @return 结果
+     */
+    public ArdMap checkArdMapNameUnique(@Param("mapName") String mapName);
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/map/service/IArdMapService.java b/ard-system/src/main/java/com/ard/data/map/service/IArdMapService.java
index 028ab9b..996eba2 100644
--- a/ard-system/src/main/java/com/ard/data/map/service/IArdMapService.java
+++ b/ard-system/src/main/java/com/ard/data/map/service/IArdMapService.java
@@ -59,4 +59,13 @@
      * @return 结果
      */
     public int deleteArdMapById(String id);
+
+    /**
+     * 校验地图管理信息名称是否唯一
+     *
+     * @param ardMap 地图管理
+     * @return 结果
+     */
+    public String checkArdMapNameUnique(ArdMap ardMap);
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/map/service/impl/ArdMapServiceImpl.java b/ard-system/src/main/java/com/ard/data/map/service/impl/ArdMapServiceImpl.java
index 869117b..362b632 100644
--- a/ard-system/src/main/java/com/ard/data/map/service/impl/ArdMapServiceImpl.java
+++ b/ard-system/src/main/java/com/ard/data/map/service/impl/ArdMapServiceImpl.java
@@ -1,5 +1,6 @@
 package com.ard.data.map.service.impl;
 
+import com.ard.common.constant.DeviceConstants;
 import com.ard.common.utils.uuid.IdUtils;
 import com.ard.data.map.domain.ArdMap;
 import com.ard.data.map.mapper.ArdMapMapper;
@@ -87,4 +88,24 @@
     public int deleteArdMapById(String id) {
         return ardMapMapper.deleteArdMapById(id);
     }
+
+    /**
+     * 校验地图管理信息名称是否唯一
+     *
+     * @param ardMap 地图管理
+     * @return 结果
+     */
+    @Override
+    public String checkArdMapNameUnique(ArdMap ardMap) {
+        String id = ardMap.getId();
+        String mapName = ardMap.getMapName();
+
+        ArdMap map = ardMapMapper.checkArdMapNameUnique(mapName);
+
+        if (map != null && (id == null || !id.equals(map.getId()))) {
+            return DeviceConstants.NOT_UNIQUE;
+        }
+        return DeviceConstants.UNIQUE;
+    }
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/model/mapper/ArdModelMapper.java b/ard-system/src/main/java/com/ard/data/model/mapper/ArdModelMapper.java
index 2f60299..9ead264 100644
--- a/ard-system/src/main/java/com/ard/data/model/mapper/ArdModelMapper.java
+++ b/ard-system/src/main/java/com/ard/data/model/mapper/ArdModelMapper.java
@@ -1,6 +1,7 @@
 package com.ard.data.model.mapper;
 
 import com.ard.data.model.domain.ArdModel;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -59,4 +60,13 @@
      * @return 结果
      */
     public int deleteArdModelByIds(String[] ids);
+
+    /**
+     * 校验模型管理信息名称是否唯一
+     *
+     * @param modelName 名称
+     * @return 结果
+     */
+    public ArdModel checkArdModelNameUnique(@Param("modelName") String modelName);
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/model/service/IArdModelService.java b/ard-system/src/main/java/com/ard/data/model/service/IArdModelService.java
index 12fb816..66776cc 100644
--- a/ard-system/src/main/java/com/ard/data/model/service/IArdModelService.java
+++ b/ard-system/src/main/java/com/ard/data/model/service/IArdModelService.java
@@ -59,4 +59,13 @@
      * @return 结果
      */
     public int deleteArdModelById(String id);
+
+    /**
+     * 校验模型管理信息名称是否唯一
+     *
+     * @param ardModel 模型管理
+     * @return 结果
+     */
+    public String checkArdModelNameUnique(ArdModel ardModel);
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/model/service/impl/ArdModelServiceImpl.java b/ard-system/src/main/java/com/ard/data/model/service/impl/ArdModelServiceImpl.java
index 8b3a1a5..b000909 100644
--- a/ard-system/src/main/java/com/ard/data/model/service/impl/ArdModelServiceImpl.java
+++ b/ard-system/src/main/java/com/ard/data/model/service/impl/ArdModelServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.ard.common.constant.DeviceConstants;
 import com.ard.common.utils.uuid.IdUtils;
 import com.ard.data.model.domain.ArdModel;
 import com.ard.data.model.mapper.ArdModelMapper;
@@ -87,4 +88,24 @@
     public int deleteArdModelById(String id) {
         return ardModelMapper.deleteArdModelById(id);
     }
+
+    /**
+     * 校验模型管理信息名称是否唯一
+     *
+     * @param ardModel 模型管理
+     * @return 结果
+     */
+    @Override
+    public String checkArdModelNameUnique(ArdModel ardModel) {
+        String id = ardModel.getId();
+        String modelName = ardModel.getModelName();
+
+        ArdModel model = ardModelMapper.checkArdModelNameUnique(modelName);
+
+        if (model != null && (id == null || !id.equals(model.getId()))) {
+            return DeviceConstants.NOT_UNIQUE;
+        }
+        return DeviceConstants.UNIQUE;
+    }
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/tile/mapper/ArdTileMapper.java b/ard-system/src/main/java/com/ard/data/tile/mapper/ArdTileMapper.java
index 13edb58..656bfd6 100644
--- a/ard-system/src/main/java/com/ard/data/tile/mapper/ArdTileMapper.java
+++ b/ard-system/src/main/java/com/ard/data/tile/mapper/ArdTileMapper.java
@@ -1,6 +1,7 @@
 package com.ard.data.tile.mapper;
 
 import com.ard.data.tile.domain.ArdTile;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -59,4 +60,13 @@
      * @return 结果
      */
     public int deleteArdTileByIds(String[] ids);
+
+    /**
+     * 校验tile管理信息名称是否唯一
+     *
+     * @param tilesName 名称
+     * @return 结果
+     */
+    public ArdTile checkArdTileNameUnique(@Param("tilesName") String tilesName);
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/tile/service/IArdTileService.java b/ard-system/src/main/java/com/ard/data/tile/service/IArdTileService.java
index 1a7b6ce..b08ba82 100644
--- a/ard-system/src/main/java/com/ard/data/tile/service/IArdTileService.java
+++ b/ard-system/src/main/java/com/ard/data/tile/service/IArdTileService.java
@@ -59,4 +59,13 @@
      * @return 结果
      */
     public int deleteArdTileById(String id);
+
+    /**
+     * 校验tile管理信息名称是否唯一
+     *
+     * @param ardTile tile管理
+     * @return 结果
+     */
+    public String checkArdTileNameUnique(ArdTile ardTile);
+
 }
diff --git a/ard-system/src/main/java/com/ard/data/tile/service/impl/ArdTileServiceImpl.java b/ard-system/src/main/java/com/ard/data/tile/service/impl/ArdTileServiceImpl.java
index c068545..8014252 100644
--- a/ard-system/src/main/java/com/ard/data/tile/service/impl/ArdTileServiceImpl.java
+++ b/ard-system/src/main/java/com/ard/data/tile/service/impl/ArdTileServiceImpl.java
@@ -2,6 +2,7 @@
 
 import java.util.List;
 
+import com.ard.common.constant.DeviceConstants;
 import com.ard.common.utils.uuid.IdUtils;
 import com.ard.data.tile.domain.ArdTile;
 import com.ard.data.tile.mapper.ArdTileMapper;
@@ -87,4 +88,24 @@
     public int deleteArdTileById(String id) {
         return ardTileMapper.deleteArdTileById(id);
     }
+
+    /**
+     * 校验tile管理信息名称是否唯一
+     *
+     * @param ardTile tile管理
+     * @return 结果
+     */
+    @Override
+    public String checkArdTileNameUnique(ArdTile ardTile) {
+        String id = ardTile.getId();
+        String tilesName = ardTile.getTilesName();
+
+        ArdTile tile = ardTileMapper.checkArdTileNameUnique(tilesName);
+
+        if (tile != null && (id == null || !id.equals(tile.getId()))) {
+            return DeviceConstants.NOT_UNIQUE;
+        }
+        return DeviceConstants.UNIQUE;
+    }
+
 }
diff --git a/ard-system/src/main/resources/mapper/data/ArdMapMapper.xml b/ard-system/src/main/resources/mapper/data/ArdMapMapper.xml
index a5ecaac..11bc45f 100644
--- a/ard-system/src/main/resources/mapper/data/ArdMapMapper.xml
+++ b/ard-system/src/main/resources/mapper/data/ArdMapMapper.xml
@@ -85,4 +85,9 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="checkArdMapNameUnique" resultMap="ArdMapResult">
+        select * from ard_map where map_name = #{mapName} limit 1
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/ard-system/src/main/resources/mapper/data/ArdModelMapper.xml b/ard-system/src/main/resources/mapper/data/ArdModelMapper.xml
index a014f0e..8d84bee 100644
--- a/ard-system/src/main/resources/mapper/data/ArdModelMapper.xml
+++ b/ard-system/src/main/resources/mapper/data/ArdModelMapper.xml
@@ -87,4 +87,9 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="checkArdModelNameUnique" parameterType="String" resultMap="ArdModelResult">
+        select * from ard_model where model_name = #{modelName} limit 1
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/ard-system/src/main/resources/mapper/data/ArdNoFlyZoneMapper.xml b/ard-system/src/main/resources/mapper/data/ArdNoFlyZoneMapper.xml
index d410207..28ffec0 100644
--- a/ard-system/src/main/resources/mapper/data/ArdNoFlyZoneMapper.xml
+++ b/ard-system/src/main/resources/mapper/data/ArdNoFlyZoneMapper.xml
@@ -83,7 +83,9 @@
             #{id}
         </foreach>
     </delete>
+
     <select id="checkArdNoFlyZoneNameUnique" resultMap="ArdNoFlyZoneResult">
         select * from ard_no_fly_zone where name = #{name} limit 1
     </select>
+
 </mapper>
\ No newline at end of file
diff --git a/ard-system/src/main/resources/mapper/data/ArdTileMapper.xml b/ard-system/src/main/resources/mapper/data/ArdTileMapper.xml
index 2ed3409..d0fce45 100644
--- a/ard-system/src/main/resources/mapper/data/ArdTileMapper.xml
+++ b/ard-system/src/main/resources/mapper/data/ArdTileMapper.xml
@@ -104,4 +104,9 @@
             #{id}
         </foreach>
     </delete>
+
+    <select id="checkArdTileNameUnique" parameterType="String" resultMap="ArdTileResult">
+        select * from ard_tile where tiles_name = #{tilesName} limit 1
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3