|
@@ -2,8 +2,11 @@ package com.abi.qms.platform.service.impl;
|
|
|
|
|
|
import com.abi.qms.platform.dao.entity.UserMappingRoleResource;
|
|
|
import com.abi.qms.platform.dao.entity.UserResource;
|
|
|
+import com.abi.qms.platform.dao.entity.UserRole;
|
|
|
import com.abi.qms.platform.dao.mapper.UserMappingRoleResourceMapper;
|
|
|
import com.abi.qms.platform.dao.mapper.UserResourceMapper;
|
|
|
+import com.abi.qms.platform.dao.mapper.UserRoleMapper;
|
|
|
+import com.abi.qms.platform.service.RoleManagerService;
|
|
|
import com.abi.qms.platform.service.UserResourceService;
|
|
|
import com.abi.task.common.utils.ICollectionUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
@@ -30,6 +33,15 @@ public class UserResourceServiceImpl extends ServiceImpl<UserMappingRoleResource
|
|
|
@Autowired
|
|
|
private UserMappingRoleResourceMapper userMappingRoleResourceMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private UserRoleMapper userRoleMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private UserResourceService userResourceService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private RoleManagerService roleManagerService;
|
|
|
+
|
|
|
/**
|
|
|
* 通过resourceCode列表查询resource对象列表
|
|
|
* @param codeList
|
|
@@ -67,24 +79,24 @@ public class UserResourceServiceImpl extends ServiceImpl<UserMappingRoleResource
|
|
|
*/
|
|
|
@Override
|
|
|
public void saveUserResourceMapping(String roleCode, List<String> resourceCodeList) {
|
|
|
+ //查询角色
|
|
|
+ UserRole role = roleManagerService.getRoleByCode(roleCode);
|
|
|
|
|
|
//1-查询用户现有资源列表
|
|
|
- List<String> curResoutceCodeList = listResourceByRoleCode(roleCode);
|
|
|
+ List<String> curResourceCodeList = listResourceByRoleCode(roleCode);
|
|
|
|
|
|
//2-比较用户现有资源与入参传入的目标资源,整理出-->需删除资源 and 需增加资源
|
|
|
- List<String> needDeleteResourceList = ICollectionUtil.differenceList(curResoutceCodeList, resourceCodeList);
|
|
|
- List<String> needAddResourceList = ICollectionUtil.differenceList(resourceCodeList, curResoutceCodeList);
|
|
|
+ List<String> needDeleteResourceList = ICollectionUtil.differenceList(curResourceCodeList, resourceCodeList);
|
|
|
+ List<String> needAddResourceList = ICollectionUtil.differenceList(resourceCodeList, curResourceCodeList);
|
|
|
|
|
|
//3-批量删除需删除资源
|
|
|
if(CollectionUtils.isNotEmpty(needDeleteResourceList)){
|
|
|
- UpdateWrapper<UserMappingRoleResource> userMappingRoleResourceUw = new UpdateWrapper<>();
|
|
|
- userMappingRoleResourceUw
|
|
|
- //where
|
|
|
- .eq("role_code",roleCode)
|
|
|
- .in("resource_code",needDeleteResourceList)
|
|
|
- //set
|
|
|
- .set("is_delete",1);
|
|
|
- userMappingRoleResourceMapper.update(null,userMappingRoleResourceUw);
|
|
|
+ //查询该角色以及其下的角色
|
|
|
+ List<UserRole> userRoleList = userRoleMapper.listRoleTree(role);
|
|
|
+ //循环删除子角色的这些resource
|
|
|
+ for(UserRole tempRole:userRoleList){
|
|
|
+ userResourceService.deleteResourceMapping(tempRole.getRoleCode(),needDeleteResourceList);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//4-批量添加需增加资源
|
|
@@ -105,6 +117,18 @@ public class UserResourceServiceImpl extends ServiceImpl<UserMappingRoleResource
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void deleteResourceMapping(String roleCode, List<String> needDeleteResourceList) {
|
|
|
+ UpdateWrapper<UserMappingRoleResource> userMappingRoleResourceUw = new UpdateWrapper<>();
|
|
|
+ userMappingRoleResourceUw
|
|
|
+ //where
|
|
|
+ .eq("role_code",roleCode)
|
|
|
+ .in("resource_code",needDeleteResourceList)
|
|
|
+ //set
|
|
|
+ .set("is_delete",1);
|
|
|
+ userMappingRoleResourceMapper.update(null,userMappingRoleResourceUw);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 查询角色名下所有资源
|
|
|
* @param roleCode
|