/** * Copyright (c) 2018 人人开源 All rights reserved. * * https://www.renren.io * * 版权所有,侵权必究! */ package com.zt.modules.sys.service; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zt.common.constant.CacheKey; import com.zt.common.constant.Constant; import com.zt.common.service.BaseService; import com.zt.common.utils.CacheUtils; import com.zt.core.sys.model.SysUser; import com.zt.modules.sys.dao.SysRoleUserDao; import com.zt.modules.sys.dto.RoleDto; import com.zt.modules.sys.dto.UserDto; import com.zt.modules.sys.model.SysRoleUser; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; /** * 角色用户关系 * * @author hehz * @since 1.0.0 */ @Service public class SysRoleUserService extends BaseService { /** * 用户角色列表 * * @param userId * 用户ID */ public List getUserRoles(Long userId) { return baseDao.getUserRoles(userId); } /** * 角色用户列表 * * @param roleId * 角色ID */ public List getRoleUsers(Long roleID) { return baseDao.getRoleUsers(roleID); } /** * 角色用户列表 * * @param roleId * 角色ID */ public List getSingleRoleUsers(Long roleID,Long userID) { return baseDao.getSingleRoleUsers(roleID,userID); } /** * 保存用户角色 * * @param userId * @param roleIdList */ public void saveOrUpdate(Long userId, List roleIdList) { List list = roleIdList.stream().map(roleId -> new SysRoleUser(roleId, userId)) .collect(Collectors.toList()); this.saveRelatedDatas("user_id", userId, "role_id", list); CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存 } /** * 根据角色ids,删除角色用户关系 * * @param roleIds * 角色ids */ public void deleteByRoleIds(Long[] roleIds) { baseDao.delete(new QueryWrapper().lambda().in(SysRoleUser::getRoleId, roleIds)); CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存 } /** * 根据用户id,删除角色用户关系 * * @param userIds * 用户ids */ public void deleteByUserIds(Long[] userIds) { baseDao.delete(new QueryWrapper().lambda().in(SysRoleUser::getUserId, userIds)); CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存 } public void addRoleUser(Long roleId,List userIds){ List list = baseDao.getRoleUsers(roleId); List sysRoleUsers = userIds.stream().map(userId -> new SysRoleUser(roleId, userId)).collect(Collectors.toList()); for (SysRoleUser data : sysRoleUsers) { if(list.stream().filter(p-> p.getId().equals(data.getUserId())).count()==0){ data.setDelete(false); baseDao.insert(data); } else { data.setDelete(false); baseDao.updateById(data); } } CacheUtils.remove(Constant.Cache.TOKEN, CacheKey.TOKEN_PERMISSIONS);// 清理用户权限缓存 } }