|
@@ -3,14 +3,17 @@ package com.qmth.teachcloud.common.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
|
+import com.qmth.teachcloud.common.entity.SysPrivilege;
|
|
import com.qmth.teachcloud.common.entity.SysRole;
|
|
import com.qmth.teachcloud.common.entity.SysRole;
|
|
import com.qmth.teachcloud.common.entity.SysRolePrivilege;
|
|
import com.qmth.teachcloud.common.entity.SysRolePrivilege;
|
|
import com.qmth.teachcloud.common.mapper.SysRolePrivilegeMapper;
|
|
import com.qmth.teachcloud.common.mapper.SysRolePrivilegeMapper;
|
|
|
|
+import com.qmth.teachcloud.common.service.SysPrivilegeService;
|
|
import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
|
|
import com.qmth.teachcloud.common.service.SysRolePrivilegeService;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+import java.util.*;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
/**
|
|
* <p>
|
|
* <p>
|
|
@@ -23,6 +26,9 @@ import java.util.List;
|
|
@Service
|
|
@Service
|
|
public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMapper, SysRolePrivilege> implements SysRolePrivilegeService {
|
|
public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMapper, SysRolePrivilege> implements SysRolePrivilegeService {
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ SysPrivilegeService sysPrivilegeService;
|
|
|
|
+
|
|
@Override
|
|
@Override
|
|
public void removeByRoleId(Long id) {
|
|
public void removeByRoleId(Long id) {
|
|
UpdateWrapper<SysRolePrivilege> updateWrapper = new UpdateWrapper<>();
|
|
UpdateWrapper<SysRolePrivilege> updateWrapper = new UpdateWrapper<>();
|
|
@@ -32,8 +38,13 @@ public class SysRolePrivilegeServiceImpl extends ServiceImpl<SysRolePrivilegeMap
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public void saveBatch(SysRole role) {
|
|
public void saveBatch(SysRole role) {
|
|
|
|
+ QueryWrapper<SysPrivilege> sysPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ sysPrivilegeQueryWrapper.lambda().in(SysPrivilege::getId, role.getPrivilegeIds());
|
|
|
|
+ List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.list(sysPrivilegeQueryWrapper);
|
|
|
|
+ Set<Long> relatedList = sysPrivilegeList.stream().filter(s -> Objects.nonNull(s.getRelated())).map(s -> s.getRelated()).collect(Collectors.toSet());
|
|
|
|
+ relatedList.addAll(Arrays.asList(role.getPrivilegeIds()));
|
|
List<SysRolePrivilege> list = new ArrayList<>();
|
|
List<SysRolePrivilege> list = new ArrayList<>();
|
|
- for (Long privilegeId : role.getPrivilegeIds()) {
|
|
|
|
|
|
+ for (Long privilegeId : relatedList) {
|
|
SysRolePrivilege sysRolePrivilege = new SysRolePrivilege();
|
|
SysRolePrivilege sysRolePrivilege = new SysRolePrivilege();
|
|
sysRolePrivilege.setRoleId(role.getId());
|
|
sysRolePrivilege.setRoleId(role.getId());
|
|
sysRolePrivilege.setPrivilegeId(privilegeId);
|
|
sysRolePrivilege.setPrivilegeId(privilegeId);
|