Forráskód Böngészése

fix:角色绑定和权限分配时可传空数据

wangzaijun 7 hónapja
szülő
commit
cd7044f6d9

+ 1 - 4
service-base/src/main/java/com/simuwang/base/pojo/dto/sys/RoleMenuAssignCmd.java

@@ -2,7 +2,6 @@ package com.simuwang.base.pojo.dto.sys;
 
 import com.simuwang.base.common.support.command.BaseCmd;
 import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -21,10 +20,8 @@ public class RoleMenuAssignCmd extends BaseCmd {
      */
     @NotNull(message = "待分配的角色不能为空")
     private Integer roleId;
-
     /**
-     * 分配的权限
+     * 分配的权限,当问空时清空分配的权限
      */
-    @Size(message = "分配的权限不能为空", min = 1)
     private List<Integer> menuIds;
 }

+ 1 - 4
service-base/src/main/java/com/simuwang/base/pojo/dto/sys/UserRoleBindCmd.java

@@ -2,7 +2,6 @@ package com.simuwang.base.pojo.dto.sys;
 
 import com.simuwang.base.common.support.command.BaseCmd;
 import jakarta.validation.constraints.NotNull;
-import jakarta.validation.constraints.Size;
 import lombok.Getter;
 import lombok.Setter;
 
@@ -22,9 +21,7 @@ public class UserRoleBindCmd extends BaseCmd {
     @NotNull(message = "用户id不能为空")
     private Integer userId;
     /**
-     * 绑定的角色
+     * 绑定的角色,当为null时清空绑定的角色
      */
-    @NotNull(message = "绑定的角色不能为空")
-    @Size(message = "绑定的角色不能为空", min = 1)
     private List<Integer> roleIds;
 }

+ 5 - 1
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysRoleServiceImpl.java

@@ -1,5 +1,6 @@
 package com.simuwang.manage.service.impl.system;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -110,7 +111,10 @@ public class SysRoleServiceImpl implements SysRoleService {
     public void assignPerms(RoleMenuAssignCmd command) {
         Integer roleId = command.getRoleId();
         int i = this.mapper.delRoleMenuByUserId(roleId);
-        int j = this.mapper.batchRoleMenus(roleId, command.getMenuIds());
+        int j = 0;
+        if (CollUtil.isNotEmpty(command.getMenuIds())) {
+            j = this.mapper.batchRoleMenus(roleId, command.getMenuIds());
+        }
         if (this.logger.isInfoEnabled()) {
             this.logger.info("给{}角色分配权限时删除了{}条记录,新增{}条记录", roleId, i, j);
         }

+ 5 - 1
service-manage/src/main/java/com/simuwang/manage/service/impl/system/SysUserServiceImpl.java

@@ -1,5 +1,6 @@
 package com.simuwang.manage.service.impl.system;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.crypto.asymmetric.KeyType;
 import cn.hutool.crypto.asymmetric.RSA;
@@ -142,7 +143,10 @@ public class SysUserServiceImpl implements SysUserService {
     public void bindRoles(UserRoleBindCmd command) {
         Integer userId = command.getUserId();
         int i = this.mapper.delUserRoleByUserId(userId);
-        int j = this.mapper.batchUserRoles(userId, command.getRoleIds());
+        int j = 0;
+        if (CollUtil.isNotEmpty(command.getRoleIds())) {
+            j = this.mapper.batchUserRoles(userId, command.getRoleIds());
+        }
         if (this.logger.isInfoEnabled()) {
             this.logger.info("绑定用户{} 角色时删除了{}条记录,新增{}条记录", userId, i, j);
         }