muyu-rule/muyu-rule-server/src/main/java/com/muyu/rule/controller/RuleEditionController.java

195 lines
5.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.muyu.rule.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.muyu.common.core.domain.Result;
import com.muyu.common.core.exception.ServiceException;
import com.muyu.rule.service.RuleEditionService;
import com.muyu.rule.test.OSSFileDownload;
import io.swagger.v3.oas.annotations.Operation;
import lombok.extern.log4j.Log4j2;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import rule.domain.RuleEdition;
import com.muyu.rule.test.UploadOss;
import java.util.List;
/**
* @ClassName RuleEditionController
* @Description 规则版本控制层
* @Author Chen
* @Date 2024/8/25 09:37
*/
@RestController
@RequestMapping("/ruleEdition")
@Log4j2
public class RuleEditionController {
@Autowired
private RuleEditionService ruleEditionService;
/**
* 规则版本列表
*
* @return
*/
@RequestMapping(path = "/list", method = RequestMethod.POST)
@Operation(summary = "规则版本", description = "查看规则版本")
public Result<List<RuleEdition>> list() {
return Result.success(ruleEditionService.list());
}
/**
* 根据id删除
*
* @param id
* @return
*/
@Operation(summary = "删除版本", description = "删除版本")
@DeleteMapping("/delete/{id}")
public Result delete(@PathVariable("id") Integer id) {
return Result.success(ruleEditionService.removeById(id));
}
/**
* 添加
*
* @param ruleEdition
* @return
*/
@PostMapping("/insert")
@Operation(summary = "添加版本", description = "添加版本")
public Result insert(@RequestBody @Validated RuleEdition ruleEdition) {
//java OSS
UploadOss.uploadFiles(ruleEdition.getRuleEngine(), ruleEdition.getRuleKind());
OSSFileDownload.streamingDownload(ruleEdition.getRuleKind());
OSSFileDownload.compile(ruleEdition.getRuleKind());
// //对路径里的.java文件进行编译
// SourceCodeCompiler.javaCompilerPath("/home");
// //指定的输出目录
// File outputDir = new File("/home");
// //获取输出目录中文件
// File[] classFiles = outputDir.listFiles();
// if (classFiles != null) {
// for (File classFile : classFiles) {
// if (classFile.getName().endsWith(".class")) {
// log.info("找到class文件 " + classFile.getName());
// }
// }
// } else {
// log.info("没有找到文件");
// }
//cs
// testService.test();
LambdaQueryWrapper<RuleEdition> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(
RuleEdition::getRuleKind, ruleEdition.getRuleKind()
);
long count = ruleEditionService.count(queryWrapper);
if (count > 0) {
throw new ServiceException("版本类名重复");
}
return Result.success(ruleEditionService.save(ruleEdition));
}
/**
* 生成引擎版本类
*
* @param ruleEdition
* @return
*/
@PostMapping("/addGenerate")
@Operation(summary = "生成引擎版本类", description = "生成引擎版本类")
public Result addGenerate(@RequestBody @Validated RuleEdition ruleEdition) {
RuleEdition rule = ruleEditionService.generate(ruleEdition);
return Result.success(rule);
}
/**
* 修改
*
* @param ruleEdition
* @return
*/
@PutMapping("/update")
@Operation(summary = "修改", description = "修改版本")
public Result update(@RequestBody RuleEdition ruleEdition) {
return Result.success(ruleEditionService.updateById(ruleEdition));
}
/**
* 通过ID禁用规则版本
*
* @param id ID
* @return 版本信息
*/
@GetMapping("/disable/{id}")
@Operation(summary = "通过ID禁用规则版本", description = "通过ID禁用规则版本")
public Result<String> disable(@PathVariable("id") Long id) {
this.ruleEditionService.disable(id);
return Result.success(null, "操作成功");
}
/**
* 通过ID启用规则版本
*
* @param id ID
* @return 版本信息
*/
@GetMapping("/enable/{id}")
@Operation(summary = "通过ID启用规则版本", description = "通过ID启用客户启用之后禁止调用规则版本")
public Result<String> enable(@PathVariable("id") Long id) {
this.ruleEditionService.enable(id);
return Result.success(null, "操作成功");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@GetMapping("/findById/{id}")
@Operation(summary = "规则详细", description = "规则详细")
public Result findById(@PathVariable("id") Long id) {
return Result.success(ruleEditionService.list(new LambdaQueryWrapper<>() {{
eq(RuleEdition::getRuleId, id);
}}));
}
/**
* 通过id查询
*
* @param id
* @return
*/
@GetMapping("/findByEditionId/{id}")
@Operation(summary = "规则版本详细", description = "规则详细")
public Result findByEditionId(@PathVariable("id") Long id) {
return Result.success(ruleEditionService.list(new LambdaQueryWrapper<>() {{
eq(RuleEdition::getId, id);
}}));
}
/**
* 保存代码
*
* @param ruleEdition
* @return
*/
@PutMapping("/updateRuleEngine")
@Operation(summary = "保存代码", description = "保存代码")
public Result updateRuleEngine(@RequestBody RuleEdition ruleEdition) {
return Result.success(ruleEditionService.updateById(ruleEdition));
}
}