cloud-etl-engine/cloud-etl-server/src/main/java/com/muyu/controller/EngIneController.java

221 lines
7.0 KiB
Java

package com.muyu.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.utils.poi.ExcelUtil;
import com.muyu.common.core.web.controller.BaseController;
import com.muyu.context.GenerateConstant;
import com.muyu.domain.EngineMaintenance;
import com.muyu.domain.EngineVersion;
import com.muyu.domain.constants.PageResult;
import com.muyu.javacomplier.OSSFileDownload;
import com.muyu.req.EngineMaintenanceQueryReq;
import com.muyu.req.EngineVersionListResp;
import com.muyu.service.EngIneService;
import com.muyu.service.EngineVersionService;
import com.muyu.test.JavaClass;
import com.muyu.test.RuleTest;
import jakarta.servlet.http.HttpServletResponse;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Log4j2
@Component
@RestController
@RequestMapping("/engine")
public class EngIneController extends BaseController {
@Autowired
EngIneService engIneService;
@Autowired
EngineVersionService engineVersionService;
/**
* 规则列表+条件查询+分页
*
* @param engineMaintenanceQueryReq
* @return
*/
@PostMapping("/getMaintenanceList")
public Result<PageResult<EngineMaintenance>> getMaintenanceList(@RequestBody EngineMaintenanceQueryReq engineMaintenanceQueryReq) {
//使用mabits-plus-plus的查询方法
// engineMaintenanceQueryReq.setPageNum(engineMaintenanceQueryReq.getPageNum());
// engineMaintenanceQueryReq.setPageSize(engineMaintenanceQueryReq.getPageSize());
return engIneService.getMaintenanceList(engineMaintenanceQueryReq);
}
/**
* 删除规则信息
*
* @param id
* @return
*/
@PostMapping("/delete/{id}")
public Integer remove(@PathVariable Long id) {
//使用mabits-plusplus的删除方法
// engIneService.delete(id);
return engIneService.deletes(id);
}
/**
* 修改规则信息
*
* @param engineMaintenance
* @return
*/
@PostMapping("/update")
public Result<EngineMaintenance> update(@RequestBody EngineMaintenance engineMaintenance) {
Result<EngineMaintenance> engineMaintenanceResult = engIneService.updateMsg(engineMaintenance);
return Result.success(engineMaintenanceResult.getData());
}
/**
* 添加规则信息
*
* @param engineMaintenance
* @return
*/
@PostMapping("/insert")
public Boolean insert(@RequestBody EngineMaintenance engineMaintenance) {
//使用mabits-plus-plus的添加方法
Boolean b = engIneService.save(engineMaintenance);
return b;
// return engIneService.add(engineMaintenance);
}
/**
* 查询规则引擎版本列表
*/
@PutMapping("/getRuleEngineInfo/{id}")
public Result getRuleEngineInfo(@PathVariable(name = "id") Long id) {
//使用mabits-plus-plus的查询方法
// engIneService.getRuleEngineInfo(id);
EngineVersionListResp engineConfigListResp = engIneService.getRuleEngineInfo(id);
return Result.success(engineConfigListResp);
}
/**
* 导出
*/
@PostMapping("/export")
public void export(HttpServletResponse httpServletResponse, EngineMaintenance engineMaintenance) {
List<EngineMaintenance> list = engIneService.list();
ExcelUtil<EngineMaintenance> engineMaintenanceExcelUtil = new ExcelUtil<>(EngineMaintenance.class);
engineMaintenanceExcelUtil.exportExcel(httpServletResponse, list, "规则引擎版本");
}
/**
* 通过引擎维护编号关闭引擎
*/
@PostMapping("/closeEngine/{id}")
public Result closeEngine(@PathVariable Integer id) {
//使用mybatis-plus的关闭方法
// engIneService.closeEngine(id);
engIneService.closeEngine(id);
return Result.success();
}
/**
* 通过引擎维护编号激活引擎
*/
@PostMapping("/activateEngine/{id}")
public Result activateEngine(@PathVariable Integer id) {
//使用mybatis-plus的激活方法
// engIneService.activateEngine(id);
engIneService.activateEngine(id);
return Result.success();
}
/**
* 通过id查询
*
* @param id
* @return
*/
@GetMapping("/findById/{id}")
public Result findById(@PathVariable Long id) {
//使用mybatis-plus的查询方法
//List<EngineMaintenance> list = engIneService.list();
//List<EngineMaintenance> list = engIneService.list(new LambdaQueryWrapper<>() {{
// eq(EngineMaintenance::getId, id);
//}});
List<EngineMaintenance> list = engIneService.list(new LambdaQueryWrapper<>() {{
eq(EngineMaintenance::getId, id);
}});
return Result.success(list);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@GetMapping("/findByIdsfindByIds/{id}")
public Result findVersionByIds(@PathVariable("id") Long id) {
//使用mybatis-plus的查询方法
// return Result.success(engineVersionService.getByIds(id));
return Result.success(engineVersionService.list(new LambdaQueryWrapper<>() {{
eq(EngineVersion::getEngineMaintenanceId, id);
}}));
}
/**
* 规则详情
*/
@PostMapping("/selectEngineById/{versionId}")
public List<EngineMaintenance> selectEngineById(@PathVariable Integer versionId) {
//使用mybatis-plus的查询方法
// List<EngineMaintenance> engineMaintenances = engIneService.list(new LambdaQueryWrapper<>() {{
// eq(EngineMaintenance::getVersionId, versionId);
// }});
List<EngineMaintenance> engineMaintenances = engineVersionService.getByIds(versionId);
return engineMaintenances;
}
/**
* 生成引擎类
*
* @param engineVersion
* @return
*/
@PostMapping("/generate")
public EngineVersion generate(@RequestBody EngineVersion engineVersion) {
EngineMaintenance byId = engIneService.selectById(engineVersion.getId());
byId.setName("generate" + "_" + byId.getEngineCode() + "_" + engineVersion.getVersionCode());
engineVersion.setRuleContent(GenerateConstant.generateConstant(byId, engineVersion));
return engineVersion;
}
/**
*
*/
@GetMapping("/findVersionById/{id}")
public Result findVersionById(@PathVariable("id") Long id) {
return Result.success(engineVersionService.getById(id));
}
/**
* 测试代码
*
* @param ruleEdition
* @return
*/
@PostMapping("/testData")
public Result measurement(@RequestBody EngineVersion ruleEdition) {
OSSFileDownload.streamingDownload(ruleEdition.getName());
JavaClass.compile(ruleEdition.getName());
log.error("错误原因:{}" + ruleEdition);
//测试
RuleTest.test(ruleEdition);
return Result.success(engIneService.measurementList(ruleEdition));
}
}