/**
|
* 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<SysRoleUserDao, SysRoleUser> {
|
|
/**
|
* 用户角色列表
|
*
|
* @param userId
|
* 用户ID
|
*/
|
public List<RoleDto> getUserRoles(Long userId) {
|
return baseDao.getUserRoles(userId);
|
}
|
|
/**
|
* 角色用户列表
|
*
|
* @param roleId
|
* 角色ID
|
*/
|
public List<SysUser> getRoleUsers(Long roleID) {
|
return baseDao.getRoleUsers(roleID);
|
}
|
/**
|
* 角色用户列表
|
*
|
* @param roleId
|
* 角色ID
|
*/
|
public List<SysRoleUser> getSingleRoleUsers(Long roleID,Long userID) {
|
return baseDao.getSingleRoleUsers(roleID,userID);
|
}
|
|
/**
|
* 保存用户角色
|
*
|
* @param userId
|
* @param roleIdList
|
*/
|
public void saveOrUpdate(Long userId, List<Long> roleIdList) {
|
List<SysRoleUser> 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<SysRoleUser>().lambda().in(SysRoleUser::getRoleId, roleIds));
|
|
CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存
|
}
|
|
/**
|
* 根据用户id,删除角色用户关系
|
*
|
* @param userIds
|
* 用户ids
|
*/
|
public void deleteByUserIds(Long[] userIds) {
|
baseDao.delete(new QueryWrapper<SysRoleUser>().lambda().in(SysRoleUser::getUserId, userIds));
|
|
CacheUtils.removeAll(Constant.Cache.TOKEN);// 清理用户权限缓存
|
}
|
|
public void addRoleUser(Long roleId,List<Long> userIds){
|
List<SysUser> list = baseDao.getRoleUsers(roleId);
|
List<SysRoleUser> 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);// 清理用户权限缓存
|
}
|
}
|