|
|
|
@ -4,6 +4,8 @@ import com.epmet.commons.tools.exception.EpmetErrorCode; |
|
|
|
import com.epmet.commons.tools.exception.RenException; |
|
|
|
import com.epmet.dao.*; |
|
|
|
import com.epmet.dto.result.*; |
|
|
|
import com.epmet.entity.OperationScopeDefaultEntity; |
|
|
|
import com.epmet.entity.RoleOperationDefaultEntity; |
|
|
|
import com.epmet.entity.RoleOperationEntity; |
|
|
|
import com.epmet.entity.RoleScopeEntity; |
|
|
|
import com.epmet.redis.RoleOpeScopeRedis; |
|
|
|
@ -30,9 +32,15 @@ public class AccessConfigServiceImpl implements AccessConfigService { |
|
|
|
@Autowired |
|
|
|
private RoleOperationDao roleOperationDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private RoleOperationDefaultDao roleOperationDefaultDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private RoleScopeDao roleScopeDao; |
|
|
|
|
|
|
|
@Autowired |
|
|
|
private OperationScopeDefaultDao operationScopeDefaultDao; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<AccessConfigOpesResultDTO> listOpesByRole(String roleId) { |
|
|
|
return roleOperationDao.listOpesForAccessConfig(roleId); |
|
|
|
@ -118,4 +126,74 @@ public class AccessConfigServiceImpl implements AccessConfigService { |
|
|
|
// 清空redis缓存
|
|
|
|
roleOpeScopeRedis.delRoleAllOpeScopes(roleId); |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<RoleOperationDefaultResultDTO> listRoleDefaultOpsByRoleKey(String roleKey) { |
|
|
|
return roleOperationDefaultDao.listRoleDefaultOpsByRoleKey(roleKey); |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* |
|
|
|
* @param roleKey |
|
|
|
* @param operationKeys |
|
|
|
*/ |
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
@Override |
|
|
|
public void saveRoleDefaultOperations(String roleKey, List<String> operationKeys) { |
|
|
|
|
|
|
|
List<RoleOperationDefaultResultDTO> opesExists = roleOperationDefaultDao.listByRoleKey(roleKey); |
|
|
|
Set<String> opeKeysExists = opesExists.stream().map(ope -> ope.getOperationKey()).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
// 过滤出删掉的
|
|
|
|
Set<String> deletedOpes = opeKeysExists.stream().filter(oke -> !operationKeys.contains(oke)).collect(Collectors.toSet()); |
|
|
|
// 过滤出新增的
|
|
|
|
Set<String> newOpes = operationKeys.stream().filter(okn -> !opeKeysExists.contains(okn)).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
for (String deletedOpe : deletedOpes) { |
|
|
|
roleOperationDefaultDao.deleteByRoleKeyAndOpeKey(roleKey, deletedOpe); |
|
|
|
} |
|
|
|
|
|
|
|
for (String newOpe : newOpes) { |
|
|
|
RoleOperationDefaultEntity entity = new RoleOperationDefaultEntity(); |
|
|
|
entity.setRoleKey(roleKey); |
|
|
|
entity.setOperationKey(newOpe); |
|
|
|
roleOperationDefaultDao.insert(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
* 查询默认的 |
|
|
|
* @param roleKey |
|
|
|
* @param operationKey |
|
|
|
* @return |
|
|
|
*/ |
|
|
|
@Override |
|
|
|
public List<AccessConfigOpeDefaultScopesResultDTO> listOpeDefaultScopes4Role(String roleKey, String operationKey) { |
|
|
|
return operationScopeDefaultDao.listOpeDefaultScopes4Config(roleKey, operationKey); |
|
|
|
} |
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class) |
|
|
|
@Override |
|
|
|
public void saveOpeDefaultScopes(String roleKey, String operationKey, List<String> submitScopeKeys) { |
|
|
|
List<OperationScopeDefaultEntity > exists = operationScopeDefaultDao.listOpeDefaultScopesByRoleAndOpeKey(roleKey, operationKey); |
|
|
|
|
|
|
|
Set<String> existsScopeKeys = exists.stream().map(ope -> ope.getScopeKey()).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
// 删掉的
|
|
|
|
Set<String> deleteds = existsScopeKeys.stream().filter(esk -> !submitScopeKeys.contains(esk)).collect(Collectors.toSet()); |
|
|
|
// 新增的
|
|
|
|
Set<String> addeds = submitScopeKeys.stream().filter(ssk -> !existsScopeKeys.contains(ssk)).collect(Collectors.toSet()); |
|
|
|
|
|
|
|
for (String scopeKey : deleteds) { |
|
|
|
operationScopeDefaultDao.delete(roleKey, operationKey, scopeKey); |
|
|
|
} |
|
|
|
|
|
|
|
for (String scopeKey : addeds) { |
|
|
|
OperationScopeDefaultEntity entity = new OperationScopeDefaultEntity(); |
|
|
|
entity.setOperationKey(operationKey); |
|
|
|
entity.setRoleKey(roleKey); |
|
|
|
entity.setScopeKey(scopeKey); |
|
|
|
operationScopeDefaultDao.insert(entity); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|