mxd преди 4 години
родител
ревизия
a7b881664e

+ 11 - 5
src/main/java/org/ssssssss/magicapi/config/MagicFunctionManager.java

@@ -44,13 +44,19 @@ public class MagicFunctionManager {
 			if (info != null) {
 				List<String> parameterNames = info.getParameterNames();
 				return (Function<Object[], Object>) objects -> {
-					MagicScriptContext functionContext = new MagicScriptContext(MagicScriptContext.get().getRootVariables());
-					if (objects != null) {
-						for (int i = 0, len = objects.length, size = parameterNames.size(); i < len && i < size; i++) {
-							functionContext.set(parameterNames.get(i), objects[i]);
+					MagicScriptContext context = MagicScriptContext.get();
+					try {
+						MagicScriptContext functionContext = new MagicScriptContext(context.getRootVariables());
+						MagicScriptContext.set(functionContext);
+						if (objects != null) {
+							for (int i = 0, len = objects.length, size = parameterNames.size(); i < len && i < size; i++) {
+								functionContext.set(parameterNames.get(i), objects[i]);
+							}
 						}
+						return ScriptManager.executeScript(info.getScript(), functionContext);
+					} finally {
+						MagicScriptContext.set(context);
 					}
-					return ScriptManager.executeScript(info.getScript(), functionContext);
 				};
 			}
 			return null;

+ 6 - 1
src/main/java/org/ssssssss/magicapi/controller/MagicGroupController.java

@@ -14,6 +14,7 @@ import org.ssssssss.magicapi.provider.GroupServiceProvider;
 
 import javax.servlet.http.HttpServletRequest;
 import java.util.List;
+import java.util.Objects;
 import java.util.stream.Collectors;
 
 public class MagicGroupController extends MagicController {
@@ -153,7 +154,11 @@ public class MagicGroupController extends MagicController {
 		}
 		try {
 			groupServiceProvider.insert(group);
-			configuration.getMappingHandlerMapping().loadGroup();
+			if (Objects.equals(group.getType(), "1")) {
+				configuration.getMappingHandlerMapping().loadGroup();
+			} else {
+				configuration.getMagicFunctionManager().loadGroup();
+			}
 			return new JsonBean<>(group.getId());
 		} catch (Exception e) {
 			logger.error("保存分组出错", e);