package com.muyu.controller; 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.common.security.annotation.RequiresPermissions; import com.muyu.domain.EngineVersion; import com.muyu.domain.model.TestData; import com.muyu.javacomplier.OSSFileDownload; import com.muyu.req.EngineVersionQueryReq; import com.muyu.req.VersionClassCreateReq; import com.muyu.resp.EngineConfigScopeResp; import com.muyu.resp.VersionClassCreateResp; import com.muyu.service.EngineVersionService; import com.muyu.test.JavaClass; import com.muyu.utils.DownloadOssSynchronization; import com.muyu.utils.OssUpload; 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; @Component @RestController @Log4j2 @RequestMapping("/version") public class EngineVersionController extends BaseController { @Autowired EngineVersionService engineVersionService; /** * 查询引擎规则配置列表 */ @GetMapping("/list") public Result> list(EngineVersionQueryReq engineConfigQueryReq) { return Result.success(engineVersionService.list(EngineVersion.queryBuild(engineConfigQueryReq))); } /** * 查看版本列表 * * @return */ @GetMapping("/selectVersionList") public Result> selectVersionList() { return Result.success(engineVersionService.list()); } /** * 添加版本信息 * * @param engineVersion * @return */ @PostMapping("/insert") public Result insert(@RequestBody EngineVersion engineVersion) { return engineVersionService.add(engineVersion); } /** * 修改版本信息 * * @param engineVersion * @return */ @PostMapping("/update") public EngineVersion update(@RequestBody EngineVersion engineVersion) { return engineVersionService.updateMsg(engineVersion); } /** * 删除版本信息 * * @param id * @return */ @PostMapping("/delete/{id}") public Result delete(@PathVariable Long id) { boolean b = engineVersionService.removeById(id); return Result.success(b); } /** * 查询版本信息 * * @param id * @return */ @GetMapping("/getVersion/{id}") public Result getVersion(@PathVariable("id") Long id) { EngineVersion byId = engineVersionService.getById(id); return Result.success(byId); } /** * 获取引擎配置作用域列表 */ @GetMapping("/getScopeList") public Result> getScopeList() { return Result.success(engineVersionService.getScopeList()); } /** * 通过引擎作用域编号获取引擎配置作用域信息 */ @RequiresPermissions("rule-engine:version:list") @GetMapping("/getScopeInfo/{id}") public Result getScopeInfoById(@PathVariable Integer id) { return Result.success(engineVersionService.getScopeInfoById(id)); } /** * 测试引擎规则配置 */ @PostMapping(value = "/test") public Result ruleTest(@RequestBody TestData testData) { return Result.success(engineVersionService.ruleTest(testData)); } /** * 创建代码版本类名和代码模板 */ @PostMapping("/createVersionClass") public Result createVersionClass(@RequestBody VersionClassCreateReq req) { VersionClassCreateResp versionClassCreateResp = engineVersionService.createVersionClass(req); return Result.success(versionClassCreateResp); } /** * 导出 */ @PostMapping("/export") public void export(HttpServletResponse httpServletResponse, EngineVersion engineVersion) { List list = engineVersionService.list(); ExcelUtil engineMaintenanceExcelUtil = new ExcelUtil<>(EngineVersion.class); engineMaintenanceExcelUtil.exportExcel(httpServletResponse, list, "规则引擎版本"); } /** * 查询版本列表 * * @param id * @return */ @PostMapping("/selectListById/{id}") public Result selectListById(@PathVariable Long id) { return Result.success(engineVersionService.getById(id)); } /** * 添加版本信息 */ @PostMapping("/insertVersion") public boolean insertVersion(@RequestBody EngineVersion engineVersion) { // OssUpload.uploadFiles(engineVersion.getRuleContent(), engineVersion.getVersionCode()); // // JavaClass.compile(engineVersion.getName()); engineVersion.setId(null); boolean insert = engineVersionService.insert(engineVersion); return insert; } /** * 开启 * * @param id * @return */ @PostMapping("/open/{id}") public Result open(@PathVariable Integer id) { engineVersionService.onEngine(id); return Result.success(); } /** * 关闭 * * @param id * @return */ @PostMapping("/close/{id}") public Result close(@PathVariable Integer id) { engineVersionService.close(id); return Result.success(); } /** * 根据id查询版本信息 */ @GetMapping("/getVersionById/{id}") public Result getVersionById(@PathVariable("id") Long id) { return Result.success(engineVersionService.getById(id)); } }