diff --git a/cloud-rule-client/pom.xml b/cloud-rule-client/pom.xml index 4407c5d..8fb72ef 100644 --- a/cloud-rule-client/pom.xml +++ b/cloud-rule-client/pom.xml @@ -22,6 +22,18 @@ com.muyu cloud-rule-common + + com.muyu + cloud-rule-remote + 1.0.0 + + + com.muyu + cloud-rule-remote + 1.0.0 + compile + + diff --git a/cloud-rule-client/src/main/java/com/muyu/client/basic/RuleConfig.java b/cloud-rule-client/src/main/java/com/muyu/client/basic/RuleConfig.java new file mode 100644 index 0000000..9feca04 --- /dev/null +++ b/cloud-rule-client/src/main/java/com/muyu/client/basic/RuleConfig.java @@ -0,0 +1,13 @@ +package com.muyu.client.basic; + +import com.muyu.common.core.domain.Result; +import com.muyu.etl.domain.DataValue; +import com.muyu.rule.common.domain.RuleEngineVersion; + +public interface RuleConfig { + public Result findVersionById( Long id); + + public Result testEngine(String className,DataValue dataValue); + public Result testEngine(String className,DataValue[] dataValue); + public Result DataSetEngine(String className, DataValue[][] dataValues); +} diff --git a/cloud-rule-client/src/main/java/com/muyu/client/basic/impl/RuleConfigImpl.java b/cloud-rule-client/src/main/java/com/muyu/client/basic/impl/RuleConfigImpl.java new file mode 100644 index 0000000..8d7f4cf --- /dev/null +++ b/cloud-rule-client/src/main/java/com/muyu/client/basic/impl/RuleConfigImpl.java @@ -0,0 +1,36 @@ +package com.muyu.client.basic.impl; + +import com.muyu.client.basic.RuleConfig; +import com.muyu.common.core.domain.Result; +import com.muyu.etl.domain.DataValue; +import com.muyu.rule.common.domain.RuleEngineVersion; +import com.muyu.rule.remote.RuleFeign; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class RuleConfigImpl implements RuleConfig { + + @Autowired + private RuleFeign ruleFeign; + + @Override + public Result findVersionById(Long id) { + return ruleFeign.findVersionById(id); + } + + @Override + public Result testEngine(String className, DataValue dataValue) { + return ruleFeign.testEngine(className, dataValue); + } + + @Override + public Result testEngine(String className, DataValue[] dataValue) { + return ruleFeign.testEngine(className, dataValue); + } + + @Override + public Result DataSetEngine(String className, DataValue[][] dataValues) { + return ruleFeign.DataSetEngine(className, dataValues); + } +} diff --git a/cloud-rule-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-rule-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..a6e5665 --- /dev/null +++ b/cloud-rule-client/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.muyu.client.basic.impl.RuleConfigImpl diff --git a/cloud-rule-remote/pom.xml b/cloud-rule-remote/pom.xml index c87384f..0eb64ea 100644 --- a/cloud-rule-remote/pom.xml +++ b/cloud-rule-remote/pom.xml @@ -22,6 +22,12 @@ com.muyu cloud-rule-common + + com.muyu + cloud-common-etl + 1.0.0 + compile + diff --git a/cloud-rule-remote/src/main/java/com/muyu/rule/remote/Factory/RuleFactory.java b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/Factory/RuleFactory.java new file mode 100644 index 0000000..d798f4c --- /dev/null +++ b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/Factory/RuleFactory.java @@ -0,0 +1,44 @@ +package com.muyu.rule.remote.Factory; + +import com.muyu.common.core.domain.Result; +import com.muyu.etl.domain.DataValue; + +import com.muyu.rule.common.domain.RuleEngineVersion; +import com.muyu.rule.remote.RuleFeign; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +@Log4j2 +@Component +public class RuleFactory implements FallbackFactory { + + @Override + public RuleFeign create(Throwable cause) { + return new RuleFeign() { + @Override + public Result findVersionById(Long id) { + log.info(cause); + return Result.error("网络开小差......"); + } + + @Override + public Result testEngine(String className, DataValue dataValue) { + log.info(cause); + return Result.error("网络开小差......"); + } + + @Override + public Result testEngine(String className, DataValue[] dataValue) { + log.info(cause); + return Result.error("网络开小差......"); + } + + @Override + public Result DataSetEngine(String className, DataValue[][] dataValues) { + log.info(cause); + return Result.error("网络开小差......"); + } + }; + } +} diff --git a/cloud-rule-remote/src/main/java/com/muyu/rule/remote/RuleFeign.java b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/RuleFeign.java new file mode 100644 index 0000000..e739d5c --- /dev/null +++ b/cloud-rule-remote/src/main/java/com/muyu/rule/remote/RuleFeign.java @@ -0,0 +1,26 @@ +package com.muyu.rule.remote; + +import com.muyu.common.core.domain.Result; + +import com.muyu.etl.domain.DataValue; +import com.muyu.rule.common.domain.RuleEngineVersion; +import com.muyu.rule.remote.Factory.RuleFactory; +import io.swagger.v3.oas.annotations.Operation; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@EnableFeignClients +@FeignClient(value = "cloud-etl-rule",fallbackFactory= RuleFactory.class) +public interface RuleFeign { + @PostMapping("/version/findVersionById/{id}") + public Result findVersionById(@PathVariable("id") Long id); + @PostMapping("/version/testEngine/{className}") + public Result testEngine(@PathVariable("className") String className,@RequestBody DataValue dataValue); + @PostMapping("/version/rowEngine/{className}") + public Result testEngine(@PathVariable("className") String className,@RequestBody DataValue[] dataValue); + @PostMapping("/version/DataSetEngine/{className}") + public Result DataSetEngine(@PathVariable("className") String className,@RequestBody DataValue[][] dataValues); +} diff --git a/cloud-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/cloud-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..491b97a --- /dev/null +++ b/cloud-rule-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +com.muyu.rule.remote.RuleFeign +com.muyu.rule.remote.Factory.RuleFactory