Bläddra i källkod

update 客户端管理新增客户端key唯一校验逻辑

疯狂的狮子Li 8 månader sedan
förälder
incheckning
7e54246af2

+ 6 - 0
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<Void> 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<Void> edit(@Validated(EditGroup.class) @RequestBody SysClientBo bo) {
+        if (!sysClientService.checkClickKeyUnique(bo)) {
+            return R.fail("修改客户端'" + bo.getClientKey() + "'失败,客户端key已存在");
+        }
         return toAjax(sysClientService.updateByBo(bo));
     }
 

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysClientService.java

@@ -55,4 +55,12 @@ public interface ISysClientService {
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
+    /**
+     * 校验客户端key是否唯一
+     *
+     * @param client 客户端信息
+     * @return 结果
+     */
+    boolean checkClickKeyUnique(SysClientBo client);
+
 }

+ 16 - 0
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<Long> ids, Boolean isValid) {
         return baseMapper.deleteByIds(ids) > 0;
     }
+
+    /**
+     * 校验客户端key是否唯一
+     *
+     * @param client 客户端信息
+     * @return 结果
+     */
+    @Override
+    public boolean checkClickKeyUnique(SysClientBo client) {
+        boolean exist = baseMapper.exists(new LambdaQueryWrapper<SysClient>()
+            .eq(SysClient::getClientKey, client.getClientKey())
+            .ne(ObjectUtil.isNotNull(client.getId()), SysClient::getId, client.getId()));
+        return !exist;
+    }
+
 }