diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java index 785a51b52..f6bb52f0f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysClientController.java @@ -76,6 +76,9 @@ public class SysClientController extends BaseController { @RepeatSubmit() @PostMapping() public R add(@Validated(AddGroup.class) @RequestBody SysClientBo bo) { + if (!sysClientService.checkClickKeyUnique(bo)) { + return R.fail("新增客户端'" + bo.getClientKey() + "'失败,客户端key已存在"); + } return toAjax(sysClientService.insertByBo(bo)); } @@ -87,6 +90,9 @@ public class SysClientController extends BaseController { @RepeatSubmit() @PutMapping() public R edit(@Validated(EditGroup.class) @RequestBody SysClientBo bo) { + if (!sysClientService.checkClickKeyUnique(bo)) { + return R.fail("修改客户端'" + bo.getClientKey() + "'失败,客户端key已存在"); + } return toAjax(sysClientService.updateByBo(bo)); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java index 7cb885613..1cf200388 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java @@ -55,4 +55,12 @@ public interface ISysClientService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + /** + * 校验客户端key是否唯一 + * + * @param client 客户端信息 + * @return 结果 + */ + boolean checkClickKeyUnique(SysClientBo client); + } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java index 86b7e0844..3d70583b2 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysClientServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.system.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.crypto.SecureUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -135,4 +136,19 @@ public class SysClientServiceImpl implements ISysClientService { public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { return baseMapper.deleteByIds(ids) > 0; } + + /** + * 校验客户端key是否唯一 + * + * @param client 客户端信息 + * @return 结果 + */ + @Override + public boolean checkClickKeyUnique(SysClientBo client) { + boolean exist = baseMapper.exists(new LambdaQueryWrapper() + .eq(SysClient::getClientKey, client.getClientKey()) + .ne(ObjectUtil.isNotNull(client.getId()), SysClient::getId, client.getId())); + return !exist; + } + }