【添加】角色批量配置功能

This commit is contained in:
zer0Black
2022-12-04 19:48:10 +08:00
parent fc00838b07
commit 1893d2a956
5 changed files with 234 additions and 1 deletions
@@ -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<SysUser> setRole(@RequestBody JSONObject jsonObject) {
try {
String ids = jsonObject.getString("ids");
List<String> 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("修改成功!");
}
}
@@ -86,6 +86,13 @@ public interface ISysUserService extends IService<SysUser> {
*/
public void editUserWithRole(SysUser user,String roles);
/**
* 更新用户的全部角色
* @param user
* @param roles
*/
public void addRoleToUser(SysUser user, String roles);
/**
* 获取用户的授权角色
* @param username
@@ -152,6 +152,20 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
}
}
@Override
@CacheEvict(value= {CacheConstant.SYS_USERS_CACHE}, allEntries=true)
@Transactional
public void addRoleToUser(SysUser user, String roles) {
//先删后加
sysUserRoleMapper.delete(new QueryWrapper<SysUserRole>().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<String> getRole(String username) {