From ab6ecaf06de39a917905a17beeaba1894b9e3412 Mon Sep 17 00:00:00 2001 From: wxz Date: Fri, 19 Jun 2020 12:48:11 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=B0=83=E6=95=B4=EF=BC=9A=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E5=AE=A2=E6=88=B7=E6=93=8D=E4=BD=9C=EF=BC=8C"?= =?UTF-8?q?=E4=B8=BA=E5=AE=A2=E6=88=B7=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9D=83=E9=99=90=E8=8C=83=E5=9B=B4"=E5=8A=A8?= =?UTF-8?q?=E4=BD=9C=E8=B0=83=E6=95=B4=EF=BC=8C=E6=93=8D=E4=BD=9C=E7=9A=84?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E8=8C=83=E5=9B=B4=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E7=BB=9F=E4=B8=80=EF=BC=8C=E5=90=8C=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=E6=93=8D=E4=BD=9C=E5=9C=A8=E4=B8=8D=E5=90=8C=E7=9A=84=E8=A7=92?= =?UTF-8?q?=E8=89=B2=E4=B8=8B=E5=B0=86=E6=9C=89=E4=B8=8D=E5=90=8C=E7=9A=84?= =?UTF-8?q?=E8=8C=83=E5=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../OperationScopeDefaultResultDTO.java | 20 +++++++++++ .../epmet/dao/OperationScopeDefaultDao.java | 9 +++++ .../entity/OperationScopeDefaultEntity.java | 2 ++ .../impl/RoleOperationServiceImpl.java | 33 ++++++++++++++++--- .../mapper/OperationScopeDefaultDao.xml | 17 ++++++++++ 5 files changed, 76 insertions(+), 5 deletions(-) create mode 100644 epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/OperationScopeDefaultResultDTO.java diff --git a/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/OperationScopeDefaultResultDTO.java b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/OperationScopeDefaultResultDTO.java new file mode 100644 index 0000000000..4c1f593712 --- /dev/null +++ b/epmet-module/gov-access/gov-access-client/src/main/java/com/epmet/dto/result/OperationScopeDefaultResultDTO.java @@ -0,0 +1,20 @@ +package com.epmet.dto.result; + +import lombok.Data; + +@Data +public class OperationScopeDefaultResultDTO { + + private String roleKey; + + /** + * 操作key + */ + private String operationKey; + + /** + * 范围key + */ + private String scopeKey; + +} diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/OperationScopeDefaultDao.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/OperationScopeDefaultDao.java index 5e38a89f31..2c54dccd0e 100755 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/OperationScopeDefaultDao.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/dao/OperationScopeDefaultDao.java @@ -18,8 +18,10 @@ package com.epmet.dao; import com.epmet.commons.mybatis.dao.BaseDao; +import com.epmet.dto.result.OperationScopeDefaultResultDTO; import com.epmet.entity.OperationScopeDefaultEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -32,4 +34,11 @@ import java.util.List; @Mapper public interface OperationScopeDefaultDao extends BaseDao { List listAllValid(); + + /** + * 根据角色key和操作key查询默认操作权限列表 + * @param roleKey + * @return + */ + List listDefaultOpeScopes(@Param("roleKey") String roleKey); } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/OperationScopeDefaultEntity.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/OperationScopeDefaultEntity.java index 04d8f7baf9..6ec89eb12b 100755 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/OperationScopeDefaultEntity.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/entity/OperationScopeDefaultEntity.java @@ -38,6 +38,8 @@ public class OperationScopeDefaultEntity extends BaseEpmetEntity { private static final long serialVersionUID = 1L; + private String roleKey; + /** * 操作key */ diff --git a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/RoleOperationServiceImpl.java b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/RoleOperationServiceImpl.java index e3c4d16d5d..28943e74b8 100644 --- a/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/RoleOperationServiceImpl.java +++ b/epmet-module/gov-access/gov-access-server/src/main/java/com/epmet/service/impl/RoleOperationServiceImpl.java @@ -29,6 +29,7 @@ import com.epmet.dao.RoleOperationDefaultDao; import com.epmet.dao.RoleScopeDao; import com.epmet.dto.RoleOperationDTO; import com.epmet.dto.form.InitDefaultOperationsFormDTO; +import com.epmet.dto.result.OperationScopeDefaultResultDTO; import com.epmet.dto.result.RoleOperationDefaultResultDTO; import com.epmet.dto.result.RoleOperationResultDTO; import com.epmet.entity.OperationScopeDefaultEntity; @@ -124,9 +125,6 @@ public class RoleOperationServiceImpl extends BaseServiceImpl roles) { - List validScopeDefaults = operationScopeDefaultDao.listAllValid(); - HashMap> opeScopeMap = convertScopeDefaultEntity2Map(validScopeDefaults); - for (InitDefaultOperationsFormDTO.InitDefaultOpesRoleDTO role : roles) { String roleId = role.getRoleId(); String roleKey = role.getRoleKey(); @@ -134,7 +132,7 @@ public class RoleOperationServiceImpl extends BaseServiceImpl operations, HashMap> opeScopeMap) { + public void initDefaultOperationScopesForRole(String roleId, String roleKey, List operations) { + HashMap> opeScopeMap = listDefaultOpeScopesMap(roleKey); for (RoleOperationDefaultResultDTO operation : operations) { + // 该角色,该操作的操作范围列表 Set scopeKeys4ThisOpe = opeScopeMap.get(operation.getOperationKey()); if (!CollectionUtils.isEmpty(scopeKeys4ThisOpe)) { for (String scopeKey : scopeKeys4ThisOpe) { @@ -174,6 +174,11 @@ public class RoleOperationServiceImpl extends BaseServiceImpl> listDefaultOpeScopesMap(String roleKey) { + List defaultScopes = operationScopeDefaultDao.listDefaultOpeScopes(roleKey); + return convertScopeDefaultDto2Map(defaultScopes); + } + /** * 将默认范围entity转换为map * @param entities @@ -192,4 +197,22 @@ public class RoleOperationServiceImpl extends BaseServiceImpl> convertScopeDefaultDto2Map(List dtos) { + HashMap> map = new HashMap<>(); + for (OperationScopeDefaultResultDTO dto : dtos) { + Set scopes = map.get(dto.getOperationKey()); + if (scopes == null) { + scopes = new HashSet<>(); + map.put(dto.getOperationKey(), scopes); + } + scopes.add(dto.getScopeKey()); + } + return map; + } + } \ No newline at end of file diff --git a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/OperationScopeDefaultDao.xml b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/OperationScopeDefaultDao.xml index 5e3e76a426..1145048233 100755 --- a/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/OperationScopeDefaultDao.xml +++ b/epmet-module/gov-access/gov-access-server/src/main/resources/mapper/OperationScopeDefaultDao.xml @@ -5,6 +5,7 @@ + @@ -20,5 +21,21 @@ FROM operation_scope_default WHERE DEL_FLAG=0 + + + \ No newline at end of file