From 8dd5de4a1f1a8e90013272440b47d6f3531f33e4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E5=88=98=E6=B4=AA=E9=9D=92?= Date: Sun, 22 Sep 2019 11:50:09 +0800 Subject: [PATCH] =?utf8?q?refactor:=20=E9=87=8D=E6=9E=84=E6=8E=88=E6=9D=83?= =?utf8?q?=E7=AE=A1=E7=90=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- ...ntController.java => AuthnController.java} | 31 +++++++--- .../AuthnResourceRoleListResponseData.java | 30 ++++++++++ .../base/domain/entity/Permission.java | 26 ++++---- .../base/domain/model/ResourceRoleSet.java | 23 ++++++++ .../domain/repo/PermissionRepository.java | 10 ++-- .../domain/service/ApplicationService.java | 59 +++++++++++++++++++ .../base/domain/service/ResourceService.java | 8 ++- 7 files changed, 161 insertions(+), 26 deletions(-) rename base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/{AuthnAccountController.java => AuthnController.java} (86%) create mode 100644 base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/vo/response/AuthnResourceRoleListResponseData.java create mode 100644 base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/model/ResourceRoleSet.java diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnAccountController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java similarity index 86% rename from base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnAccountController.java rename to base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java index d74416c..291a80b 100644 --- a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnAccountController.java +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/controller/authn/AuthnController.java @@ -20,21 +20,23 @@ import com.supwisdom.institute.backend.base.api.v1.vo.response.AuthnAccountPermi import com.supwisdom.institute.backend.base.api.v1.vo.response.AuthnAccountResourcesResponseData; import com.supwisdom.institute.backend.base.api.v1.vo.response.AuthnAccountResponseData; import com.supwisdom.institute.backend.base.api.v1.vo.response.AuthnAccountRolesResponseData; +import com.supwisdom.institute.backend.base.api.v1.vo.response.AuthnResourceRoleListResponseData; import com.supwisdom.institute.backend.base.domain.entity.Account; import com.supwisdom.institute.backend.base.domain.entity.Permission; import com.supwisdom.institute.backend.base.domain.entity.Resource; import com.supwisdom.institute.backend.base.domain.entity.Role; +import com.supwisdom.institute.backend.base.domain.model.ResourceRoleSet; import com.supwisdom.institute.backend.base.domain.service.AccountService; import com.supwisdom.institute.backend.base.domain.service.PermissionService; import com.supwisdom.institute.backend.base.domain.service.ResourceService; import com.supwisdom.institute.backend.base.domain.service.RoleService; import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse; -@Api(value = "BaseAuthnAccount", tags = { "BaseAuthnAccount" }, description = "帐号接口(认证、授权用)") +@Api(value = "BaseAuthn", tags = { "BaseAuthn" }, description = "认证授权接口") @Slf4j @RestController @RequestMapping("/v1/authn") -public class AuthnAccountController { +public class AuthnController { @Autowired private AccountService accountService; @@ -69,11 +71,10 @@ public class AuthnAccountController { return new DefaultApiResponse(data); } - @GetMapping(path = "/{username}/roles", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) @ResponseStatus(value = HttpStatus.OK) @ResponseBody - public DefaultApiResponse roles( + public DefaultApiResponse accountRoles( @PathVariable("username") String username) { if (username == null || username.length() == 0) { @@ -96,7 +97,7 @@ public class AuthnAccountController { @GetMapping(path = "/{username}/applications", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) @ResponseStatus(value = HttpStatus.OK) @ResponseBody - public DefaultApiResponse applications( + public DefaultApiResponse accountApplications( @PathVariable("username") String username, @RequestParam(name = "applicationId", required = false) String applicationId) { @@ -120,7 +121,7 @@ public class AuthnAccountController { @GetMapping(path = "/{username}/menus", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) @ResponseStatus(value = HttpStatus.OK) @ResponseBody - public DefaultApiResponse menus( + public DefaultApiResponse accountMenus( @PathVariable("username") String username, @RequestParam(name = "applicationId", required = false) String applicationId) { @@ -144,7 +145,7 @@ public class AuthnAccountController { @GetMapping(path = "/{username}/operations", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) @ResponseStatus(value = HttpStatus.OK) @ResponseBody - public DefaultApiResponse operations( + public DefaultApiResponse accountOperations( @PathVariable("username") String username, @RequestParam(name = "applicationId", required = false) String applicationId) { @@ -168,7 +169,7 @@ public class AuthnAccountController { @GetMapping(path = "/{username}/resources", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) @ResponseStatus(value = HttpStatus.OK) @ResponseBody - public DefaultApiResponse resources( + public DefaultApiResponse accountResources( @PathVariable("username") String username, @RequestParam(name = "applicationId", required = false) String applicationId) { @@ -188,5 +189,19 @@ public class AuthnAccountController { return new DefaultApiResponse(data); } + + @GetMapping(path = "/resources", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse applicationResources( + @RequestParam(name = "applicationId", required = false) String applicationId) { + + List resourceRoleSets = resourceService.selectByApplication(applicationId); + + AuthnResourceRoleListResponseData data = AuthnResourceRoleListResponseData.of(resourceRoleSets); + + return new DefaultApiResponse(data); + } + } diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/vo/response/AuthnResourceRoleListResponseData.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/vo/response/AuthnResourceRoleListResponseData.java new file mode 100644 index 0000000..9d89d3a --- /dev/null +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/vo/response/AuthnResourceRoleListResponseData.java @@ -0,0 +1,30 @@ +package com.supwisdom.institute.backend.base.api.v1.vo.response; + +import java.util.List; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.base.domain.model.ResourceRoleSet; +import com.supwisdom.institute.backend.common.framework.vo.response.data.IApiResponseData; + +public class AuthnResourceRoleListResponseData implements IApiResponseData { + + /** + * + */ + private static final long serialVersionUID = -9178840503146742900L; + + @Getter + @Setter + public List resourceRoleSets; + + public static AuthnResourceRoleListResponseData of(List resourceRoleSets) { + AuthnResourceRoleListResponseData data = new AuthnResourceRoleListResponseData(); + + data.setResourceRoleSets(resourceRoleSets); + + return data; + } + +} diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Permission.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Permission.java index 7fdd8c0..ef218bf 100644 --- a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Permission.java +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/entity/Permission.java @@ -22,6 +22,8 @@ public class Permission extends ABaseEntity { public static final String TYPE_APPLICATION = "1"; public static final String TYPE_MENU = "2"; public static final String TYPE_OPERATION = "3"; + + public static final Integer DEFAULT_ORDER = 0; /** * 代码 @@ -47,18 +49,6 @@ public class Permission extends ABaseEntity { @Column(name = "STATUS") private String status; - /** - * 类型(1 应用,2 菜单,3 操作) - */ - @Column(name = "TYPE_") - private String type; - - /** - * URL地址 - */ - @Column(name = "URL", nullable = true) - private String url; - /** * 系统ID */ @@ -71,6 +61,18 @@ public class Permission extends ABaseEntity { @Column(name = "PARENT_ID") private String parentId; + /** + * 类型(1 应用,2 菜单,3 操作) + */ + @Column(name = "TYPE_") + private String type; + + /** + * URL地址 + */ + @Column(name = "URL", nullable = true) + private String url; + /** * 排序 */ diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/model/ResourceRoleSet.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/model/ResourceRoleSet.java new file mode 100644 index 0000000..d356ab6 --- /dev/null +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/model/ResourceRoleSet.java @@ -0,0 +1,23 @@ +package com.supwisdom.institute.backend.base.domain.model; + +import java.util.Set; + +import lombok.Getter; +import lombok.Setter; + +import com.supwisdom.institute.backend.base.domain.entity.Resource; +import com.supwisdom.institute.backend.base.domain.entity.Role; +import com.supwisdom.institute.backend.common.framework.model.IModel; + +public class ResourceRoleSet extends Resource implements IModel { + + /** + * + */ + private static final long serialVersionUID = 2220390504237330816L; + + @Getter + @Setter + Set roles; + +} diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/PermissionRepository.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/PermissionRepository.java index 623411d..aaa0214 100644 --- a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/PermissionRepository.java +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/repo/PermissionRepository.java @@ -176,10 +176,10 @@ public interface PermissionRepository extends BaseJpaRepository { public default Permission insert(Permission entity) { if (entity.getParentId() == null) { - entity.setParentId("0"); + entity.setParentId(Permission.ROOT_PARENT_ID); } - if (entity.getParentId() == null || entity.getParentId().isEmpty() || "0".equals(entity.getParentId())) { + if (entity.getParentId() == null || entity.getParentId().isEmpty() || Permission.ROOT_PARENT_ID.equals(entity.getParentId())) { int maxRgt = selectMaxRgt(); entity.setLft((maxRgt+1)); entity.setRgt((maxRgt+1) + 1); @@ -218,11 +218,11 @@ public interface PermissionRepository extends BaseJpaRepository { //} if (originEntity.getParentId() == null) { - originEntity.setParentId("0"); + originEntity.setParentId(Permission.ROOT_PARENT_ID); } if (entity.getParentId() == null) { - entity.setParentId("0"); + entity.setParentId(Permission.ROOT_PARENT_ID); } if (!originEntity.getParentId().equals(entity.getParentId()) ) { @@ -234,7 +234,7 @@ public interface PermissionRepository extends BaseJpaRepository { List childEntities = this.selectBetweenLftRgt(lft, rgt); - if (entity.getParentId() == null || entity.getParentId().isEmpty() || "0".equals(entity.getParentId())) { + if (entity.getParentId() == null || entity.getParentId().isEmpty() || Permission.ROOT_PARENT_ID.equals(entity.getParentId())) { // 将 lft或rgt 大于等于该对象 rgt 的记录的 lft、rgt -offset updateLftRgtWhenDelete(rgt, offset); diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java index 7e2fa96..17e7503 100644 --- a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ApplicationService.java @@ -6,7 +6,9 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.supwisdom.institute.backend.base.domain.entity.Application; +import com.supwisdom.institute.backend.base.domain.entity.Permission; import com.supwisdom.institute.backend.base.domain.repo.ApplicationRepository; +import com.supwisdom.institute.backend.base.domain.repo.PermissionRepository; import com.supwisdom.institute.backend.common.framework.service.ABaseService; @Service @@ -19,7 +21,64 @@ public class ApplicationService extends ABaseService ids) { diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ResourceService.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ResourceService.java index e044cf5..47424ad 100644 --- a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ResourceService.java +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/ResourceService.java @@ -6,6 +6,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.supwisdom.institute.backend.base.domain.entity.Resource; +import com.supwisdom.institute.backend.base.domain.model.ResourceRoleSet; import com.supwisdom.institute.backend.base.domain.repo.ResourceRepository; import com.supwisdom.institute.backend.common.framework.service.ABaseService; @@ -27,6 +28,11 @@ public class ResourceService extends ABaseService this.deleteById(id); }); } - + + + public List selectByApplication(String applicationId) { + // TODO Auto-generated method stub + return null; + } } -- 2.17.1