diff --git a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java index 8b590ad65e04414edcc1e7b45d4f2de942d9d6da..37bb72fad6122d9d94f6657615b8efe85650e83c 100644 --- a/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java +++ b/rec-admin/rec-admin-biz/src/main/java/cn/icanci/rec/admin/biz/service/impl/BaseDataServiceImpl.java @@ -5,8 +5,12 @@ import cn.icanci.rec.admin.biz.service.BaseDataService; import cn.icanci.rec.admin.dal.mongodb.common.PageList; import cn.icanci.rec.admin.dal.mongodb.daointerface.BaseDataDAO; import cn.icanci.rec.admin.dal.mongodb.dateobject.BaseDataDO; +import cn.icanci.rec.common.enums.ResultTypeEnum; import cn.icanci.rec.common.model.TextValue; import cn.icanci.rec.common.model.config.BaseDataVO; +import cn.icanci.rec.engine.script.RecScriptEngine; +import cn.icanci.rec.engine.script.context.RecScriptEngineContext; +import cn.icanci.rec.engine.script.enums.ResultTypeMapEnum; import java.util.List; @@ -24,9 +28,11 @@ import com.google.common.collect.Lists; @Service public class BaseDataServiceImpl implements BaseDataService { @Resource - private BaseDataDAO baseDataDAO; + private BaseDataDAO baseDataDAO; @Resource - private BaseDataMapper baseDataMapper; + private BaseDataMapper baseDataMapper; + @Resource + private RecScriptEngine recScriptEngine; @Override public List queryAll() { @@ -80,6 +86,16 @@ public class BaseDataServiceImpl implements BaseDataService { @Override public void debug(BaseDataVO baseData, String scriptContentTest) { + RecScriptEngineContext context; + ResultTypeEnum resultType = baseData.getResultType(); + if (resultType != null) { + Class clazz = ResultTypeMapEnum.getClassByResultType(resultType); + context = recScriptEngine.eval(baseData.getScriptType(), scriptContentTest, clazz); + } else { + context = recScriptEngine.eval(baseData.getScriptType(), scriptContentTest); + } + Object realRetVal = context.getRealRetVal(); + System.out.println(realRetVal); // TODO } } diff --git a/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java b/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java index 8c014189b8dd2f7ac5da65aaea617a4ebab162cf..8472d56cc82a252c7e8b5ed66b97c08754a300cb 100644 --- a/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java +++ b/rec-admin/rec-admin-web/src/main/java/cn/icanci/rec/admin/web/controller/config/BaseDataController.java @@ -58,6 +58,7 @@ public class BaseDataController { @GetMapping("debug") public R debug(@RequestBody BaseDataDebugForm form) { baseDataService.debug(baseDataWebMapper.web2vo(form.getBaseData()), form.getScriptContentTest()); + // return R.builderOk().data("debugResp", textValues).build(); return R.builder().build(); } diff --git a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java index a0ff5915a5146c7703d503d4d5cf7e1f491d46ff..26101b5f98d3792710d5692cdedc20806308e908 100644 --- a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java +++ b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ResultTypeMapEnum.java @@ -41,7 +41,7 @@ public enum ResultTypeMapEnum { } private final ResultTypeEnum resultType; - private final Class clazz; + private final Class clazz; /** * 根据 ResultTypeEnum 获取对应的类型 @@ -49,7 +49,7 @@ public enum ResultTypeMapEnum { * @param resultType resultType * @return 返回对应的类型 */ - public Class getClassByResultType(ResultTypeEnum resultType) { + public static Class getClassByResultType(ResultTypeEnum resultType) { return MAP.get(resultType); } diff --git a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java index c4ebb6000a5cab4f439bcf996fece25a98b8d54b..dc5cf5c8a889f9df62c9872a5891af5672914d50 100644 --- a/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java +++ b/rec-engine/rec-engine-script/src/main/java/cn/icanci/rec/engine/script/enums/ScriptTypeFactoryEnum.java @@ -55,7 +55,7 @@ public enum ScriptTypeFactoryEnum { * @param scriptType scriptType * @return 返回对应的类型 */ - public ScriptEngineFactory getScriptEngineFactoryByScriptType(ScriptTypeEnum scriptType) { + public static ScriptEngineFactory getScriptEngineFactoryByScriptType(ScriptTypeEnum scriptType) { return MAP.get(scriptType); } diff --git a/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java b/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java index 043d7492580a16921dda7f3f012bbfdd48eed9c1..1f711ede90f8312ad9b5bfb17e9a8d9139a1e3fd 100644 --- a/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java +++ b/rec-engine/rec-engine-script/src/test/java/cn/icanci/rec/engine/script/test/RecScriptEngineManagerTest.java @@ -15,7 +15,7 @@ public class RecScriptEngineManagerTest { @Test public void testRecScriptEngineManager() { RecScriptEngine recScriptEngine = RecScriptEngineManager.getRecScriptEngine(); - RecScriptEngineContext context = recScriptEngine.eval(ScriptTypeEnum.MVEL2, "1+2 +'e'", Integer.class); + RecScriptEngineContext context = recScriptEngine.eval(ScriptTypeEnum.MVEL2, "1+2", Integer.class); System.out.println(context); Integer retVal = context.getRealRetVal(); System.out.println(retVal);