From e4bbcea39178cb8df1ef563f633d024541830437 Mon Sep 17 00:00:00 2001
From: yuan <1363654894@qq.com>
Date: Fri, 30 Aug 2024 11:38:24 +0800
Subject: [PATCH] =?UTF-8?q?feat():=E5=A2=9E=E5=8A=A0=E8=A7=84=E5=88=99?=
=?UTF-8?q?=E7=AD=96=E7=95=A5=E4=B8=8E=E4=BB=A3=E7=A0=81=E7=94=9F=E6=88=90?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../common/domain/req/RuleDataAddReq.java | 2 +-
cloud-rule-engine/pom.xml | 94 +++++++++++++++++++
.../com/muyu/constant/GenerateConstant.java | 75 +++++++++++++++
.../src/main/java/com/muyu/engine/Main.java | 3 +-
.../com/muyu/engine/basic/BasicEngine.java | 1 +
.../abstracts/DataEngineRecordActuator.java | 35 +++++++
.../abstracts/DataEngineRowActuator.java | 1 -
.../abstracts/DataEngineSetActuator.java | 35 +++++++
.../abstracts/DataEngineValueActuator.java | 0
.../basic/handler/DataEngineHandler.java | 0
.../handler/DataEngineRecordHandler.java | 36 +++++++
.../basic/handler/DataEngineRowHandler.java | 1 -
.../basic/handler/DataEngineSetHandler.java | 36 +++++++
.../basic/handler/DataEngineValueHandler.java | 2 +-
.../server}/ENGINE_VALUE_JDIES732842_V1.java | 3 +-
.../src/test/java/com/muyu/AppTest.java | 38 ++++++++
cloud-rule-server/pom.xml | 5 +
.../controller/RuleVersionController.java | 17 ++++
.../com/muyu/servier/RuleVersionService.java | 2 +
.../servier/impl/RuleVersionServiceImpl.java | 11 +++
pom.xml | 1 +
21 files changed, 390 insertions(+), 8 deletions(-)
create mode 100644 cloud-rule-engine/pom.xml
create mode 100644 cloud-rule-engine/src/main/java/com/muyu/constant/GenerateConstant.java
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/Main.java (89%)
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/basic/BasicEngine.java (93%)
create mode 100644 cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRecordActuator.java
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java (91%)
create mode 100644 cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineSetActuator.java
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/basic/abstracts/DataEngineValueActuator.java (100%)
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/basic/handler/DataEngineHandler.java (100%)
create mode 100644 cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRecordHandler.java
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java (92%)
create mode 100644 cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineSetHandler.java
rename {cloud-rule-server => cloud-rule-engine}/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java (95%)
rename {cloud-rule-server/src/main/java/com/muyu/servier => cloud-rule-engine/src/main/java/com/muyu/server}/ENGINE_VALUE_JDIES732842_V1.java (85%)
create mode 100644 cloud-rule-engine/src/test/java/com/muyu/AppTest.java
diff --git a/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleDataAddReq.java b/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleDataAddReq.java
index 24e7992..5aebf8c 100644
--- a/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleDataAddReq.java
+++ b/cloud-rule-common/src/main/java/com/muyu/common/domain/req/RuleDataAddReq.java
@@ -31,7 +31,7 @@ public class RuleDataAddReq {
/**
* 规则名称
*/
- @NotEmpty(message = "规则名称不可为空 ")
+ @NotEmpty(message = "规则名称不可为空")
@Schema(title = "规则名称" , type = "String",defaultValue = "XX规则"
,description = "规则名称一般为类型名称,方便使用者进行区分" ,requiredProperties = {"ruleName"})
private String ruleName;
diff --git a/cloud-rule-engine/pom.xml b/cloud-rule-engine/pom.xml
new file mode 100644
index 0000000..bb584a7
--- /dev/null
+++ b/cloud-rule-engine/pom.xml
@@ -0,0 +1,94 @@
+
+ 4.0.0
+
+ com.muyu
+ cloud-rule
+ 1.0.0
+
+
+ cloud-rule-engine
+ jar
+
+ cloud-rule-engine
+ http://maven.apache.org
+
+
+ UTF-8
+
+
+
+
+
+ com.muyu
+ cloud-common-rabbit
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-config
+
+
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-sentinel
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+
+
+ com.mysql
+ mysql-connector-j
+
+
+
+
+ com.muyu
+ cloud-common-datasource
+
+
+
+
+ com.muyu
+ cloud-common-datascope
+
+
+
+
+ com.muyu
+ cloud-common-log
+
+
+
+
+ com.muyu
+ cloud-common-api-doc
+
+
+
+ com.muyu
+ cloud-rule-common
+ 1.0.0
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
diff --git a/cloud-rule-engine/src/main/java/com/muyu/constant/GenerateConstant.java b/cloud-rule-engine/src/main/java/com/muyu/constant/GenerateConstant.java
new file mode 100644
index 0000000..63c4f91
--- /dev/null
+++ b/cloud-rule-engine/src/main/java/com/muyu/constant/GenerateConstant.java
@@ -0,0 +1,75 @@
+package com.muyu.constant;
+
+import com.muyu.common.domain.RuleData;
+import com.muyu.common.domain.RuleVersion;
+import com.muyu.common.security.utils.SecurityUtils;
+import org.springframework.stereotype.Component;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+/**
+ * @Author:蓬叁
+ * @Package:com.muyu.constant
+ * @Project:cloud-rule
+ * @name:GenerateConstant
+ * @Date:2024/8/30 上午12:49
+ * @Description: 规则引擎版本生成
+ */
+@Component
+public class GenerateConstant {
+
+ public static final String DATA_FIELD = "DataEngineValueActuator";
+ public static final String DATA_RECORD = "DataEngineRecordActuator";
+ public static final String DATA_SET = "DataEngineSetActuator";
+ public static final String ACTION_IMPORT = "import com.muyu.rule.engine.action.ActionDiscard;\n";
+ public static final String SCOPE_IMPORT = "import com.muyu.rule.engine.scope.DataModelEngine";
+ public static final String PACKAGE_PATH = "package com.muyu.generate;";
+
+ public static String getClassName(String versionCode){
+ String[] splits = versionCode.split("_");
+ String className="";
+ for (String split : splits) {
+ className += split.substring(0,1).toUpperCase()+split.substring(1);
+ }
+ return className;
+ }
+
+ public static String generateConstant(RuleData ruleData, RuleVersion ruleVersion){
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
+ String format = simpleDateFormat.format(new Date());
+ String level = selectType(ruleData.getRuleRegion());
+ return PACKAGE_PATH + "\n" +
+ ACTION_IMPORT + "\n" +
+ SCOPE_IMPORT+level+";\n" +
+ "\n" +
+ "/**\n" +
+ " * @Author: "+ SecurityUtils.getUsername() +"\n" +
+ " * @date: "+format+"\n" +
+ " * @Description: "+ruleVersion.getRuleVersionName()+ruleVersion.getRuleVersionCode()+"\n" +
+ " * @Version: 1.0\n" +
+ " */\n" +
+ "public class "+getClassName(ruleVersion.getRuleVersionType()) + " extends "+level+" {\n" +
+ " @Override\n" +
+ " public void run () {\n" +
+ " }\n" +
+ "}";
+ }
+
+ public static String selectType(String level){
+ String type = "";
+ switch (level) {
+ case "F":
+ type = DATA_FIELD;
+ break;
+ case "R":
+ type = DATA_RECORD;
+ break;
+ case "C":
+ type = DATA_SET;
+ break;
+ }
+ return type;
+ }
+
+}
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/Main.java b/cloud-rule-engine/src/main/java/com/muyu/engine/Main.java
similarity index 89%
rename from cloud-rule-server/src/main/java/com/muyu/engine/Main.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/Main.java
index 5daacaa..0dc7101 100644
--- a/cloud-rule-server/src/main/java/com/muyu/engine/Main.java
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/Main.java
@@ -2,7 +2,6 @@ package com.muyu.engine;
import com.muyu.common.domain.DataValue;
import com.muyu.engine.basic.BasicEngine;
-import com.muyu.servier.ENGINE_VALUE_JDIES732842_V1;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
@@ -20,7 +19,7 @@ public class Main {
static {
try {
- Class> aClass = Class.forName("com.muyu.servier.ENGINE_VALUE_JDIES732842_V1");
+ Class> aClass = Class.forName("com.muyu.server.ENGINE_VALUE_JDIES732842_V1");
try {
engineMap.put("ENGINE_VALUE_JDIES732842_V1",(BasicEngine) aClass.newInstance());
} catch (InstantiationException e) {
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/basic/BasicEngine.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/BasicEngine.java
similarity index 93%
rename from cloud-rule-server/src/main/java/com/muyu/engine/basic/BasicEngine.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/basic/BasicEngine.java
index 40efb18..3d13092 100644
--- a/cloud-rule-server/src/main/java/com/muyu/engine/basic/BasicEngine.java
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/BasicEngine.java
@@ -9,6 +9,7 @@ import com.muyu.engine.basic.handler.DataEngineValueHandler;
* @Project:cloud-rule
* @name:BasicEngin
* @Date:2024/8/29 下午3:13
+ * @Description: 规则引擎基准
*/
public interface BasicEngine {
diff --git a/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRecordActuator.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRecordActuator.java
new file mode 100644
index 0000000..d063ed4
--- /dev/null
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRecordActuator.java
@@ -0,0 +1,35 @@
+package com.muyu.engine.basic.abstracts;
+
+import com.muyu.common.domain.DataValue;
+import com.muyu.engine.basic.BasicEngine;
+import com.muyu.engine.basic.handler.DataEngineRecordHandler;
+import com.muyu.engine.basic.handler.DataEngineSetHandler;
+
+/**
+ * @Author:蓬叁
+ * @Package:com.muyu.engine.basic.abstracts
+ * @Project:cloud-rule
+ * @name:DataEngineSetActuator
+ * @Date:2024/8/30 上午11:13
+ * @Description: 记录
+ */
+public abstract class DataEngineRecordActuator implements BasicEngine {
+
+ public void set(DataValue dataValue){
+ DataEngineRecordHandler.set(dataValue);
+ }
+
+ //获取原始值
+ public DataValue get(){
+ return DataEngineRecordHandler.get();
+ }
+
+ @Override
+ public void execution() {
+ this.run();
+ this.remove();
+ }
+
+ public abstract void run();
+
+}
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java
similarity index 91%
rename from cloud-rule-server/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java
index bee9989..712c6c8 100644
--- a/cloud-rule-server/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineRowActuator.java
@@ -3,7 +3,6 @@ package com.muyu.engine.basic.abstracts;
import com.muyu.common.domain.DataValue;
import com.muyu.engine.basic.BasicEngine;
import com.muyu.engine.basic.handler.DataEngineRowHandler;
-import com.muyu.engine.basic.handler.DataEngineValueHandler;
/**
* @Author:蓬叁
diff --git a/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineSetActuator.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineSetActuator.java
new file mode 100644
index 0000000..f6686ea
--- /dev/null
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineSetActuator.java
@@ -0,0 +1,35 @@
+package com.muyu.engine.basic.abstracts;
+
+import com.muyu.common.domain.DataValue;
+import com.muyu.engine.basic.BasicEngine;
+import com.muyu.engine.basic.handler.DataEngineSetHandler;
+import com.muyu.engine.basic.handler.DataEngineValueHandler;
+
+/**
+ * @Author:蓬叁
+ * @Package:com.muyu.engine.basic.abstracts
+ * @Project:cloud-rule
+ * @name:DataEngineSetActuator
+ * @Date:2024/8/30 上午11:13
+ * @Description: 数据集
+ */
+public abstract class DataEngineSetActuator implements BasicEngine {
+
+ public void set(DataValue dataValue){
+ DataEngineSetHandler.set(dataValue);
+ }
+
+ //获取原始值
+ public DataValue get(){
+ return DataEngineSetHandler.get();
+ }
+
+ @Override
+ public void execution() {
+ this.run();
+ this.remove();
+ }
+
+ public abstract void run();
+
+}
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/basic/abstracts/DataEngineValueActuator.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineValueActuator.java
similarity index 100%
rename from cloud-rule-server/src/main/java/com/muyu/engine/basic/abstracts/DataEngineValueActuator.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/basic/abstracts/DataEngineValueActuator.java
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineHandler.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineHandler.java
similarity index 100%
rename from cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineHandler.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineHandler.java
diff --git a/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRecordHandler.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRecordHandler.java
new file mode 100644
index 0000000..b44d900
--- /dev/null
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRecordHandler.java
@@ -0,0 +1,36 @@
+package com.muyu.engine.basic.handler;
+
+import com.muyu.common.core.text.Convert;
+import com.muyu.common.domain.DataValue;
+
+/**
+ * @Author:蓬叁
+ * @Package:com.muyu.engine.basic.handler
+ * @Project:cloud-rule
+ * @name:DataEngineValueHandler
+ * @Date:2024/8/29 下午3:21
+ * @Description: 数据值作用域
+ */
+public class DataEngineRecordHandler {
+
+ public static void set(DataValue dataValue){
+ DataEngineHandler.set(dataValue);
+ }
+
+ public static DataValue get(){
+ return DataEngineHandler.get();
+ }
+
+ public static void remove(){
+ DataEngineHandler.remove();
+ }
+
+ public static Object getValue(){
+ return get().getValue();
+ }
+
+ public static Integer getIntegerValue(){
+ return Convert.toInt(getValue(),null);
+ }
+
+}
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java
similarity index 92%
rename from cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java
index 30262f9..70e3fd6 100644
--- a/cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineRowHandler.java
@@ -1,6 +1,5 @@
package com.muyu.engine.basic.handler;
-import com.muyu.common.core.text.Convert;
import com.muyu.common.domain.DataValue;
/**
diff --git a/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineSetHandler.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineSetHandler.java
new file mode 100644
index 0000000..d10ea46
--- /dev/null
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineSetHandler.java
@@ -0,0 +1,36 @@
+package com.muyu.engine.basic.handler;
+
+import com.muyu.common.core.text.Convert;
+import com.muyu.common.domain.DataValue;
+
+/**
+ * @Author:蓬叁
+ * @Package:com.muyu.engine.basic.handler
+ * @Project:cloud-rule
+ * @name:DataEngineValueHandler
+ * @Date:2024/8/29 下午3:21
+ * @Description: 数据值作用域
+ */
+public class DataEngineSetHandler {
+
+ public static void set(DataValue dataValue){
+ DataEngineHandler.set(dataValue);
+ }
+
+ public static DataValue get(){
+ return DataEngineHandler.get();
+ }
+
+ public static void remove(){
+ DataEngineHandler.remove();
+ }
+
+ public static Object getValue(){
+ return get().getValue();
+ }
+
+ public static Integer getIntegerValue(){
+ return Convert.toInt(getValue(),null);
+ }
+
+}
diff --git a/cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java
similarity index 95%
rename from cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java
rename to cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java
index 1a101d6..5d6bfe6 100644
--- a/cloud-rule-server/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java
+++ b/cloud-rule-engine/src/main/java/com/muyu/engine/basic/handler/DataEngineValueHandler.java
@@ -9,7 +9,7 @@ import com.muyu.common.domain.DataValue;
* @Project:cloud-rule
* @name:DataEngineValueHandler
* @Date:2024/8/29 下午3:21
- * @Description: 数据自作用域
+ * @Description: 数据值作用域
*/
public class DataEngineValueHandler {
diff --git a/cloud-rule-server/src/main/java/com/muyu/servier/ENGINE_VALUE_JDIES732842_V1.java b/cloud-rule-engine/src/main/java/com/muyu/server/ENGINE_VALUE_JDIES732842_V1.java
similarity index 85%
rename from cloud-rule-server/src/main/java/com/muyu/servier/ENGINE_VALUE_JDIES732842_V1.java
rename to cloud-rule-engine/src/main/java/com/muyu/server/ENGINE_VALUE_JDIES732842_V1.java
index 75953ab..f86b193 100644
--- a/cloud-rule-server/src/main/java/com/muyu/servier/ENGINE_VALUE_JDIES732842_V1.java
+++ b/cloud-rule-engine/src/main/java/com/muyu/server/ENGINE_VALUE_JDIES732842_V1.java
@@ -1,8 +1,7 @@
-package com.muyu.servier;
+package com.muyu.server;
import com.muyu.common.domain.DataValue;
import com.muyu.engine.basic.abstracts.DataEngineValueActuator;
-import com.muyu.engine.basic.handler.DataEngineValueHandler;
/**
* @Author:蓬叁
diff --git a/cloud-rule-engine/src/test/java/com/muyu/AppTest.java b/cloud-rule-engine/src/test/java/com/muyu/AppTest.java
new file mode 100644
index 0000000..34d0e0a
--- /dev/null
+++ b/cloud-rule-engine/src/test/java/com/muyu/AppTest.java
@@ -0,0 +1,38 @@
+package com.muyu;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/cloud-rule-server/pom.xml b/cloud-rule-server/pom.xml
index 838f91a..89d0fa8 100644
--- a/cloud-rule-server/pom.xml
+++ b/cloud-rule-server/pom.xml
@@ -81,6 +81,11 @@
cloud-rule-common
1.0.0
+
+ com.muyu
+ cloud-rule-engine
+ 1.0.0
+
diff --git a/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java b/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java
index 1942179..555d342 100644
--- a/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java
+++ b/cloud-rule-server/src/main/java/com/muyu/controller/RuleVersionController.java
@@ -12,6 +12,7 @@ import com.muyu.servier.RuleVersionService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.media.Schema;
import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
@@ -25,6 +26,7 @@ import java.util.List;
* @name:RuleVersionController
* @Date:2024/8/27 上午11:42
*/
+@Log4j2
@RestController
@RequestMapping("/ruleVersion")
@Tag(name = "规则版本控制层",description = "进行版本制定,查看等操作")
@@ -110,4 +112,19 @@ public class RuleVersionController {
return Result.success(null,"操作成功");
}
+ /**
+ * 生成规则版本代码
+ * @param ruleVersion
+ * @return 生成结果
+ */
+ @PostMapping("/generatedCode")
+ @Operation(summary = "生成规则版本代码",description = "通过名称和编码生成版本类")
+ public Result generatedCode(
+ @Validated @RequestBody RuleVersion ruleVersion
+ ){
+ return Result.success(ruleVersionService.generatedCode(ruleVersion));
+ }
+
+
+
}
diff --git a/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java b/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java
index f962dfa..36a71e8 100644
--- a/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java
+++ b/cloud-rule-server/src/main/java/com/muyu/servier/RuleVersionService.java
@@ -28,4 +28,6 @@ public interface RuleVersionService extends IService {
* @param activate 状态 SysIsYesNo
*/
public void settingVersionActivate(Long ruleVersionId, String activate);
+
+ RuleVersion generatedCode(RuleVersion ruleVersion);
}
diff --git a/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java b/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java
index f59ef7b..321ebbf 100644
--- a/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java
+++ b/cloud-rule-server/src/main/java/com/muyu/servier/impl/RuleVersionServiceImpl.java
@@ -9,7 +9,9 @@ import com.muyu.common.domain.RuleData;
import com.muyu.common.domain.RuleVersion;
import com.muyu.common.domain.req.RuleVersionUpdReq;
import com.muyu.common.domain.resp.RuleVersionResp;
+import com.muyu.constant.GenerateConstant;
import com.muyu.mapper.RuleVersionMapper;
+import com.muyu.servier.RuleDataService;
import com.muyu.servier.RuleVersionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -29,6 +31,7 @@ public class RuleVersionServiceImpl
implements RuleVersionService {
@Autowired private RuleVersionMapper ruleVersionMapper;
+ @Autowired private RuleDataService ruleDataService;
@Override
public List selectList(Long ruleId) {
@@ -68,4 +71,12 @@ public class RuleVersionServiceImpl
this.update(updateWrapper);
}
+ @Override
+ public RuleVersion generatedCode(RuleVersion ruleVersion) {
+ RuleData ruleData = ruleDataService.getById(ruleVersion.getRuleId());
+ ruleVersion.setRuleVersionType("generate"+"_"+ruleData.getRuleCoding()+"_"+ruleVersion.getRuleVersionCode());
+ ruleVersion.setRuleVersionText(GenerateConstant.generateConstant(ruleData,ruleVersion));
+ return ruleVersion;
+ }
+
}
diff --git a/pom.xml b/pom.xml
index 6927c42..bd08842 100644
--- a/pom.xml
+++ b/pom.xml
@@ -18,6 +18,7 @@
cloud-rule-common
cloud-rule-server
cloud-rule-remote
+ cloud-rule-engine