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<PermissionTreeResponseData> tree() {
+
+ Map<String, Object> mapBean = new HashMap<String, Object>();
+ //mapBean.put("type", Permission.TYPE_MENU);
+
+ PermissionTreeNode tree = permissionService.selectPermissionTree(mapBean);
+
+ PermissionTreeResponseData data = PermissionTreeResponseData.of(tree);
+
+ return new DefaultApiResponse<PermissionTreeResponseData>(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 @@
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 @@
@Autowired
private PermissionRepository permissionRepository;
+
+ @Override
+ public Permission insert(Permission entity) {
+ Permission parentPermission = permissionRepository.selectById(entity.getParentId());
+ if (parentPermission != null) {
+ entity.setApplicationId(parentPermission.getApplicationId());
+ }
+
+ return super.insert(entity);
+ }
public void deleteBatch(List<String> ids) {
@@ -47,10 +57,7 @@
Map<String, PermissionTreeNode> parentTreeNode = new LinkedHashMap<String, PermissionTreeNode>();
- 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<PermissionTreeNode>());
parentTreeNode.put(rootTreeNode.getId(), rootTreeNode);
@@ -60,6 +67,9 @@
PermissionTreeNode treeNode = EntityUtils.copy(permission, new PermissionTreeNode());
treeNode.setChildren(new ArrayList<PermissionTreeNode>());
+ 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 @@
/**
* 具体异常码
*/
- 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 @@
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 @@
Specification<E> spec = convertToSpec(mapBean);
+ if (pageIndex == -1) {
+ loadAll = true;
+ }
+
if (loadAll) {
pageIndex = 0;
pageSize = Integer.MAX_VALUE;