|
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
import com.qmth.boot.api.constant.ApiConstant;
|
|
import com.qmth.distributed.print.business.bean.params.TSchoolPrivilegeParam;
|
|
import com.qmth.distributed.print.business.bean.params.TSchoolPrivilegeParam;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
import com.qmth.teachcloud.common.entity.*;
|
|
-import com.qmth.teachcloud.common.enums.PrivilegeEnum;
|
|
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.service.*;
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
import com.qmth.teachcloud.common.util.Result;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
import com.qmth.teachcloud.common.util.ResultUtil;
|
|
@@ -14,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
|
|
import io.swagger.annotations.ApiResponse;
|
|
import io.swagger.annotations.ApiResponse;
|
|
import io.swagger.annotations.ApiResponses;
|
|
import io.swagger.annotations.ApiResponses;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
+import org.springframework.util.CollectionUtils;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.validation.BindingResult;
|
|
import org.springframework.web.bind.annotation.*;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
@@ -76,33 +76,31 @@ public class MenuCustomController {
|
|
QueryWrapper<TSchoolPrivilege> tSchoolPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
QueryWrapper<TSchoolPrivilege> tSchoolPrivilegeQueryWrapper = new QueryWrapper<>();
|
|
tSchoolPrivilegeQueryWrapper.lambda().eq(TSchoolPrivilege::getSchoolId, tSchoolPrivilegeParam.getSchoolId());
|
|
tSchoolPrivilegeQueryWrapper.lambda().eq(TSchoolPrivilege::getSchoolId, tSchoolPrivilegeParam.getSchoolId());
|
|
List<TSchoolPrivilege> tSchoolPrivileges = tSchoolPrivilegeService.list(tSchoolPrivilegeQueryWrapper);
|
|
List<TSchoolPrivilege> tSchoolPrivileges = tSchoolPrivilegeService.list(tSchoolPrivilegeQueryWrapper);
|
|
- if (Objects.nonNull(tSchoolPrivileges) && tSchoolPrivileges.size() > 0) {//编辑
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(tSchoolPrivileges)) {//编辑
|
|
Set<Long> changePrivilegeSetIds = tSchoolPrivileges.stream().filter(s -> !Arrays.asList(tSchoolPrivilegeParam.getPrivilegeIds()).contains(s.getPrivilegeId()))
|
|
Set<Long> changePrivilegeSetIds = tSchoolPrivileges.stream().filter(s -> !Arrays.asList(tSchoolPrivilegeParam.getPrivilegeIds()).contains(s.getPrivilegeId()))
|
|
.collect(Collectors.toList())
|
|
.collect(Collectors.toList())
|
|
.stream().map(s -> s.getPrivilegeId())
|
|
.stream().map(s -> s.getPrivilegeId())
|
|
.collect(Collectors.toSet());
|
|
.collect(Collectors.toSet());
|
|
//数据发生改变
|
|
//数据发生改变
|
|
- if (changePrivilegeSetIds.size() > 0) {
|
|
|
|
- List<SysPrivilege> sysPrivilegeList = sysPrivilegeService.listByIds(changePrivilegeSetIds);
|
|
|
|
- sysPrivilegeList = sysPrivilegeList.stream().filter(s -> !Objects.equals(s.getType(), PrivilegeEnum.MENU)).collect(Collectors.toList());
|
|
|
|
- changePrivilegeSetIds = sysPrivilegeList.stream().map(s -> s.getId()).collect(Collectors.toSet());
|
|
|
|
-
|
|
|
|
- if (changePrivilegeSetIds.size() > 0) {
|
|
|
|
- //查询该菜单下所有角色,删除该角色所发生改变的菜单数据
|
|
|
|
- QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
|
|
|
|
- sysRoleQueryWrapper.lambda().eq(SysRole::getSchoolId, tSchoolPrivilegeParam.getSchoolId());
|
|
|
|
- List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
|
|
|
|
-
|
|
|
|
- if (Objects.nonNull(sysRoleList) && sysRoleList.size() > 0) {
|
|
|
|
- QueryWrapper<SysRolePrivilege> sysRolePrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
- sysRolePrivilegeQueryWrapper.lambda()
|
|
|
|
- .in(SysRolePrivilege::getRoleId, sysRoleList.stream().map(s -> s.getId()).collect(Collectors.toList()))
|
|
|
|
- .in(SysRolePrivilege::getPrivilegeId, changePrivilegeSetIds);
|
|
|
|
- List<SysRolePrivilege> sysRolePrivilegeList = sysRolePrivilegeService.list(sysRolePrivilegeQueryWrapper);
|
|
|
|
- //仅删除绑定了该权限的角色用户缓存
|
|
|
|
- roleSetIds = sysRolePrivilegeList.stream().map(s -> s.getRoleId()).collect(Collectors.toSet());
|
|
|
|
- sysRolePrivilegeService.remove(sysRolePrivilegeQueryWrapper);
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(changePrivilegeSetIds)) {
|
|
|
|
+ //查询该菜单下所有角色,删除该角色所发生改变的菜单数据
|
|
|
|
+ QueryWrapper<SysRole> sysRoleQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ sysRoleQueryWrapper.lambda().eq(SysRole::getSchoolId, tSchoolPrivilegeParam.getSchoolId());
|
|
|
|
+ List<SysRole> sysRoleList = sysRoleService.list(sysRoleQueryWrapper);
|
|
|
|
+
|
|
|
|
+ if (!CollectionUtils.isEmpty(sysRoleList)) {
|
|
|
|
+ QueryWrapper<SysRolePrivilege> sysRolePrivilegeQueryWrapper = new QueryWrapper<>();
|
|
|
|
+ sysRolePrivilegeQueryWrapper.lambda()
|
|
|
|
+ .in(SysRolePrivilege::getRoleId, sysRoleList.stream().map(s -> s.getId()).collect(Collectors.toList()));
|
|
|
|
+ if (!CollectionUtils.isEmpty(changePrivilegeSetIds)) {
|
|
|
|
+ sysRolePrivilegeQueryWrapper.lambda().in(SysRolePrivilege::getPrivilegeId, changePrivilegeSetIds);
|
|
|
|
+ } else {
|
|
|
|
+ sysRolePrivilegeQueryWrapper.lambda().in(SysRolePrivilege::getPrivilegeId, tSchoolPrivileges.stream().map(s -> s.getPrivilegeId()).collect(Collectors.toList()));
|
|
}
|
|
}
|
|
|
|
+ List<SysRolePrivilege> sysRolePrivilegeList = sysRolePrivilegeService.list(sysRolePrivilegeQueryWrapper);
|
|
|
|
+ //仅删除绑定了该权限的角色用户缓存
|
|
|
|
+ roleSetIds = sysRolePrivilegeList.stream().map(s -> s.getRoleId()).collect(Collectors.toSet());
|
|
|
|
+ sysRolePrivilegeService.remove(sysRolePrivilegeQueryWrapper);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
tSchoolPrivilegeService.remove(tSchoolPrivilegeQueryWrapper);
|
|
tSchoolPrivilegeService.remove(tSchoolPrivilegeQueryWrapper);
|
|
@@ -117,7 +115,7 @@ public class MenuCustomController {
|
|
}
|
|
}
|
|
|
|
|
|
//清缓存
|
|
//清缓存
|
|
- if (Objects.nonNull(roleSetIds) && roleSetIds.size() > 0) {
|
|
|
|
|
|
+ if (!CollectionUtils.isEmpty(roleSetIds)) {
|
|
for (Long l : roleSetIds) {
|
|
for (Long l : roleSetIds) {
|
|
commonCacheService.updateRoleCache(l);
|
|
commonCacheService.updateRoleCache(l);
|
|
commonCacheService.updateRolePrivilegeCache(l);
|
|
commonCacheService.updateRolePrivilegeCache(l);
|