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} + +