瀏覽代碼

修复同步删除分组时空指针异常

mxd 4 年之前
父節點
當前提交
5c78405936

+ 4 - 0
magic-api/src/main/java/org/ssssssss/magicapi/config/MagicFunctionManager.java

@@ -147,6 +147,10 @@ public class MagicFunctionManager {
 		return false;
 	}
 
+	public TreeNode<Group> findGroupTree(String groupId){
+		return groups.findTreeNode(it -> it.getId().equals(groupId));
+	}
+
 	public boolean checkGroup(Group group) {
 		TreeNode<Group> oldTree = groups.findTreeNode((item) -> item.getId().equals(group.getId()));
 		// 如果只改了名字,则不做任何操作

+ 4 - 0
magic-api/src/main/java/org/ssssssss/magicapi/config/MappingHandlerMapping.java

@@ -126,6 +126,10 @@ public class MappingHandlerMapping {
 		return groups;
 	}
 
+	public TreeNode<Group> findGroupTree(String groupId){
+		return groups.findTreeNode(it -> it.getId().equals(groupId));
+	}
+
 	public void setRequestMappingHandlerMapping(RequestMappingHandlerMapping requestMappingHandlerMapping) {
 		this.mappingHelper = Mapping.create(requestMappingHandlerMapping);
 	}

+ 2 - 2
magic-api/src/main/java/org/ssssssss/magicapi/provider/impl/DefaultMagicAPIService.java

@@ -601,10 +601,10 @@ public class DefaultMagicAPIService implements MagicAPIService, JsonCodeConstant
 				return magicFunctionManager.updateGroup(id);
 			}
 		} else if (action == Constants.NOTIFY_ACTION_DELETE) {    // 删除分组
-			TreeNode<Group> treeNode = groupServiceProvider.apiGroupTree().findTreeNode(group -> group.getId().equals(id));
+			TreeNode<Group> treeNode = mappingHandlerMapping.findGroupTree(id);
 			if (treeNode == null) {
 				// 删除函数分组
-				treeNode = groupServiceProvider.functionGroupTree().findTreeNode(group -> group.getId().equals(id));
+				treeNode = magicFunctionManager.findGroupTree(id);
 				magicFunctionManager.deleteGroup(treeNode.flat().stream().map(Group::getId).collect(Collectors.toList()));
 				// 刷新函数缓存
 				this.functionList();