diff --git a/src/main/java/com/ruoyi/device/domain/api/IGroupDomain.java b/src/main/java/com/ruoyi/device/domain/api/IGroupDomain.java
index 54f8327..de53017 100644
--- a/src/main/java/com/ruoyi/device/domain/api/IGroupDomain.java
+++ b/src/main/java/com/ruoyi/device/domain/api/IGroupDomain.java
@@ -58,4 +58,12 @@ public interface IGroupDomain
* @return 结果
*/
int deleteGroupByGroupIds(Long[] groupIds);
+
+ /**
+ * 根据分组名称查询分组
+ *
+ * @param groupName 分组名称
+ * @return 分组
+ */
+ Group selectGroupByGroupName(String groupName);
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/device/domain/impl/GroupDomainImpl.java b/src/main/java/com/ruoyi/device/domain/impl/GroupDomainImpl.java
index 8f516a3..2d3a8a0 100644
--- a/src/main/java/com/ruoyi/device/domain/impl/GroupDomainImpl.java
+++ b/src/main/java/com/ruoyi/device/domain/impl/GroupDomainImpl.java
@@ -68,4 +68,11 @@ public class GroupDomainImpl implements IGroupDomain
{
return groupMapper.deleteGroupByGroupIds(groupIds);
}
+
+ @Override
+ public Group selectGroupByGroupName(String groupName)
+ {
+ GroupEntity entity = groupMapper.selectGroupByGroupName(groupName);
+ return GroupConvert.from(entity);
+ }
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/device/mapper/GroupMapper.java b/src/main/java/com/ruoyi/device/mapper/GroupMapper.java
index a9a6f41..df4402c 100644
--- a/src/main/java/com/ruoyi/device/mapper/GroupMapper.java
+++ b/src/main/java/com/ruoyi/device/mapper/GroupMapper.java
@@ -58,4 +58,12 @@ public interface GroupMapper
* @return 影响行数
*/
int deleteGroupByGroupIds(Long[] groupIds);
+
+ /**
+ * 根据分组名称查询分组
+ *
+ * @param groupName 分组名称
+ * @return 分组信息
+ */
+ GroupEntity selectGroupByGroupName(String groupName);
}
\ No newline at end of file
diff --git a/src/main/java/com/ruoyi/device/service/impl/GroupServiceImpl.java b/src/main/java/com/ruoyi/device/service/impl/GroupServiceImpl.java
index fb55920..867912f 100644
--- a/src/main/java/com/ruoyi/device/service/impl/GroupServiceImpl.java
+++ b/src/main/java/com/ruoyi/device/service/impl/GroupServiceImpl.java
@@ -63,6 +63,13 @@ public class GroupServiceImpl implements IGroupService
@Override
public int updateGroup(GroupDTO groupDTO)
{
+ // 校验分组名称是否已被其他分组使用
+ Group existingGroup = groupDomain.selectGroupByGroupName(groupDTO.getGroupName());
+ if (existingGroup != null && !existingGroup.getGroupId().equals(groupDTO.getGroupId()))
+ {
+ throw new RuntimeException("分组名称已存在: " + groupDTO.getGroupName());
+ }
+
Group model = GroupDTOConvert.to(groupDTO);
return groupDomain.updateGroup(model);
}
@@ -82,6 +89,13 @@ public class GroupServiceImpl implements IGroupService
@Override
public Long createGroup(GroupDTO groupDTO)
{
+ // 校验分组名称是否已存在
+ Group existingGroup = groupDomain.selectGroupByGroupName(groupDTO.getGroupName());
+ if (existingGroup != null)
+ {
+ throw new RuntimeException("分组名称已存在: " + groupDTO.getGroupName());
+ }
+
Group model = GroupDTOConvert.to(groupDTO);
groupDomain.insertGroup(model);
return model.getGroupId();
diff --git a/src/main/resources/mapper/device/GroupMapper.xml b/src/main/resources/mapper/device/GroupMapper.xml
index f118ade..40406d3 100644
--- a/src/main/resources/mapper/device/GroupMapper.xml
+++ b/src/main/resources/mapper/device/GroupMapper.xml
@@ -25,6 +25,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where group_id = #{groupId}
+
+