规则引擎列表

master
Qin Dong Ming 2024-08-22 22:21:08 +08:00
parent 3b971dd08e
commit 679f02ad35
12 changed files with 527 additions and 13 deletions

View File

@ -0,0 +1,129 @@
package com.muyu.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 com.muyu.req.EngineVersionEditReq;
import com.muyu.req.EngineVersionQueryReq;
import com.muyu.req.EngineVersionSaveReq;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.Date;
import java.util.List;
import java.util.function.Supplier;
/**
* @Authorqdm
* @Packagecom.muyu.domain
* @Projectcloud-etl-engine
* @nameEngineVersion
* @Date2024/8/22 21:46
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
@TableName("engine_version")
@EqualsAndHashCode(callSuper = true)
public class EngineVersion extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 编号 */
@TableId(value = "id",type = IdType.AUTO)
private Long id;
/** 版本类名 */
@Excel(name = "版本类名")
private String versionClass;
/** 版本名称 */
@Excel(name = "版本名称")
private String name;
/** 版本编码 */
@Excel(name = "版本编码")
private String versionCode;
/** 是否激活 */
@Excel(name = "是否激活")
private String isActivate;
/** 版本状态 */
@Excel(name = "版本状态")
private Integer status;
/** 版本测试状态 */
@Excel(name = "版本测试状态")
private Integer testStatus;
/** 规则内容 */
@Excel(name = "规则内容")
private String ruleContent;
/** 引擎维护编号 */
@Excel(name = "引擎维护编号")
private Long engineMaintenanceId;
/** 描述 */
@Excel(name = "描述")
private String description;
/**
*
*/
public static EngineVersion queryBuild(EngineVersionQueryReq engineConfigQueryReq){
return EngineVersion.builder()
.versionCode(engineConfigQueryReq.getVersionCode())
.ruleContent(engineConfigQueryReq.getRuleContent())
.engineMaintenanceId(engineConfigQueryReq.getEngineMaintenanceId())
.build();
}
/**
*
*/
public static EngineVersion saveBuild(EngineVersionSaveReq engineConfigSaveReq, Supplier<String> createBy){
return EngineVersion.builder()
.versionClass(engineConfigSaveReq.getVersionClass())
.name(engineConfigSaveReq.getName())
.versionCode(engineConfigSaveReq.getVersionCode())
.isActivate(engineConfigSaveReq.getIsActivate())
.status(engineConfigSaveReq.getStatus())
.testStatus(engineConfigSaveReq.getTestStatus())
.ruleContent(engineConfigSaveReq.getRuleContent())
.engineMaintenanceId(engineConfigSaveReq.getEngineMaintenanceId())
.description(engineConfigSaveReq.getDescription())
.remark(engineConfigSaveReq.getRemark())
.createBy(createBy.get())
.createTime(new Date())
.build();
}
/**
*
*/
public static EngineVersion editBuild(Long id, EngineVersionEditReq engineConfigEditReq, Supplier<String> updateBy){
return EngineVersion.builder()
.id(id)
.versionClass(engineConfigEditReq.getVersionClass())
.name(engineConfigEditReq.getName())
.versionCode(engineConfigEditReq.getVersionCode())
.isActivate(engineConfigEditReq.getIsActivate())
.status(engineConfigEditReq.getStatus())
.testStatus(engineConfigEditReq.getTestStatus())
.ruleContent(engineConfigEditReq.getRuleContent())
.engineMaintenanceId(engineConfigEditReq.getEngineMaintenanceId())
.description(engineConfigEditReq.getDescription())
.remark(engineConfigEditReq.getRemark())
.updateBy(updateBy.get())
.updateTime(new Date())
.build();
}
}

View File

@ -0,0 +1,50 @@
package com.muyu.req;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Authorqdm
* @Packagecom.muyu.req
* @Projectcloud-etl-engine
* @nameEngineVersionEditReq
* @Date2024/8/22 22:15
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class EngineVersionEditReq extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 版本类名 */
private String versionClass;
/** 版本名称 */
private String name;
/** 版本编码 */
private String versionCode;
/** 是否激活 */
private String isActivate;
/** 版本状态 */
private Integer status;
/** 版本测试状态 */
private Integer testStatus;
/** 规则内容 */
private String ruleContent;
/** 引擎维护编号 */
private Long engineMaintenanceId;
/** 描述 */
private String description;
}

View File

@ -0,0 +1,49 @@
package com.muyu.req;
import com.muyu.domain.EngineVersion;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
import java.util.List;
/**
* @Authorqdm
* @Packagecom.muyu.req
* @Projectcloud-etl-engine
* @nameEngineVersionListResp
* @Date2024/8/22 21:45
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@SuperBuilder
public class EngineVersionListResp {
/** 编号 */
private Long id;
/** 名称 */
private String name;
/** 类型 */
private Integer type;
/** 作用域 */
private Integer scope;
/** 引擎编码 */
private String engineCode;
/** 是否激活 */
private String isActivate;
/** 状态 */
private String status;
/** 描述 */
private String description;
/** 规则引擎版本列表 */
private List<EngineVersion> engineVersionList;
}

View File

@ -0,0 +1,27 @@
package com.muyu.req;
import com.muyu.common.core.web.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Authorqdm
* @Packagecom.muyu.req
* @Projectcloud-etl-engine
* @nameEngineVersionQueryReq
* @Date2024/8/22 22:02
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class EngineVersionQueryReq extends BaseEntity {
/** 版本编码 */
private String versionCode;
/** 规则内容 */
private String ruleContent;
/** 引擎维护编号 */
private Long engineMaintenanceId;
}

View File

@ -0,0 +1,54 @@
package com.muyu.req;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.SuperBuilder;
/**
* @Authorqdm
* @Packagecom.muyu.req
* @Projectcloud-etl-engine
* @nameEngineVersionSaveReq
* @Date2024/8/22 22:06
*/
@Data
@SuperBuilder
@NoArgsConstructor
@AllArgsConstructor
public class EngineVersionSaveReq {
private static final long serialVersionUID = 1L;
/** 编号 */
private Long id;
/** 版本类名 */
private String versionClass;
/** 版本名称 */
private String name;
/** 版本编码 */
private String versionCode;
/** 是否激活 */
private String isActivate;
/** 版本状态 */
private Integer status;
/** 版本测试状态 */
private Integer testStatus;
/** 规则内容 */
private String ruleContent;
/** 引擎维护编号 */
private Long engineMaintenanceId;
/** 描述 */
private String description;
/** 描述 */
private String remark;
}

View File

@ -1,17 +1,13 @@
package com.muyu.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.domain.EngineMaintenance;
import com.muyu.req.EngineVersionListResp;
import com.muyu.service.EngIneService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @Authorqdm
* @Packagecom.muyu.controller
@ -31,4 +27,29 @@ public class EngIneController extends BaseController {
List<EngineMaintenance> list = engIneService.list();
return Result.success(list);
}
@PostMapping("/delete/{id}")
public Result delete(@PathVariable Integer id){
return engIneService.delete(id);
}
@PostMapping("/update")
public Result<EngineMaintenance> update(@RequestBody EngineMaintenance engineMaintenance){
return engIneService.updateMsg(engineMaintenance);
}
@PostMapping("/insert")
public Result<EngineMaintenance> insert(@RequestBody EngineMaintenance engineMaintenance){
return engIneService.insert(engineMaintenance);
}
/**
*
*/
@RequiresPermissions("rule-engine:maintenance:edit")
@PutMapping("/getRuleEngineInfo/{id}")
public Result getRuleEngineInfo(@PathVariable Long id) {
EngineVersionListResp engineConfigListResp = engIneService.getRuleEngineInfo(id);
return Result.success(engineConfigListResp);
}
}

View File

@ -0,0 +1,37 @@
package com.muyu.controller;
import com.muyu.common.core.domain.Result;
import com.muyu.common.security.annotation.RequiresPermissions;
import com.muyu.domain.EngineVersion;
import com.muyu.req.EngineVersionQueryReq;
import com.muyu.service.EngineVersionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* @Authorqdm
* @Packagecom.muyu.controller
* @Projectcloud-etl-engine
* @nameEngineVersionController
* @Date2024/8/22 21:59
*/
@RestController
@RequestMapping("/version")
public class EngineVersionController {
@Autowired
EngineVersionService engineVersionService;
/**
*
*/
@RequiresPermissions("rule-engine:version:list")
@GetMapping("/list")
public Result<List<EngineVersion>> list(EngineVersionQueryReq engineConfigQueryReq) {
return Result.success(engineVersionService.list(EngineVersion.queryBuild(engineConfigQueryReq)));
}
}

View File

@ -0,0 +1,16 @@
package com.muyu.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.muyu.domain.EngineVersion;
import org.apache.ibatis.annotations.Mapper;
/**
* @Authorqdm
* @Packagecom.muyu.mapper
* @Projectcloud-etl-engine
* @nameEngineVersionMapper
* @Date2024/8/22 22:18
*/
@Mapper
public interface EngineVersionMapper extends BaseMapper<EngineVersion> {
}

View File

@ -1,8 +1,10 @@
package com.muyu.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.common.core.domain.Result;
import com.muyu.domain.EngineMaintenance;
import com.muyu.req.EngineMaintenanceQueryReq;
import com.muyu.req.EngineVersionListResp;
import java.util.List;
@ -15,4 +17,12 @@ import java.util.List;
*/
public interface EngIneService extends IService<EngineMaintenance> {
List<EngineMaintenance> list( );
Result delete(Integer id);
Result<EngineMaintenance> updateMsg(EngineMaintenance engineMaintenance);
Result<EngineMaintenance> insert(EngineMaintenance engineMaintenance);
EngineVersionListResp getRuleEngineInfo(Long id);
}

View File

@ -0,0 +1,24 @@
package com.muyu.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.muyu.domain.EngineVersion;
import java.util.List;
/**
* @Authorqdm
* @Packagecom.muyu.service
* @Projectcloud-etl-engine
* @nameEngineVersionService
* @Date2024/8/22 21:57
*/
public interface EngineVersionService extends IService<EngineVersion> {
/**
*
*
* @param engineConfig
* @return
*/
public List<EngineVersion> list(EngineVersion engineConfig);
}

View File

@ -2,11 +2,15 @@ package com.muyu.service.serviceImpl;
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.StringUtils;
import com.muyu.domain.EngineMaintenance;
import com.muyu.domain.EngineVersion;
import com.muyu.mapper.EngineMapper;
import com.muyu.req.EngineMaintenanceQueryReq;
import com.muyu.req.EngineVersionListResp;
import com.muyu.service.EngIneService;
import com.muyu.service.EngineVersionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -25,6 +29,9 @@ public class EngIneServiceImpl extends ServiceImpl<EngineMapper, EngineMaintenan
@Autowired
EngineMapper engineMapper;
@Autowired
private EngineVersionService engineConfigService;
@Override
public List<EngineMaintenance> list( ) {
LambdaQueryWrapper<EngineMaintenance> queryWrapper = new LambdaQueryWrapper<>();
@ -56,4 +63,51 @@ public class EngIneServiceImpl extends ServiceImpl<EngineMapper, EngineMaintenan
return list(queryWrapper);
}
@Override
public Result delete(Integer id) {
boolean b = super.removeById(id);
if (b){
return Result.success("成功");
}
return Result.error("失败");
}
@Override
public Result<EngineMaintenance> updateMsg(EngineMaintenance engineMaintenance) {
if (engineMapper.updateById(engineMaintenance) > 0) {
return Result.success(engineMaintenance);
}
return Result.error("失败");
}
@Override
public Result<EngineMaintenance> insert(EngineMaintenance engineMaintenance) {
if (engineMapper.insert(engineMaintenance) > 0) {
return Result.success(engineMaintenance);
}
return Result.error("失败");
}
@Override
public EngineVersionListResp getRuleEngineInfo(Long id) {
EngineMaintenance engineMaintenance = this.getOne(new LambdaQueryWrapper<>() {{
eq(EngineMaintenance::getId, id);
}});
List<EngineVersion> engineConfigs = engineConfigService.list();
List<EngineVersion> engineConfigList = engineConfigs.stream().filter(engineConfig ->
engineConfig.getEngineMaintenanceId().equals(engineMaintenance.getId())
).toList();
return EngineVersionListResp.builder()
.id(engineMaintenance.getId())
.name(engineMaintenance.getName())
.type(engineMaintenance.getType())
.scope(engineMaintenance.getScope())
.engineCode(engineMaintenance.getEngineCode())
.isActivate(engineMaintenance.getIsActivate())
.status(engineMaintenance.getStatus())
.description(engineMaintenance.getDescription())
.engineVersionList(engineConfigList)
.build();
}
}

View File

@ -0,0 +1,43 @@
package com.muyu.service.serviceImpl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.muyu.common.core.utils.StringUtils;
import com.muyu.domain.EngineVersion;
import com.muyu.mapper.EngineVersionMapper;
import com.muyu.service.EngineVersionService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Authorqdm
* @Packagecom.muyu.service.serviceImpl
* @Projectcloud-etl-engine
* @nameEngineVersionServiceImpl
* @Date2024/8/22 22:17
*/
@Service
public class EngineVersionServiceImpl extends ServiceImpl<EngineVersionMapper, EngineVersion> implements EngineVersionService {
@Override
public List<EngineVersion> list(EngineVersion engineConfig) {
LambdaQueryWrapper<EngineVersion> queryWrapper = new LambdaQueryWrapper<>();
if (StringUtils.isNotNull(engineConfig.getVersionCode())) {
queryWrapper.eq(EngineVersion::getVersionCode, engineConfig.getVersionCode());
}
if (StringUtils.isNotNull(engineConfig.getRuleContent())) {
queryWrapper.eq(EngineVersion::getRuleContent, engineConfig.getRuleContent());
}
if (StringUtils.isNotNull(engineConfig.getEngineMaintenanceId())) {
queryWrapper.eq(EngineVersion::getEngineMaintenanceId, engineConfig.getEngineMaintenanceId());
}
return list(queryWrapper);
}
}