diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java index 31611760..9eedbb3b 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/controller/SysUserController.java @@ -11,6 +11,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.exception.JeroBootException; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.shiro.SecurityUtils; @@ -1307,4 +1308,33 @@ public class SysUserController { return ls; } + @ApiOperation(value = "用户管理-角色配置") + @PostMapping(value = "/setRole") + public Result setRole(@RequestBody JSONObject jsonObject) { + try { + String ids = jsonObject.getString("ids"); + List idList = Arrays.asList(ids.split(",")); + for (String id : idList) { + SysUser sysUser = sysUserService.getById(id); + baseCommonService.addLog("编辑用户角色,id: " + id, CommonConstant.LOG_TYPE_2, 2); + if (sysUser == null) { + return Result.error("未找到对应实体"); + } else { + SysUser user = new SysUser(); + user.setId(id); + user.setUpdateTime(new Date()); + + String roles = jsonObject.getString("selectedroles"); + sysUserService.addRoleToUser(user, roles); + return Result.OK("修改成功!"); + } + } + + } catch (Exception e) { + log.error(e.getMessage(), e); + return Result.error("操作失败"); + } + return Result.OK("修改成功!"); + } + } diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java index 93ad5c70..60726f91 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/ISysUserService.java @@ -86,6 +86,13 @@ public interface ISysUserService extends IService { */ public void editUserWithRole(SysUser user,String roles); + /** + * 更新用户的全部角色 + * @param user + * @param roles + */ + public void addRoleToUser(SysUser user, String roles); + /** * 获取用户的授权角色 * @param username diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java index 3d4028cc..bd3f31e3 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/system/service/impl/SysUserServiceImpl.java @@ -152,6 +152,20 @@ public class SysUserServiceImpl extends ServiceImpl impl } } + @Override + @CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, allEntries=true) + @Transactional + public void addRoleToUser(SysUser user, String roles) { + //先删后加 + sysUserRoleMapper.delete(new QueryWrapper().lambda().eq(SysUserRole::getUserId, user.getId())); + if(oConvertUtils.isNotEmpty(roles)) { + String[] arr = roles.split(","); + for (String roleId : arr) { + SysUserRole userRole = new SysUserRole(user.getId(), roleId); + sysUserRoleMapper.insert(userRole); + } + } + } @Override public List getRole(String username) { diff --git a/jero-web/src/views/system/UserList.vue b/jero-web/src/views/system/UserList.vue index 885ab92a..1762d0ea 100644 --- a/jero-web/src/views/system/UserList.vue +++ b/jero-web/src/views/system/UserList.vue @@ -86,6 +86,7 @@ 导入 回收站 + 角色配置 @@ -184,11 +185,16 @@ + + + + + + + \ No newline at end of file