diff --git a/src/main/java/cn/netbuffer/liteflow/demo/JDKtest/Person.java b/src/main/java/cn/netbuffer/liteflow/demo/JDKtest/Person.java new file mode 100644 index 0000000000000000000000000000000000000000..2b5e57783a145ec6a842a085c1a46db3bb170553 --- /dev/null +++ b/src/main/java/cn/netbuffer/liteflow/demo/JDKtest/Person.java @@ -0,0 +1,62 @@ +package cn.netbuffer.liteflow.demo.JDKtest; + +/** + * @Author liying + * @Date 2023/7/27 6:11 下午 + * @Version 1.0 + */ +class Person { + private String name; + private Integer age; + private String country; + private char sex; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getAge() { + return age; + } + + public void setAge(Integer age) { + this.age = age; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public char getSex() { + return sex; + } + + public void setSex(char sex) { + this.sex = sex; + } + + @Override + public String toString() { + return "Person{" + + "name='" + name + '\'' + + ", age=" + age + + ", country='" + country + '\'' + + ", sex=" + sex + + '}'; + } + + public Person(String name, Integer age, String country, char sex) { + this.name = name; + this.age = age; + this.country = country; + this.sex = sex; + } +} \ No newline at end of file diff --git a/src/main/java/cn/netbuffer/liteflow/demo/JDKtest/test.java b/src/main/java/cn/netbuffer/liteflow/demo/JDKtest/test.java new file mode 100644 index 0000000000000000000000000000000000000000..d9ba911054a1d135970ba411cc50363b5a2aa9d6 --- /dev/null +++ b/src/main/java/cn/netbuffer/liteflow/demo/JDKtest/test.java @@ -0,0 +1,40 @@ +package cn.netbuffer.liteflow.demo.JDKtest; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @Author liying + * @Date 2023/7/27 6:01 下午 + * @Version 1.0 + */ +public class test { + public static void main(String[] args) { + ArrayList list=new ArrayList<>(); + Collections.addAll(list, "张无忌", "周芷若", "赵敏", "张强", "张无忌","张三丰"); + list.stream().filter(t -> t.startsWith("张")).collect(Collectors.toList()).forEach(System.out::println); + List collect = list.stream().distinct().collect(Collectors.toList()); + System.out.println("去重:"+collect.toString()); + + List personList = new ArrayList<>(); + personList.add(new Person("欧阳雪",18,"中国",'F')); + personList.add(new Person("Tom",24,"美国",'M')); + personList.add(new Person("Harley",22,"英国",'F')); + personList.add(new Person("向天笑",20,"中国",'M')); + personList.add(new Person("李康",22,"中国",'M')); + personList.add(new Person("小梅",29,"中国",'F')); + personList.add(new Person("何雪",21,"中国",'F')); + personList.add(new Person("李康",22,"中国",'M')); + List persons = personList.stream().filter(person -> person.getAge() > 24).collect(Collectors.toList()); + System.out.println(personList.stream().filter(person -> person.getAge() > 24).count()); + System.out.println(persons); + + Optional reduce = personList.stream().map(Person::getAge).reduce(Integer::sum); + + + List collect1 = personList.stream().map(Person::getAge).collect(Collectors.toList()); + + + } + +} diff --git a/src/main/java/cn/netbuffer/liteflow/demo/controller/LiteflowController.java b/src/main/java/cn/netbuffer/liteflow/demo/controller/LiteflowController.java index 7cd852cda5781ea84eee5aefc80b28febabb6615..11dfc1fc3f9e35020aeda4e8faab82d431cf4a9b 100644 --- a/src/main/java/cn/netbuffer/liteflow/demo/controller/LiteflowController.java +++ b/src/main/java/cn/netbuffer/liteflow/demo/controller/LiteflowController.java @@ -1,5 +1,7 @@ package cn.netbuffer.liteflow.demo.controller; +import cn.netbuffer.liteflow.demo.entity.OrderVO; +import cn.netbuffer.liteflow.demo.entity.TestModel; import com.alibaba.fastjson.JSONObject; import com.yomahub.liteflow.builder.LiteFlowNodeBuilder; import com.yomahub.liteflow.core.FlowExecutor; @@ -9,7 +11,9 @@ import com.yomahub.liteflow.script.ScriptExecutorFactory; import com.yomahub.liteflow.slot.DefaultContext; import lombok.extern.slf4j.Slf4j; import org.joda.time.DateTime; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Lazy; +import org.springframework.core.annotation.Order; import org.springframework.util.StopWatch; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -17,6 +21,9 @@ import java.util.Map; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +/** + * @author liying + */ @Slf4j @RestController @RequestMapping("/liteflow") @@ -26,25 +33,24 @@ public class LiteflowController { @Resource private FlowExecutor flowExecutor; + @GetMapping("execute2Resp/{chainId}") public boolean execute2Resp(@PathVariable("chainId") String chainId) { - JSONObject param = new JSONObject(); - param.put("chain", chainId); - param.put("time", DateTime.now().toString("yyyy-MM-dd HH:mm:ss")); - LiteflowResponse liteflowResponse = flowExecutor.execute2Resp(chainId, param); - DefaultContext defaultContext = liteflowResponse.getContextBean(DefaultContext.class); - if (defaultContext != null) { - Object result = defaultContext.getData("result"); - if (result != null) { - log.debug("exec chain[{}] success,getData[result]={},result class={}", chainId, result, result.getClass().getName()); - } - } - log.debug("exec chain[{}] return code={},getExecuteStepStrWithoutTime={},getMessage={},getRequestId={},slot={}", chainId, - liteflowResponse.getCode(), liteflowResponse.getExecuteStepStrWithoutTime(), - liteflowResponse.getMessage(), liteflowResponse.getRequestId(), liteflowResponse.getSlot()); + OrderVO orderVO =new OrderVO(90,0); + TestModel testM =new TestModel(); + testM.setNum(10000); + LiteflowResponse liteflowResponse = flowExecutor.execute2Resp(chainId,null,orderVO,testM); return liteflowResponse.isSuccess(); } + @GetMapping("execute/{chainId}") + public boolean execute(@PathVariable("chainId") String chainId) { + OrderVO orderVO =new OrderVO(90,0); + TestModel testM =new TestModel(); + testM.setNum(10000); + LiteflowResponse liteflowResponse = flowExecutor.execute2Resp(chainId); + return liteflowResponse.isSuccess(); + } @GetMapping("execute2Future/{chainId}") public boolean execute2Future(@PathVariable("chainId") String chainId) throws ExecutionException, InterruptedException { diff --git a/src/main/java/cn/netbuffer/liteflow/demo/entity/OrderVO.java b/src/main/java/cn/netbuffer/liteflow/demo/entity/OrderVO.java new file mode 100644 index 0000000000000000000000000000000000000000..aba54dd91f904ef2995993eaef490dcb19c61cd0 --- /dev/null +++ b/src/main/java/cn/netbuffer/liteflow/demo/entity/OrderVO.java @@ -0,0 +1,37 @@ +package cn.netbuffer.liteflow.demo.entity; + +import com.yomahub.liteflow.context.ContextBean; +import com.yomahub.liteflow.script.annotation.ScriptBean; + +/** + * @Author liying + * @Date 2023/7/21 5:23 下午 + * @Version 1.0 + */ +@ContextBean("orderVO") +public class OrderVO { + private Integer amount; + private Integer score; + + public OrderVO(Integer amount, Integer score) { + this.amount = amount; + this.score = score; + } + + public Integer getAmount() { + return amount; + } + + public void setAmount(Integer amount) { + this.amount = amount; + } + + public Integer getScore() { + return score; + } + + public void setScore(Integer score) { + this.score = score; + } +} + diff --git a/src/main/java/cn/netbuffer/liteflow/demo/entity/TestModel.java b/src/main/java/cn/netbuffer/liteflow/demo/entity/TestModel.java new file mode 100644 index 0000000000000000000000000000000000000000..9cd001db4c0d56580dc9dc2ce8ff07543d067056 --- /dev/null +++ b/src/main/java/cn/netbuffer/liteflow/demo/entity/TestModel.java @@ -0,0 +1,41 @@ +package cn.netbuffer.liteflow.demo.entity; + +import com.yomahub.liteflow.context.ContextBean; + + +@ContextBean("testM") +public class TestModel { + + private int num; + private String str; + + private String msg; + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public int getNum() { + return num; + } + + public void setNum(int num) { + this.num = num; + } + + public String getStr() { + return str; + } + + public void setStr(String str) { + this.str = str; + } + + public void test(){ + System.out.println("调用方法"); + } +} diff --git a/src/main/resources/rules/liteflow-script-component.el.xml b/src/main/resources/rules/liteflow-script-component.el.xml index 0364128d657a5c9ee7ab54c9f5cf5e55adadec11..13de9522bd0159761669610b654b4f9c9d9cce2f 100644 --- a/src/main/resources/rules/liteflow-script-component.el.xml +++ b/src/main/resources/rules/liteflow-script-component.el.xml @@ -2,26 +2,36 @@ - + 100){ + return "a"; + }else{ + return "b"; + } + //defaultContext.setData("result",a*b); ]]> - + + + + - THEN(scriptStep1,scriptStep2); + THEN(SWITCH(scriptStep1).to(a,b));