1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /*
- * 爱组搭 http://aizuda.com 低代码组件化开发平台
- * ------------------------------------------
- * 受知识产权保护,请勿删除版权申明
- */
- package com.aizuda.boot.system.service.impl;
- import com.aizuda.core.api.ApiAssert;
- import com.aizuda.service.service.BaseServiceImpl;
- import com.aizuda.boot.system.entity.SysUserRole;
- import com.aizuda.boot.system.entity.param.AssignRolesParam;
- import com.aizuda.boot.system.mapper.SysUserRoleMapper;
- import com.aizuda.boot.system.service.ISysUserRoleService;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import org.apache.commons.collections.CollectionUtils;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.stream.Collectors;
- /**
- * 系统用户角色 服务实现类
- *
- * @author 青苗
- * @since 2021-11-03
- */
- @Service
- public class SysUserRoleServiceImpl extends BaseServiceImpl<SysUserRoleMapper, SysUserRole> implements ISysUserRoleService {
- @Transactional(rollbackFor = Exception.class)
- @Override
- public boolean assignRoles(AssignRolesParam assignRolesParam) {
- // 删除历史
- List<Long> userIds = assignRolesParam.getUserIds();
- this.removeByUserIds(userIds);
- if (CollectionUtils.isEmpty(assignRolesParam.getRoleIds())) {
- // 无需分配角色
- return true;
- }
- // 批量新增
- List<SysUserRole> sysUserRoleList = new ArrayList<>();
- userIds.forEach(userId -> sysUserRoleList.addAll(assignRolesParam.getRoleIds().stream()
- .map(roleId -> {
- SysUserRole sysUserRole = new SysUserRole();
- sysUserRole.setUserId(userId);
- sysUserRole.setRoleId(roleId);
- return sysUserRole;
- }).collect(Collectors.toList())));
- return super.saveBatch(sysUserRoleList);
- }
- private boolean removeByUserIds(List<Long> userIds) {
- return super.remove(Wrappers.<SysUserRole>lambdaQuery().in(SysUserRole::getUserId, userIds));
- }
- @Override
- public boolean updateById(SysUserRole sysUserRole) {
- ApiAssert.isEmpty(sysUserRole.getId(), "主键不存在无法更新");
- return super.updateById(sysUserRole);
- }
- @Override
- public List<Long> listRoleIdsByUserId(Long userId) {
- List<SysUserRole> sysUserRoleList = super.list(Wrappers.<SysUserRole>lambdaQuery()
- .select(SysUserRole::getRoleId).eq(SysUserRole::getUserId, userId));
- return CollectionUtils.isEmpty(sysUserRoleList) ? null : sysUserRoleList.stream().map(t -> t.getRoleId())
- .collect(Collectors.toList());
- }
- @Override
- public boolean existRelByRoleId(Long roleId) {
- return lambdaQuery().eq(SysUserRole::getRoleId, roleId).count() > 0;
- }
- }
|