From 00534e271ae7ae46569277ca55fee5508e21ebf5 Mon Sep 17 00:00:00 2001 From: rouchen <3133657697@qq.com> Date: Wed, 15 May 2024 22:29:47 +0800 Subject: [PATCH] =?UTF-8?q?feat=20=E9=87=8D=E6=9E=84=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=E6=B1=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/constant/ServiceNameConstants.java | 2 +- muyu-modules/muyu-data-standard/pom.xml | 34 ++++++ .../muyu/common/data/standard/DataModel.java | 47 +++++++++ .../common/data/standard/DataSetModel.java | 41 ++++++++ .../common/data/standard/RecordModel.java | 60 +++++++++++ .../com/muyu/common/data/util/EtlUtils.java | 25 +++++ .../source/client/config/KvtClientRunner.java | 30 +++--- .../pool/ConnectionPoolContext.java | 65 ++++++++++++ .../service/ConnectionPoolManagement.java | 97 ++++++++++++++++++ .../main/java/com/muyu/source/domain/Kvt.java | 4 + .../remote/factory/DataManagerFactory.java | 2 - ...ot.autoconfigure.AutoConfiguration.imports | 2 +- .../muyu/source/controller/KvtController.java | 3 + .../muyu-rule-engine-clinet/pom.xml | 6 ++ .../main/java/com/muyu/engine/java/Ss_dd.java | 22 ++++ .../custom/engine_custom_email_ss.class | Bin 737 -> 0 bytes .../java/com/muyu/engine/custom/null_ss.class | Bin 555 -> 0 bytes .../null_qq.class => java/Ss_dd.class} | Bin 555 -> 549 bytes .../controller/RuleEngineController.java | 4 +- .../impl/RuleEngineVersionServiceImpl.java | 79 +++++++++++++- muyu-modules/pom.xml | 1 + 21 files changed, 497 insertions(+), 27 deletions(-) create mode 100644 muyu-modules/muyu-data-standard/pom.xml create mode 100644 muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java create mode 100644 muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java create mode 100644 muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java create mode 100644 muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java create mode 100644 muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java create mode 100644 muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java create mode 100644 muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/Ss_dd.java delete mode 100644 muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/engine_custom_email_ss.class delete mode 100644 muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/null_ss.class rename muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/{custom/null_qq.class => java/Ss_dd.class} (51%) diff --git a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java index 383deeb..f275e86 100644 --- a/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java +++ b/muyu-common/muyu-common-core/src/main/java/com/muyu/common/core/constant/ServiceNameConstants.java @@ -22,7 +22,7 @@ public class ServiceNameConstants { */ public static final String FILE_SERVICE = "muyu-file"; - public static final String MUYU_KVT = "muyu-dataSource"; + public static final String MUYU_KVT = "muyu-source"; diff --git a/muyu-modules/muyu-data-standard/pom.xml b/muyu-modules/muyu-data-standard/pom.xml new file mode 100644 index 0000000..4a7f8cb --- /dev/null +++ b/muyu-modules/muyu-data-standard/pom.xml @@ -0,0 +1,34 @@ + + + 4.0.0 + + com.muyu + muyu-modules + 3.6.3 + + + muyu-data-standard + muyu-data-standard数据标准包 + + + 17 + 17 + UTF-8 + + + + + + com.muyu + muyu-common-core + + + + org.projectlombok + lombok + provided + + + \ No newline at end of file diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java new file mode 100644 index 0000000..f997642 --- /dev/null +++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataModel.java @@ -0,0 +1,47 @@ +package com.muyu.common.data.standard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 数据模型 DataModel + * + * @author LeYang + * on 2024/5/8 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataModel { + + + /** + * 数据键 + */ + private String key; + + /** + * 数据值 + */ + private Object value; + + /** + * 源标准-枚举 数据库的标准 + */ + private String sourceType; + + /** + * 处理标准 枚举 + */ + + private String processType; + + /** + * 处理类型 + */ + private Class processClass; + +} diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java new file mode 100644 index 0000000..90591ce --- /dev/null +++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/DataSetModel.java @@ -0,0 +1,41 @@ +package com.muyu.common.data.standard; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 一页 DataSetModel + * + * @author LeYang + * on 2024/5/8 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class DataSetModel { + //[[DataModel,DataModel,DataModel],[DataModel,DataModel,DataModel] + /** + * 集合 + */ + private RecordModel[] dataSetModel = null; + + public int setLength; + + + public static DataSetModel build(int dataSetModelLength){ + return build(new RecordModel[dataSetModelLength]); + } + + public static DataSetModel build(RecordModel[] dataSetModel){ + return DataSetModel.builder() + .dataSetModel(dataSetModel) + .setLength(dataSetModel.length) + .build(); + } + + + +} diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java new file mode 100644 index 0000000..1f89904 --- /dev/null +++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/standard/RecordModel.java @@ -0,0 +1,60 @@ +package com.muyu.common.data.standard; + +import com.muyu.common.data.util.EtlUtils; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Arrays; + +/** + * 记录模型 RecordModel + * + * @author LeYang + * on 2024/5/8 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class RecordModel { + //[DataModel,DataModel,DataModel] + + /** + * 不用数组处理 1.集合由动态扩容 减少扩容次数 + * 2.初始化 数组的话一个就是一个 集合是一个的话 是16 多占15个 初始化是16 + * 指定主键 + */ + private String[] keys; + + /** + * 主键数据 + */ + private DataModel[] keyForValues; + + /** + * 记录数据 由多个模型组成 + */ + private DataModel[] dataModelArr=null; + + /** + * 记录长度 + */ + private int recordLength; + + public static RecordModel build(int dataModelLength,String[] keys){ + return build(new DataModel[dataModelLength],keys); + } + + public static RecordModel build(DataModel[] dataModelArr,String[] keys){ + return RecordModel.builder() + .dataModelArr(dataModelArr) + .recordLength(dataModelArr.length) + .keys(keys) + .keyForValues( + Arrays.stream(dataModelArr).filter(dataModel -> EtlUtils.valAsArr(keys,dataModel.getKey())) + .toArray(value -> new DataModel[0])) + .build(); + } +} diff --git a/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java new file mode 100644 index 0000000..f50d111 --- /dev/null +++ b/muyu-modules/muyu-data-standard/src/main/java/com/muyu/common/data/util/EtlUtils.java @@ -0,0 +1,25 @@ +package com.muyu.common.data.util; + +/** + * etl工具类 EtlUtils + * + * @author Yangle + * Date 2024/5/15 14:26 + */ +public class EtlUtils { + + /** + * 判断可以key是否存在数组当中 + * @param keys key数值 + * @param key key值 + * @return 是否存在 + */ + public static boolean valAsArr(String[] keys,String key){ + for (String _key : keys) { + if (_key.equals(key)){ + return true; + } + } + return false; + } +} diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java index d03a89f..823333e 100644 --- a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/client/config/KvtClientRunner.java @@ -9,8 +9,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.ApplicationArguments; import org.springframework.boot.ApplicationRunner; -import java.sql.Connection; -import java.util.HashMap; import java.util.List; /** @@ -26,26 +24,22 @@ public class KvtClientRunner implements ApplicationRunner { private RemoteDataManagerService remoteDataManagerService; - static HashMap map = new HashMap<>(); @Override - public void run(ApplicationArguments args) throws Exception { - - - Result> listResult = remoteDataManagerService.selectKvt(); - List data = listResult.getData(); - data.stream().forEach(kvt -> { - DataSourceConfig.init(kvt) ; - }); - - - - - - - + public void run(ApplicationArguments args) { + Result> list = remoteDataManagerService.selectKvt(); + List data = list.getData(); + data = data.stream().filter(kvt -> kvt.getType() == 1).toList(); + if(data != null) { + data.stream().forEach(kvt -> { + DataSourceConfig.init(kvt) ; + log.info("初始化成功"); + }); + } else { + log.warn("数据源为空"); + } diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java new file mode 100644 index 0000000..8745521 --- /dev/null +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/pool/ConnectionPoolContext.java @@ -0,0 +1,65 @@ +package com.muyu.source.connection.pool; + +import com.alibaba.druid.pool.DruidDataSource; +import com.muyu.common.core.exception.ServiceException; +import com.muyu.common.core.utils.StringUtils; +import lombok.extern.log4j.Log4j2; + +import java.util.concurrent.ConcurrentHashMap; + +/** + * 连接池上下文 ConnectionPoolContext + * + * @author Yangle + * Date 2024/5/15 15:05 + */ +@Log4j2 +public class ConnectionPoolContext { + + private ConnectionPoolContext(){ + + } + + /** + * 进行存储所有连接的容器 + */ + private final static ConcurrentHashMap connectionPoolContext= + new ConcurrentHashMap<>(16); + + /** + * 新增连接池 + * @param key 键 + * @param druidDataSource 连接池 + */ + public static void setConnection(String key,DruidDataSource druidDataSource){ + if (connectionPoolContext.containsKey(key)){ + throw new ServiceException( + StringUtils.format("连接池key-[{}]已经存在",key) + ); + } + connectionPoolContext.put(key,druidDataSource); + } + + /** + * 通过key获取连接池 + * @param key 键 + * @return + */ + public static DruidDataSource getConnection(String key){ + return connectionPoolContext.get(key); + } + + /** + * 通过key删除连接池 + * @param key + */ + public static void removeConnection(String key){ + try( DruidDataSource druidDataSource= connectionPoolContext.remove(key)){ + druidDataSource.close(); + }catch (RuntimeException e){ + log.warn("连接池关闭异常:[{}]-[{}]",key,e.getMessage(),e); + } + } + + +} diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java new file mode 100644 index 0000000..1a1ca31 --- /dev/null +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-client/src/main/java/com/muyu/source/connection/service/ConnectionPoolManagement.java @@ -0,0 +1,97 @@ +package com.muyu.source.connection.service; + +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.pool.DruidPooledConnection; +import com.muyu.source.domain.Kvt; +import lombok.extern.log4j.Log4j2; +import org.springframework.stereotype.Component; + +import java.sql.SQLException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.muyu.source.connection.pool.ConnectionPoolContext.getConnection; + +/** + * 连接池的管理 ConnectionPoolManagement + * + * @author Yangle + * Date 2024/5/15 15:19 + */ +@Log4j2 +@Component +public class ConnectionPoolManagement { + private final static ThreadLocal> connectionToKey + = new ThreadLocal<>(); + + public Map getConnectionToKey() { + Map dataMap = connectionToKey.get(); + if (dataMap == null){ + synchronized (connectionToKey){ + dataMap =new HashMap<>(); + connectionToKey.set(dataMap); + } + } + return dataMap; + } + /** + * 初始化 + */ + public void init(List kvts) { + //初始化连接池 + } + + + /** + * 新增 + */ + public void createPool() { + + } + + /** + * 获取 + */ + public DruidPooledConnection get(Kvt kvt){ + return get(kvt.getKey()); + } + + public DruidPooledConnection get(String key){ + DruidDataSource druidDataSource= getConnection(key);; + DruidPooledConnection connection =null; + try { + connection = druidDataSource.getConnection(); + return connection; + } catch (SQLException e) { + log.warn("链接获取异常:[{}]-[{}]",key,e.getMessage(),e); + throw new RuntimeException(e); + }finally { + getConnectionToKey().put(connection,key); + } + } + /** + * 归还 + */ + public void returnConnection(DruidPooledConnection connection){ + try { + connection.close(); + } catch (SQLException e) { + log.warn("归还连接异常:[{}]-[{}]", getConnectionToKey().get(connection),e.getMessage(),e); + + throw new RuntimeException(e); + }finally { + getConnectionToKey().remove(connection); + } + } + /** + * 删除 + */ + public void remove(DruidPooledConnection druidPooledConnection){ + + } + + public void remove(String key){ + + } +} diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-common/src/main/java/com/muyu/source/domain/Kvt.java b/muyu-modules/muyu-dataSource/muyu-dataSource-common/src/main/java/com/muyu/source/domain/Kvt.java index aba0ec6..bb9d552 100644 --- a/muyu-modules/muyu-dataSource/muyu-dataSource-common/src/main/java/com/muyu/source/domain/Kvt.java +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-common/src/main/java/com/muyu/source/domain/Kvt.java @@ -175,4 +175,8 @@ public class Kvt extends BaseEntity { .build(); } + public String getKey(){ + return id+name+systemName; + } + } diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/java/com/muyu/source/remote/factory/DataManagerFactory.java b/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/java/com/muyu/source/remote/factory/DataManagerFactory.java index aa88da3..7ca3200 100644 --- a/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/java/com/muyu/source/remote/factory/DataManagerFactory.java +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/java/com/muyu/source/remote/factory/DataManagerFactory.java @@ -20,8 +20,6 @@ public class DataManagerFactory implements FallbackFactory> selectKvt() { return Result.error(cause.getMessage()); diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 1d15c89..a3d5c5f 100644 --- a/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-remote/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1 +1 @@ -com.muyu.source.remote.factory.DataManagerFactory +com.muyu.source.remote.factory.DataManagerFactory \ No newline at end of file diff --git a/muyu-modules/muyu-dataSource/muyu-dataSource-server/src/main/java/com/muyu/source/controller/KvtController.java b/muyu-modules/muyu-dataSource/muyu-dataSource-server/src/main/java/com/muyu/source/controller/KvtController.java index f99f221..fbf2d9f 100644 --- a/muyu-modules/muyu-dataSource/muyu-dataSource-server/src/main/java/com/muyu/source/controller/KvtController.java +++ b/muyu-modules/muyu-dataSource/muyu-dataSource-server/src/main/java/com/muyu/source/controller/KvtController.java @@ -22,6 +22,7 @@ import com.muyu.source.service.KvtService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiOperation; +import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -39,6 +40,7 @@ Controller @Api(tags = "kvt") @RestController @RequestMapping("/kvt") +@Log4j2 public class KvtController extends BaseController { @Autowired private KvtService kvtService; @@ -59,6 +61,7 @@ public class KvtController extends BaseController { @PostMapping("/selectKvt") public Result> selectKvt(){ List list = kvtService.list(); + log.info(list); return Result.success(list); } diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-clinet/pom.xml b/muyu-modules/muyu-rule-engine/muyu-rule-engine-clinet/pom.xml index 383159d..141cb35 100644 --- a/muyu-modules/muyu-rule-engine/muyu-rule-engine-clinet/pom.xml +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-clinet/pom.xml @@ -24,6 +24,12 @@ 3.6.3 compile + + com.alibaba + druid + 1.2.16 + compile + diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/Ss_dd.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/Ss_dd.java new file mode 100644 index 0000000..056f52c --- /dev/null +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/Ss_dd.java @@ -0,0 +1,22 @@ +package com.muyu.engine.java; + + +import com.muyu.engine.action.ActionDiscard; +import com.muyu.engine.scope.DataModelEngine; + +/** + * @Author: yl + * @date: 2024/5/6 + * @Description: dd-dd + * @Version: 1.0 + */ +public class Ss_dd extends DataModelEngine { + @Override + public void execution () { + Object value = getValue(); + + if (value == null || "".equals(value) || "null".equals(value)) { + throw new ActionDiscard(); + } + } +} \ No newline at end of file diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/engine_custom_email_ss.class b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/engine_custom_email_ss.class deleted file mode 100644 index 66d548ca66106c20cade7fd6f82d4de7417f3e43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 737 zcmZva%Wl&^6o&sv+K%HoG;B z4$_pt8Y$fuVWt>1nqK!ryb*pV;*tMsc%r24lyCuS92E!aa2YCp9eSs!RuKh}WSXHi zmj;Rdd=kXErzc889Sa-eFr7|qY~muvB?p&rg`t{b7M&UR*hs^eXw82jAyyENI$qzx zRR-9&hU*+R9NfgM#fWl8s*ie|iI9?8!2C|gdud^ZVJXhSkmEMP&iRT7se>f;ALheB zkV-K*w$VV5RF9|+3~OEL&eJR!s>zWUhO|>sZUBpb3LV)*J(6vaLU^lB5Q) z+nRxQKcehbXQ;Kmq2_M2XV`uZ$E};mJFI?2B9Y7;{O7Iv#oys diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/null_ss.class b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/null_ss.class deleted file mode 100644 index 6fde98f1f5762ed12bfbdf70f9c8b74503bcd43c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 555 zcmZWm+b#o96kVq+(@v+?d-Mo-s`-+KRf|g#jJ@0k_J*1deF--FM_tyR#(cAe$(}(6N;cColPF` zo#0e@TXB`4cg6MHXpJFRsUDa}BV)j{kcGuC^_N4aFd|xCdEQAFGNhX_I^dp?3`3P_ zt;H|6<8i;~>@`|aM9XRPF~CF~0|smhgBW7S|FqSkuIo2x33;x#M}&pSf0F8P8p8}J zJ=MSnL;3GoTtsf*JL|FAbVI?rrzVO>5^95vW$3Sw1iPx;kllUW@TiiJmr^K=W60Gb zF3xs%Cw?<9{cFk3TNuoGpt?eCyBcnNX|SY^L5Xxr&^LfA)B2Mgqim8q34or3d$3yy z7{bpqiq*a0jEd_=19+Tf9U64J^B$gKK0TQ9QcG=(A=@#7s6)6z6HA ZP5B_^P@the28lO}8<;X^$V}W``T+X2dFB8B diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/null_qq.class b/muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/java/Ss_dd.class similarity index 51% rename from muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/custom/null_qq.class rename to muyu-modules/muyu-rule-engine/muyu-rule-engine-common/src/main/java/com/muyu/engine/java/com/muyu/engine/java/Ss_dd.class index cd81ef06355ef79345190d2e445e804ad9c044ae..14a85ba6b4b6d0b8a7478b2c62356cb5829060e7 100644 GIT binary patch delta 48 zcmZ3@vXo^)th7{eey)CQX=SN?YF>I~UaEdpVp*boaB+M}%EX#KY+PX0I~UaEd_X>kcqD6cdpC%&+7V#Oa09w>Wq72|3E DE_)Rz diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/RuleEngineController.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/RuleEngineController.java index 87b893c..b63dc80 100644 --- a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/RuleEngineController.java +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/controller/RuleEngineController.java @@ -77,11 +77,11 @@ public class RuleEngineController extends BaseController { */ @RequiresPermissions("rule_engine:engine:add") @Log(title = "规则引擎", businessType = BusinessType.INSERT) - @PostMapping + @PostMapping("/add") @ApiOperation("新增规则引擎") public Result add(@RequestBody RuleEngineSaveReq ruleEngineSaveReq) throws Exception { ruleEngineService.add(RuleEngine.saveBuild(ruleEngineSaveReq)); - return Result.success(); + return Result.success("添加成功"); } /** diff --git a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java index 1e4db8a..b99ce3e 100644 --- a/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java +++ b/muyu-modules/muyu-rule-engine/muyu-rule-engine-server/src/main/java/com/muyu/engine/service/impl/RuleEngineVersionServiceImpl.java @@ -13,6 +13,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.tools.*; +import java.io.BufferedWriter; +import java.io.FileWriter; import java.net.URI; import java.util.Arrays; import java.util.List; @@ -165,13 +167,32 @@ private RuleEngineService ruleEngineService; // // } - private String url ="D:\\work\\zglkh\\cloud-server\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-common\\src\\main\\java\\com\\muyu\\engine\\java"; + + + private String url ="D:\\work\\zglkh\\cloud-server\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-common\\src\\main\\java\\com\\muyu\\engine\\java\\"; + private String url1 ="D:\\work\\zglkh\\cloud-server\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-common\\target\\classes\\java\\"; //生产源文件 public void writeCodeAdd(RuleEngineVersion ruleEngineVersion) { try { - //编译 - String className = ruleEngineVersion.getVersionCode(); + String originalVersionCode = ruleEngineVersion.getVersionCode(); + // 提取第一个字符并转换为大写 + String firstCharUpperCase = originalVersionCode.substring(0, 1).toUpperCase(); + // 截取从第二个字符到末尾的子串 + String restOfVersionCode = originalVersionCode.substring(1); + // 将首字母大写和剩余部分拼接起来 + String newVersionCode = firstCharUpperCase + restOfVersionCode; + + String className = newVersionCode; + + //编译 + String path=url+className+".java"; + + BufferedWriter bufferedWriter = new BufferedWriter(new FileWriter(path)); + // 写入内容 + bufferedWriter.write(ruleEngineVersion.getCodeIng()); + // 关闭流 + bufferedWriter.close(); //编译内容 String content = ruleEngineVersion.getCodeIng(); // 指定输出目录 @@ -215,4 +236,56 @@ private RuleEngineService ruleEngineService; return code; } } + + + + + + + + + + + +// +// private String url ="D:\\work\\zglkh\\cloud-server\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-common\\src\\main\\java\\com\\muyu\\engine\\java"; +// private String url1 ="D:\\work\\zglkh\\cloud-server\\muyu-modules\\muyu-rule-engine\\muyu-rule-engine-common\\target\\classes"; +// // 验证类名,防止路径遍历 +// // 生产源文件 +// public void writeCodeAdd(RuleEngineVersion ruleEngineVersion) { +// try { +// +// String className = newVersionCode + ".java"; +// String content = ruleEngineVersion.getCodeIng(); +// JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); +// StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null); +// try { +// // 写入文件 +// Path filePath = Paths.get(url, className); +// Files.write(filePath, content.getBytes(StandardCharsets.UTF_8)); +// // 编译 +// Iterable options = Arrays.asList("-d", url); +// JavaFileObject sourceFileObject = new JavaSourceFromString(className, content); +// JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, options, null, Arrays.asList(sourceFileObject)); +// boolean success = task.call(); +// log.info("编译结果: " + (success ? "成功" : "失败")); +// } catch (Exception e) { +// log.error("编译过程中发生错误", e); +// } finally { +// fileManager.close(); +// } +// } catch (Exception e) { +// log.error("写入代码或处理过程中发生错误", e); +// } +// } + + + + + + + + + + } diff --git a/muyu-modules/pom.xml b/muyu-modules/pom.xml index 255b38e..6f1574c 100644 --- a/muyu-modules/pom.xml +++ b/muyu-modules/pom.xml @@ -16,6 +16,7 @@ muyu-dataSource muyu-rule-engine muyu-unit + muyu-data-standard muyu-modules