feat: 引擎初始化
commit
e13b8c4dd3
|
@ -0,0 +1,31 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-rule</artifactId>
|
||||
<version>3.6.3</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>muyu-rule-common</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- 系统公共核心包 -->
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-core</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-security</artifactId>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
</project>
|
|
@ -0,0 +1,74 @@
|
|||
package com.muyu.rule.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 引擎版本表
|
||||
*
|
||||
* @ClassName EngineVersion
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/5/6 20:41
|
||||
*/
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@TableName("engineversion")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel(value = "EngineVersion", description = "引擎版本")
|
||||
public class EngineVersion extends BaseEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 主键 */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty(name = "主键", value = "主键")
|
||||
private Long id;
|
||||
/** 规则引擎id */
|
||||
@Excel(name = "规则引擎id")
|
||||
@ApiModelProperty(name = "规则引擎id", value = "规则引擎id")
|
||||
private Long ruleId;
|
||||
/** 版本类 */
|
||||
@Excel(name = "版本类")
|
||||
@ApiModelProperty(name = "版本类", value = "版本类")
|
||||
private String versionCode;
|
||||
/** 版本名称 */
|
||||
@Excel(name = "版本名称")
|
||||
@ApiModelProperty(name = "版本名称", value = "版本名称")
|
||||
private String name;
|
||||
/** 版本CODE */
|
||||
@Excel(name = "版本CODE")
|
||||
@ApiModelProperty(name = "版本CODE", value = "版本CODE")
|
||||
private String code;
|
||||
/** 是否激活 */
|
||||
@Excel(name = "是否激活")
|
||||
@ApiModelProperty(name = "是否激活", value = "是否激活")
|
||||
private String isActivate;
|
||||
/** 版本状态 */
|
||||
@Excel(name = "版本状态")
|
||||
@ApiModelProperty(name = "版本状态", value = "版本状态")
|
||||
private String status;
|
||||
/** 描述 */
|
||||
@Excel(name = "描述")
|
||||
@ApiModelProperty(name = "描述", value = "描述")
|
||||
private String description;
|
||||
/** */
|
||||
@Excel(name = "引擎编码")
|
||||
@ApiModelProperty(name = "引擎编码", value = "引擎编码")
|
||||
private String codeIng;
|
||||
/** 是否测试 */
|
||||
@Excel(name = "是否测试")
|
||||
@ApiModelProperty(name = "是否测试", value = "是否测试")
|
||||
private String isTest;
|
||||
}
|
|
@ -0,0 +1,131 @@
|
|||
package com.muyu.rule.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.rule.domain.red.RuleengineEditReq;
|
||||
import com.muyu.rule.domain.red.RuleengineQueryReq;
|
||||
import com.muyu.rule.domain.red.RuleengineSaveReq;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 规则引擎对象 ruleengine
|
||||
*
|
||||
* @author Wan
|
||||
* @date 2024-04-24
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@TableName("ruleengine")
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ApiModel(value = "Ruleengine", description = "规则引擎")
|
||||
public class Ruleengine extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** */
|
||||
@TableId(value = "id",type = IdType.AUTO)
|
||||
@ApiModelProperty(name = "主键", value = "主键")
|
||||
private Long id;
|
||||
|
||||
/** 规则名称 */
|
||||
@Excel(name = "规则名称")
|
||||
@ApiModelProperty(name = "规则名称", value = "规则名称")
|
||||
private String name;
|
||||
|
||||
/** 引擎编码 */
|
||||
@Excel(name = "引擎编码")
|
||||
@ApiModelProperty(name = "引擎编码", value = "引擎编码")
|
||||
private String code;
|
||||
|
||||
/** 规则类型 */
|
||||
@Excel(name = "规则类型")
|
||||
@ApiModelProperty(name = "规则类型", value = "规则类型")
|
||||
private String type;
|
||||
|
||||
/** 规则作用域 */
|
||||
@Excel(name = "规则作用域")
|
||||
@ApiModelProperty(name = "规则作用域", value = "规则作用域")
|
||||
private String level;
|
||||
|
||||
|
||||
/** 是否激活 */
|
||||
@Excel(name = "是否激活")
|
||||
@ApiModelProperty(name = "是否激活", value = "是否激活")
|
||||
private String isActivate;
|
||||
|
||||
/** 规则状态 */
|
||||
@Excel(name = "规则状态")
|
||||
@ApiModelProperty(name = "规则状态", value = "规则状态")
|
||||
private String status;
|
||||
|
||||
/** 规则描述 */
|
||||
@Excel(name = "规则描述")
|
||||
@ApiModelProperty(name = "规则描述", value = "规则描述")
|
||||
private String description;
|
||||
|
||||
/** 备注 */
|
||||
@Excel(name = "编码")
|
||||
@ApiModelProperty(name = "编码", value = "编码")
|
||||
private String engineCode;
|
||||
/**
|
||||
* 查询构造器
|
||||
*/
|
||||
public static Ruleengine queryBuild(RuleengineQueryReq ruleengineQueryReq){
|
||||
return Ruleengine.builder()
|
||||
.name(ruleengineQueryReq.getName())
|
||||
.code(ruleengineQueryReq.getCode())
|
||||
.type(ruleengineQueryReq.getType())
|
||||
.level(ruleengineQueryReq.getLevel())
|
||||
.isActivate(ruleengineQueryReq.getIsActivate())
|
||||
.status(ruleengineQueryReq.getStatus())
|
||||
.description(ruleengineQueryReq.getDescription())
|
||||
.remark(ruleengineQueryReq.getRemark())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加构造器
|
||||
*/
|
||||
public static Ruleengine saveBuild(RuleengineSaveReq ruleengineSaveReq){
|
||||
return Ruleengine.builder()
|
||||
.name(ruleengineSaveReq.getName())
|
||||
.code(ruleengineSaveReq.getCode())
|
||||
.type(ruleengineSaveReq.getType())
|
||||
.level(ruleengineSaveReq.getLevel())
|
||||
.isActivate(ruleengineSaveReq.getIsActivate())
|
||||
.status(ruleengineSaveReq.getStatus())
|
||||
.description(ruleengineSaveReq.getDescription())
|
||||
.remark(ruleengineSaveReq.getRemark())
|
||||
.build();
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改构造器
|
||||
*/
|
||||
public static Ruleengine editBuild(Long id, RuleengineEditReq ruleengineEditReq){
|
||||
return Ruleengine.builder()
|
||||
.id(id)
|
||||
.name(ruleengineEditReq.getName())
|
||||
.code(ruleengineEditReq.getCode())
|
||||
.type(ruleengineEditReq.getType())
|
||||
.level(ruleengineEditReq.getLevel())
|
||||
.isActivate(ruleengineEditReq.getIsActivate())
|
||||
.status(ruleengineEditReq.getStatus())
|
||||
.description(ruleengineEditReq.getDescription())
|
||||
.remark(ruleengineEditReq.getRemark())
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.muyu.rule.domain.model;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @ClassName RuleContentModel
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/5/4 14:10
|
||||
*/
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class RuleContentModel {
|
||||
private Long id;
|
||||
/** 规则ID*/
|
||||
private Long ruleId;
|
||||
/** 规则内容*/
|
||||
private String ruleContent;
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
package com.muyu.rule.domain.red;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.domain.Ruleengine;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 规则详情
|
||||
*
|
||||
* @ClassName EngineVersion
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/5/6 20:41
|
||||
*/
|
||||
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "EngineVersionReq", description = "规则详情")
|
||||
public class EngineVersionReq{
|
||||
|
||||
private Ruleengine ruleengine;
|
||||
|
||||
private List<EngineVersion> engineVersionList;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.muyu.rule.domain.red;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @ClassName RuleContentReq
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/5/4 14:11
|
||||
*/
|
||||
|
||||
@Data
|
||||
public class RuleContentReq {
|
||||
|
||||
private Long ruleId;
|
||||
|
||||
private String ruleContent;
|
||||
}
|
|
@ -0,0 +1,60 @@
|
|||
package com.muyu.rule.domain.red;
|
||||
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 规则引擎对象 ruleengine
|
||||
*
|
||||
* @author Wan
|
||||
* @date 2024-04-24
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "RuleengineEditReq", description = "规则引擎")
|
||||
public class RuleengineEditReq extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 规则名称 */
|
||||
@ApiModelProperty(name = "规则名称", value = "规则名称")
|
||||
private String name;
|
||||
/** 引擎编码 */
|
||||
@Excel(name = "引擎编码")
|
||||
@ApiModelProperty(name = "引擎编码", value = "引擎编码")
|
||||
private String code;
|
||||
|
||||
/** 规则类型 */
|
||||
@ApiModelProperty(name = "规则类型", value = "规则类型")
|
||||
private String type;
|
||||
|
||||
/** 规则作用域 */
|
||||
@Excel(name = "规则作用域")
|
||||
@ApiModelProperty(name = "规则作用域", value = "规则作用域")
|
||||
private String level;
|
||||
/** 是否激活 */
|
||||
@ApiModelProperty(name = "是否激活", value = "是否激活")
|
||||
private String isActivate;
|
||||
|
||||
/** 规则状态 */
|
||||
@ApiModelProperty(name = "规则状态", value = "规则状态")
|
||||
private String status;
|
||||
|
||||
/** 规则描述 */
|
||||
@ApiModelProperty(name = "规则描述", value = "规则描述")
|
||||
private String description;
|
||||
|
||||
/** 备注 */
|
||||
@Excel(name = "备注")
|
||||
@ApiModelProperty(name = "备注", value = "备注")
|
||||
private String remark;
|
||||
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package com.muyu.rule.domain.red;
|
||||
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 规则引擎对象 ruleengine
|
||||
*
|
||||
* @author Wan
|
||||
* @date 2024-04-24
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "RuleengineQueryReq", description = "规则引擎")
|
||||
public class RuleengineQueryReq extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** 规则名称 */
|
||||
@ApiModelProperty(name = "规则名称", value = "规则名称")
|
||||
private String name;
|
||||
/** 引擎编码 */
|
||||
@Excel(name = "引擎编码")
|
||||
@ApiModelProperty(name = "引擎编码", value = "引擎编码")
|
||||
private String code;
|
||||
|
||||
/** 规则类型 */
|
||||
@ApiModelProperty(name = "规则类型", value = "规则类型")
|
||||
private String type;
|
||||
|
||||
/** 规则作用域 */
|
||||
@Excel(name = "规则作用域")
|
||||
@ApiModelProperty(name = "规则作用域", value = "规则作用域")
|
||||
private String level;
|
||||
/** 是否激活 */
|
||||
@ApiModelProperty(name = "是否激活", value = "是否激活")
|
||||
private String isActivate;
|
||||
|
||||
/** 规则状态 */
|
||||
@ApiModelProperty(name = "规则状态", value = "规则状态")
|
||||
private String status;
|
||||
|
||||
/** 规则描述 */
|
||||
@ApiModelProperty(name = "规则描述", value = "规则描述")
|
||||
private String description;
|
||||
|
||||
/** 备注 */
|
||||
@Excel(name = "备注")
|
||||
@ApiModelProperty(name = "备注", value = "备注")
|
||||
private String remark;
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package com.muyu.rule.domain.red;
|
||||
|
||||
import com.muyu.common.core.annotation.Excel;
|
||||
import com.muyu.common.core.web.domain.BaseEntity;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import lombok.experimental.SuperBuilder;
|
||||
|
||||
/**
|
||||
* 规则引擎对象 ruleengine
|
||||
*
|
||||
* @author Wan
|
||||
* @date 2024-04-24
|
||||
*/
|
||||
@Data
|
||||
@SuperBuilder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "RuleengineSaveReq", description = "规则引擎")
|
||||
public class RuleengineSaveReq extends BaseEntity {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/** */
|
||||
|
||||
@ApiModelProperty(name = "", value = "")
|
||||
private Long id;
|
||||
|
||||
/** 规则名称 */
|
||||
|
||||
@ApiModelProperty(name = "规则名称", value = "规则名称")
|
||||
private String name;
|
||||
/** 引擎编码 */
|
||||
@Excel(name = "引擎编码")
|
||||
@ApiModelProperty(name = "引擎编码", value = "引擎编码")
|
||||
private String code;
|
||||
|
||||
/** 规则类型 */
|
||||
|
||||
@ApiModelProperty(name = "规则类型", value = "规则类型")
|
||||
private String type;
|
||||
|
||||
/** 规则作用域 */
|
||||
@Excel(name = "规则作用域")
|
||||
@ApiModelProperty(name = "规则作用域", value = "规则作用域")
|
||||
private String level;
|
||||
/** 是否激活 */
|
||||
|
||||
@ApiModelProperty(name = "是否激活", value = "是否激活")
|
||||
private String isActivate;
|
||||
|
||||
/** 规则状态 */
|
||||
|
||||
@ApiModelProperty(name = "规则状态", value = "规则状态")
|
||||
private String status;
|
||||
|
||||
/** 规则描述 */
|
||||
|
||||
@ApiModelProperty(name = "规则描述", value = "规则描述")
|
||||
private String description;
|
||||
/** 备注 */
|
||||
@Excel(name = "备注")
|
||||
@ApiModelProperty(name = "备注", value = "备注")
|
||||
private String remark;
|
||||
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-rule</artifactId>
|
||||
<version>3.6.3</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>muyu-rule-remote</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
|
@ -0,0 +1,122 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-rule</artifactId>
|
||||
<version>3.6.3</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>muyu-rule-server</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<!-- SpringCloud Alibaba Nacos -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- SpringCloud Alibaba Nacos Config -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- SpringCloud Alibaba Sentinel -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- SpringBoot Actuator -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Swagger UI -->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
<version>${swagger.fox.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- MuYu Common DataSource -->
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-datasource</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- MuYu Common DataScope -->
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-datascope</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- MuYu Common Log -->
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- MuYu Common Swagger -->
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-common-swagger</artifactId>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.alibaba</groupId>
|
||||
<artifactId>druid</artifactId>
|
||||
<version>1.2.20</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-rule-common</artifactId>
|
||||
<version>3.6.3</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<!-- 加入maven deploy插件,当在deploy时,忽略些model-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-deploy-plugin</artifactId>
|
||||
<configuration>
|
||||
<skip>true</skip>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
|
@ -0,0 +1,22 @@
|
|||
package com.muyu.rule;
|
||||
|
||||
import com.muyu.common.security.annotation.EnableCustomConfig;
|
||||
import com.muyu.common.security.annotation.EnableMyFeignClients;
|
||||
import com.muyu.common.swagger.annotation.EnableCustomSwagger2;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
/**
|
||||
* 规则模块
|
||||
*
|
||||
* @author muyu
|
||||
*/
|
||||
@EnableCustomConfig
|
||||
@EnableCustomSwagger2
|
||||
@EnableMyFeignClients
|
||||
@SpringBootApplication
|
||||
public class MuYuRuleApplication {
|
||||
public static void main (String[] args) {
|
||||
SpringApplication.run(MuYuRuleApplication.class, args);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,151 @@
|
|||
package com.muyu.rule.controller;
|
||||
|
||||
import java.util.List;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import com.muyu.common.core.utils.poi.ExcelUtil;
|
||||
import com.muyu.common.core.web.page.TableDataInfo;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.domain.Ruleengine;
|
||||
import com.muyu.rule.domain.model.RuleContentModel;
|
||||
import com.muyu.rule.domain.red.*;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import com.muyu.common.log.annotation.Log;
|
||||
import com.muyu.common.log.enums.BusinessType;
|
||||
import com.muyu.common.security.annotation.RequiresPermissions;
|
||||
import com.muyu.rule.service.IEngineMaintenanceService;
|
||||
import com.muyu.common.core.web.controller.BaseController;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
|
||||
/**
|
||||
* 引擎维护Controller
|
||||
*
|
||||
* @author wan
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
@Api(tags = "规则引擎")
|
||||
@RestController
|
||||
@RequestMapping("/rule")
|
||||
public class EngineMaintenanceController extends BaseController
|
||||
{
|
||||
@Autowired
|
||||
private IEngineMaintenanceService engineMaintenanceService;
|
||||
|
||||
@PostMapping("/compiler")
|
||||
public Result compiler(@RequestBody RuleContentReq ruleContentReq){
|
||||
return engineMaintenanceService.compiler(ruleContentReq);
|
||||
}
|
||||
|
||||
@GetMapping("/loader")
|
||||
public Result loader(@RequestParam Long ruleId){
|
||||
return engineMaintenanceService.loader(ruleId);
|
||||
}
|
||||
|
||||
@GetMapping("/getRuleContent")
|
||||
public Result<RuleContentModel> getRuleContent(@RequestParam Long ruleId) {
|
||||
return engineMaintenanceService.getRuleContent(ruleId);
|
||||
}
|
||||
/**
|
||||
* 查询引擎维护列表
|
||||
*/
|
||||
@RequiresPermissions("rule:rule:list")
|
||||
@GetMapping("/list")
|
||||
public Result<TableDataInfo<Ruleengine>> list(RuleengineQueryReq ruleengineQueryReq)
|
||||
{
|
||||
startPage();
|
||||
List<Ruleengine> list = engineMaintenanceService.list(Ruleengine.queryBuild(ruleengineQueryReq));
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出引擎维护列表
|
||||
*/
|
||||
@RequiresPermissions("rule:rule:export")
|
||||
@Log(title = "引擎维护", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(HttpServletResponse response, Ruleengine ruleengine)
|
||||
{
|
||||
List<Ruleengine> list = engineMaintenanceService.list(ruleengine);
|
||||
ExcelUtil<Ruleengine> util = new ExcelUtil<Ruleengine>(Ruleengine.class);
|
||||
util.exportExcel(response, list, "引擎维护数据");
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取引擎维护详细信息
|
||||
*/
|
||||
@RequiresPermissions("rule:rule:query")
|
||||
@GetMapping(value = "/{id}")
|
||||
public Result<Ruleengine> getInfo(@PathVariable("id") Long id)
|
||||
{
|
||||
return Result.success(engineMaintenanceService.getById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增引擎维护
|
||||
*/
|
||||
@RequiresPermissions("rule:rule:add")
|
||||
@Log(title = "引擎维护", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public Result<String> add(@RequestBody RuleengineSaveReq engineMaintenance)
|
||||
{
|
||||
return toAjax(engineMaintenanceService.save(Ruleengine.saveBuild(engineMaintenance)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改引擎维护
|
||||
*/
|
||||
@RequiresPermissions("rule:rule:edit")
|
||||
@Log(title = "引擎维护", businessType = BusinessType.UPDATE)
|
||||
@PutMapping("/{id}")
|
||||
public Result<String> edit(@PathVariable Long id, @RequestBody RuleengineEditReq ruleengineEditReq)
|
||||
{
|
||||
return toAjax(engineMaintenanceService.updateById(Ruleengine.editBuild(id,ruleengineEditReq)));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除引擎维护
|
||||
*/
|
||||
@RequiresPermissions("rule:rule:remove")
|
||||
@Log(title = "引擎维护", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
@ApiOperation("删除规则引擎")
|
||||
@ApiImplicitParam(name = "id", value = "id", required = true, dataType = "Long", paramType = "path", dataTypeClass = String.class, example = "1,2,3,4")
|
||||
public Result remove(@PathVariable List<Long> ids)
|
||||
{
|
||||
return toAjax(engineMaintenanceService.removeBatchByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 规则维护的详情
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/details")
|
||||
public Result<EngineVersionReq> details(@RequestParam("id") Long id){
|
||||
return engineMaintenanceService.details(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 规则维护的是否激活修改
|
||||
* @param ruleengine
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/engineOnOff")
|
||||
public Result<String> engineOnOff(@RequestBody Ruleengine ruleengine){
|
||||
return engineMaintenanceService.engineOnOff(ruleengine);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改规则维护的状态
|
||||
* @param ruleengine
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/statusOnOff")
|
||||
public Result<String> statusOnOff(@RequestBody Ruleengine ruleengine){
|
||||
return engineMaintenanceService.statusOnOff(ruleengine);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.muyu.rule.controller;
|
||||
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.service.EngineVersionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* EngineVersion 引擎版本的Controller层
|
||||
*
|
||||
* @ClassName EngineVersionController
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/5/6 20:56
|
||||
*/
|
||||
|
||||
@RestController
|
||||
@RequestMapping("/versions")
|
||||
public class EngineVersionController {
|
||||
@Autowired
|
||||
private EngineVersionService engineVersionService;
|
||||
|
||||
/**
|
||||
* 添加版本
|
||||
* @param engineVersion
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("/versionsAdd")
|
||||
public Result<String> versionsAdd(@RequestBody EngineVersion engineVersion){
|
||||
return engineVersionService.versionsAdd(engineVersion);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package com.muyu.rule.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.domain.Ruleengine;
|
||||
import com.muyu.rule.domain.model.RuleContentModel;
|
||||
import com.muyu.rule.domain.red.RuleContentReq;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 引擎维护Mapper接口
|
||||
*
|
||||
* @author wan
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
public interface EngineMaintenanceMapper extends BaseMapper<Ruleengine>
|
||||
{
|
||||
void addRulecontent(@Param("ruleContentReq") RuleContentReq ruleContentReq);
|
||||
|
||||
RuleContentModel getRuleContent(@Param("ruleId") Long ruleId);
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package com.muyu.rule.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
|
||||
/**
|
||||
* EngineVersion 引擎版本的Mapper层接口
|
||||
*
|
||||
* @author AnNan.Wang
|
||||
* @ClassName: EngineVersionMapper
|
||||
* @createTime: 2024/5/6 20:59
|
||||
*/
|
||||
|
||||
public interface EngineVersionMapper extends BaseMapper<EngineVersion> {
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
package com.muyu.rule.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
|
||||
/**
|
||||
* EngineVersion 引擎版本的Service层接口
|
||||
*
|
||||
* @author AnNan.Wang
|
||||
* @ClassName: EngineVersionService
|
||||
* @createTime: 2024/5/6 20:57
|
||||
*/
|
||||
public interface EngineVersionService extends IService<EngineVersion> {
|
||||
Result<String> versionsAdd(EngineVersion engineVersion);
|
||||
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
package com.muyu.rule.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.domain.Ruleengine;
|
||||
import com.muyu.rule.domain.model.RuleContentModel;
|
||||
import com.muyu.rule.domain.red.EngineVersionReq;
|
||||
import com.muyu.rule.domain.red.RuleContentReq;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 引擎维护Service接口
|
||||
*
|
||||
* @author wan
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
public interface IEngineMaintenanceService extends IService<Ruleengine> {
|
||||
public List<Ruleengine> list(Ruleengine ruleengine);
|
||||
|
||||
Result compiler(RuleContentReq ruleContentReq);
|
||||
|
||||
Result loader(Long ruleId);
|
||||
|
||||
Result<RuleContentModel> getRuleContent(Long ruleId);
|
||||
|
||||
Result<EngineVersionReq> details(Long id);
|
||||
|
||||
Result<String> engineOnOff(Ruleengine ruleengine);
|
||||
|
||||
Result<String> statusOnOff(Ruleengine ruleengine);
|
||||
}
|
|
@ -0,0 +1,213 @@
|
|||
package com.muyu.rule.service.impl;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.net.URI;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Paths;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.common.core.utils.ObjUtils;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.domain.Ruleengine;
|
||||
import com.muyu.rule.domain.model.RuleContentModel;
|
||||
import com.muyu.rule.domain.red.EngineVersionReq;
|
||||
import com.muyu.rule.domain.red.RuleContentReq;
|
||||
import com.muyu.rule.mapper.EngineVersionMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.muyu.rule.mapper.EngineMaintenanceMapper;
|
||||
import com.muyu.rule.service.IEngineMaintenanceService;
|
||||
|
||||
import javax.tools.*;
|
||||
|
||||
/**
|
||||
* 引擎维护Service业务层处理
|
||||
*
|
||||
* @author wan
|
||||
* @date 2024-05-03
|
||||
*/
|
||||
@Service
|
||||
public class EngineMaintenanceServiceImpl extends ServiceImpl<EngineMaintenanceMapper, Ruleengine>
|
||||
implements IEngineMaintenanceService
|
||||
{
|
||||
@Autowired
|
||||
private EngineMaintenanceMapper engineMaintenanceMapper;
|
||||
|
||||
@Override
|
||||
public List<Ruleengine> list(Ruleengine ruleengine) {
|
||||
LambdaQueryWrapper<Ruleengine> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getName())){
|
||||
queryWrapper.like(Ruleengine::getName, ruleengine.getName());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getType())){
|
||||
queryWrapper.eq(Ruleengine::getType, ruleengine.getType());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getIsActivate())){
|
||||
queryWrapper.eq(Ruleengine::getIsActivate, ruleengine.getIsActivate());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getStatus())){
|
||||
queryWrapper.eq(Ruleengine::getStatus, ruleengine.getStatus());
|
||||
}
|
||||
if (ObjUtils.notNull(ruleengine.getRemark())){
|
||||
queryWrapper.eq(Ruleengine::getRemark, ruleengine.getRemark());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getDescription())){
|
||||
queryWrapper.eq(Ruleengine::getDescription, ruleengine.getDescription());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getCreateBy())){
|
||||
queryWrapper.eq(Ruleengine::getCreateBy, ruleengine.getCreateBy());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getCreateTime())){
|
||||
queryWrapper.eq(Ruleengine::getCreateTime, ruleengine.getCreateTime());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getUpdateBy())){
|
||||
queryWrapper.eq(Ruleengine::getUpdateBy, ruleengine.getUpdateBy());
|
||||
}
|
||||
|
||||
if (ObjUtils.notNull(ruleengine.getUpdateTime())){
|
||||
queryWrapper.eq(Ruleengine::getUpdateTime, ruleengine.getUpdateTime());
|
||||
}
|
||||
return list(queryWrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result compiler(RuleContentReq ruleContentReq) {
|
||||
Long ruleId = ruleContentReq.getRuleId();
|
||||
String content = ruleContentReq.getRuleContent();
|
||||
// 指定输出目录
|
||||
String targetDirectory = "D:\\work\\etl\\cloud-server\\muyu-modules\\muyu-rule\\muyu-rule-server\\src\\main\\java\\com\\muyu\\rule\\controller";
|
||||
|
||||
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
|
||||
try (StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null)) {
|
||||
// 创建一个内存中的源文件
|
||||
JavaFileObject sourceFileObject = new JavaSourceFromString("Test"+ruleId, content);
|
||||
|
||||
// 编译选项
|
||||
Iterable<String> options = Arrays.asList("-d", targetDirectory);
|
||||
|
||||
// 编译源代码
|
||||
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, options, null, Arrays.asList(sourceFileObject));
|
||||
boolean success = task.call();
|
||||
|
||||
if (success) {
|
||||
engineMaintenanceMapper.addRulecontent(ruleContentReq);
|
||||
System.out.println("编译成功");
|
||||
} else {
|
||||
System.out.println("编译失败");
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return Result.success("编译成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result loader(Long ruleId) {
|
||||
try {
|
||||
// 假设我们有一个名为com.example.MyClass的类文件
|
||||
// 注意:这里应该是.class文件的路径
|
||||
String classPath = "D:\\work\\etl\\cloud-server\\muyu-modules\\muyu-rule\\muyu-rule-server\\src\\main\\java\\com\\muyu\\rule\\controller\\Test"+ruleId+".class";
|
||||
// 读取类文件
|
||||
byte[] classData = Files.readAllBytes(Paths.get(classPath));
|
||||
|
||||
// 提取类名(不包括.class和路径)
|
||||
String className = classPath.substring(classPath.lastIndexOf('\\') + 1).replace(".class", "");
|
||||
|
||||
// 使用自定义类加载器加载类
|
||||
MyClassLoader classLoader = new MyClassLoader();
|
||||
Class<?> clazz = classLoader.defineClassFromBytes(className, classData);
|
||||
|
||||
// 使用反射创建实例并调用方法
|
||||
Object instance = clazz.getDeclaredConstructor().newInstance();
|
||||
Method execute = clazz.getMethod("execute", String.class);
|
||||
System.out.println(execute.invoke(instance, "zhangsan"));
|
||||
System.out.println(execute.invoke(instance, ""));
|
||||
// ... 调用方法等操作
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
return Result.success("加载成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<RuleContentModel> getRuleContent(Long ruleId) {
|
||||
if (ObjUtils.notNull(ruleId)){
|
||||
RuleContentModel ruleContentModel=engineMaintenanceMapper.getRuleContent(ruleId);
|
||||
return Result.success(ruleContentModel);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
public static class MyClassLoader extends ClassLoader {
|
||||
public Class<?> defineClassFromBytes(String name, byte[] data) {
|
||||
return defineClass(name, data, 0, data.length);
|
||||
}
|
||||
}
|
||||
|
||||
static class JavaSourceFromString extends SimpleJavaFileObject {
|
||||
final String code;
|
||||
|
||||
JavaSourceFromString(String name, String code) {
|
||||
super(URI.create("string:///" + name.replace('.', '/') + Kind.SOURCE.extension), Kind.SOURCE);
|
||||
this.code = code;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CharSequence getCharContent(boolean ignoreEncodingErrors) {
|
||||
return code;
|
||||
}
|
||||
}
|
||||
|
||||
@Autowired
|
||||
private EngineVersionMapper engineVersionMapper;
|
||||
@Override
|
||||
public Result<EngineVersionReq> details(Long id) {
|
||||
//查询出引擎的信息
|
||||
Ruleengine ruleengine = engineMaintenanceMapper.selectById(id);
|
||||
//获取到引擎的ID
|
||||
Long ruleId = ruleengine.getId();
|
||||
List<EngineVersion> engineVersions = engineVersionMapper.selectList(
|
||||
new LambdaQueryWrapper<EngineVersion>() {{
|
||||
eq(EngineVersion::getRuleId, ruleId);
|
||||
}}
|
||||
);
|
||||
|
||||
return Result.success(
|
||||
EngineVersionReq.builder()
|
||||
.ruleengine(ruleengine)
|
||||
.engineVersionList(engineVersions)
|
||||
.build()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<String> engineOnOff(Ruleengine ruleengine) {
|
||||
return Result.success(
|
||||
engineMaintenanceMapper.updateById(ruleengine)>0?"引擎激活状态修改成功":"引擎激活状态修改失败"
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<String> statusOnOff(Ruleengine ruleengine) {
|
||||
return Result.success(
|
||||
engineMaintenanceMapper.updateById(ruleengine)>0?"引擎状态操作成功":"引擎状态操作失败"
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.muyu.rule.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.muyu.common.core.domain.Result;
|
||||
import com.muyu.rule.domain.EngineVersion;
|
||||
import com.muyu.rule.mapper.EngineVersionMapper;
|
||||
import com.muyu.rule.service.EngineVersionService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* EngineVersion 引擎版本的Impl层实现接口
|
||||
*
|
||||
* @ClassName EngineVersionServiceImpl
|
||||
* @Author AnNan.Wang
|
||||
* @Date 2024/5/6 20:58
|
||||
*/
|
||||
|
||||
@Service
|
||||
public class EngineVersionServiceImpl extends ServiceImpl<EngineVersionMapper, EngineVersion>
|
||||
implements EngineVersionService {
|
||||
@Autowired
|
||||
private EngineVersionMapper engineVersionMapper;
|
||||
|
||||
@Override
|
||||
public Result<String> versionsAdd(EngineVersion engineVersion) {
|
||||
int insert = engineVersionMapper.insert(engineVersion);
|
||||
if (insert>0) {
|
||||
return Result.success("版本添加成功");
|
||||
}else {
|
||||
return Result.error("版本添加失败");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="logs/muyu-rule"/>
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n"/>
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 系统日志输出 -->
|
||||
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>INFO</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 60天 -->
|
||||
<maxHistory>60</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>ERROR</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 系统模块日志级别控制 -->
|
||||
<logger name="com.muyu" level="info"/>
|
||||
<!-- Spring日志级别控制 -->
|
||||
<logger name="org.springframework" level="warn"/>
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="console"/>
|
||||
</root>
|
||||
|
||||
<!--系统操作日志-->
|
||||
<root level="info">
|
||||
<appender-ref ref="file_info"/>
|
||||
<appender-ref ref="file_error"/>
|
||||
</root>
|
||||
</configuration>
|
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.muyu.rule.mapper.EngineMaintenanceMapper">
|
||||
|
||||
<resultMap type="com.muyu.rule.domain.Ruleengine" id="RuleengineResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="name" column="name" />
|
||||
<result property="type" column="type" />
|
||||
<result property="code" column="code" />
|
||||
<result property="level" column="level" />
|
||||
<result property="isActivate" column="is_activate" />
|
||||
<result property="status" column="status" />
|
||||
<result property="description" column="description" />
|
||||
<result property="remark" column="remark" />
|
||||
<result property="createBy" column="create_by" />
|
||||
<result property="createTime" column="create_time" />
|
||||
<result property="updateBy" column="update_by" />
|
||||
<result property="updateTime" column="update_time" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectRuleengineVo">
|
||||
select id, name,code, type,level, is_activate, status, remark,description, create_by, create_time, update_by, update_time from ruleengine
|
||||
</sql>
|
||||
<insert id="addRulecontent">
|
||||
insert into rulecontent
|
||||
(rule_id,rule_content)
|
||||
values(#{ruleContentReq.ruleId},#{ruleContentReq.ruleContent})
|
||||
</insert>
|
||||
<select id="getRuleContent" resultType="com.muyu.rule.domain.model.RuleContentModel">
|
||||
select * from rulecontent where rule_id =#{ruleId}
|
||||
</select>
|
||||
</mapper>
|
|
@ -0,0 +1,26 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.muyu</groupId>
|
||||
<artifactId>muyu-modules</artifactId>
|
||||
<version>3.6.3</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>muyu-rule</artifactId>
|
||||
<packaging>pom</packaging>
|
||||
<modules>
|
||||
<module>muyu-rule-common</module>
|
||||
<module>muyu-rule-remote</module>
|
||||
<module>muyu-rule-server</module>
|
||||
</modules>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>17</maven.compiler.source>
|
||||
<maven.compiler.target>17</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
</project>
|
|
@ -14,6 +14,7 @@
|
|||
<module>muyu-job</module>
|
||||
<module>muyu-file</module>
|
||||
<module>muyu-data-source</module>
|
||||
<module>muyu-rule</module>
|
||||
</modules>
|
||||
|
||||
<artifactId>muyu-modules</artifactId>
|
||||
|
|
Loading…
Reference in New Issue