From: 刘洪青 Date: Fri, 6 Sep 2019 09:50:12 +0000 (+0800) Subject: fix: 完善授权相关逻辑 X-Git-Tag: v0.0.1^2~45 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=ec1cda9bc4af891f2b5d593294040705d70b6ef3;p=institute%2Fsw-backend.git fix: 完善授权相关逻辑 --- diff --git a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminPermissionController.java b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminPermissionController.java index 7859731..f10244a 100644 --- a/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminPermissionController.java +++ b/base/api/src/main/java/com/supwisdom/institute/backend/base/api/v1/admin/AdminPermissionController.java @@ -1,5 +1,47 @@ package com.supwisdom.institute.backend.base.api.v1.admin; +import java.util.HashMap; +import java.util.Map; + +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.util.MimeTypeUtils; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; +import org.springframework.web.bind.annotation.RestController; + +import com.supwisdom.institute.backend.base.api.vo.response.PermissionTreeResponseData; +import com.supwisdom.institute.backend.base.domain.model.PermissionTreeNode; +import com.supwisdom.institute.backend.base.domain.service.PermissionService; +import com.supwisdom.institute.backend.common.framework.vo.response.DefaultApiResponse; + +@Api(value = "BaseAdminPermission", tags = { "BaseAdminPermission" }, description = "权限的操作接口") +@Slf4j +@RestController +@RequestMapping("/v1/admin/permissions") public class AdminPermissionController { + @Autowired + private PermissionService permissionService; + + @GetMapping(path = "/tree", produces = MimeTypeUtils.APPLICATION_JSON_VALUE) + @ResponseStatus(value = HttpStatus.OK) + @ResponseBody + public DefaultApiResponse tree() { + + Map mapBean = new HashMap(); + //mapBean.put("type", Permission.TYPE_MENU); + + PermissionTreeNode tree = permissionService.selectPermissionTree(mapBean); + + PermissionTreeResponseData data = PermissionTreeResponseData.of(tree); + + return new DefaultApiResponse(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 3707ec7..1fedb61 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 @@ -143,6 +143,14 @@ public class Permission extends ABaseEntity { this.url = url; } + public String getApplicationId() { + return applicationId; + } + + public void setApplicationId(String applicationId) { + this.applicationId = applicationId; + } + public String getParentId() { return parentId; } diff --git a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java index 31119b3..ead21b9 100644 --- a/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java +++ b/base/domain/src/main/java/com/supwisdom/institute/backend/base/domain/service/PermissionService.java @@ -27,6 +27,16 @@ public class PermissionService extends ABaseService ids) { @@ -47,10 +57,7 @@ public class PermissionService extends ABaseService parentTreeNode = new LinkedHashMap(); - PermissionTreeNode rootTreeNode = new PermissionTreeNode(); - rootTreeNode.setId(applicationPermission.getId()); - rootTreeNode.setCode(applicationPermission.getCode()); - rootTreeNode.setName(applicationPermission.getName()); + PermissionTreeNode rootTreeNode = EntityUtils.copy(applicationPermission, new PermissionTreeNode()); rootTreeNode.setChildren(new ArrayList()); parentTreeNode.put(rootTreeNode.getId(), rootTreeNode); @@ -60,6 +67,9 @@ public class PermissionService extends ABaseService()); + if (parentTreeNode.containsKey(treeNode.getId())) { + continue; + } parentTreeNode.put(treeNode.getId(), treeNode); } diff --git a/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/exception/BaseException.java b/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/exception/BaseException.java index 5f10b42..9e13ed0 100644 --- a/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/exception/BaseException.java +++ b/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/exception/BaseException.java @@ -12,27 +12,45 @@ public class BaseException extends RuntimeException { /** * 具体异常码 */ - protected int code = -1; + protected final int code; + + private final String messageCode; + @Deprecated public BaseException(int code, String msgFormat, Object... args) { super(String.format(msgFormat, args)); this.code = code; + this.messageCode = null; } + + public BaseException(int code, String messageCode, String msgFormat, Object... args) { + super(String.format(msgFormat, args)); + this.code = code; + this.messageCode = messageCode; +} public BaseException() { - super(); + super(); + this.code = DEFAULT_CODE; + this.messageCode = null; } public BaseException(String message, Throwable cause) { super(message, cause); + this.code = DEFAULT_CODE; + this.messageCode = null; } public BaseException(Throwable cause) { super(cause); + this.code = DEFAULT_CODE; + this.messageCode = null; } public BaseException(String message) { super(message); + this.code = DEFAULT_CODE; + this.messageCode = null; } public int getCode() { @@ -51,8 +69,13 @@ public class BaseException extends RuntimeException { return new BaseException(DEFAULT_CODE, msgFormat, args); } + @Deprecated public static BaseException newInstance(int code, String msgFormat, Object... args) { return new BaseException(code, msgFormat, args); } + + public static BaseException newInstance(int code, String messageCode, String msgFormat, Object... args) { + return new BaseException(code, messageCode, msgFormat, args); + } } diff --git a/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/repo/BaseJpaRepository.java b/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/repo/BaseJpaRepository.java index 2be2c31..e5308df 100644 --- a/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/repo/BaseJpaRepository.java +++ b/common/framework/src/main/java/com/supwisdom/institute/backend/common/framework/repo/BaseJpaRepository.java @@ -40,6 +40,10 @@ public interface BaseJpaRepository extends JpaRepository< Specification spec = convertToSpec(mapBean); + if (pageIndex == -1) { + loadAll = true; + } + if (loadAll) { pageIndex = 0; pageSize = Integer.MAX_VALUE;