package com.iailab.module.model.matlab.controller.admin; import com.iailab.framework.common.exception.enums.GlobalErrorCodeConstants; import com.iailab.framework.common.page.PageData; import com.iailab.framework.common.pojo.CommonResult; import com.iailab.module.model.matlab.common.exceptions.IllegalityJarException; import com.iailab.module.model.matlab.dto.MatlabJarFileInfoDTO; import com.iailab.module.model.matlab.dto.MatlabRunDTO; import com.iailab.module.model.matlab.dto.MlModelDTO; import com.iailab.module.model.matlab.service.MlModelService; import com.iailab.module.model.mpk.dto.MpkFileDTO; import io.swagger.v3.oas.annotations.Operation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; import java.util.List; import java.util.Map; import static com.iailab.framework.common.pojo.CommonResult.success; /** * @author Dzd * @since 1.0.0 2025-02-08 */ @RestController @RequestMapping("/model/matlab/model") public class MlModelController { @Autowired private MlModelService mlModelService; @GetMapping("page") @Operation(summary = "分页") @PreAuthorize("@ss.hasPermission('ml:model:query')") public CommonResult> page(@RequestParam Map params) { PageData page = mlModelService.page(params); return success(page); } @GetMapping("{id}") @Operation(summary = "信息") @PreAuthorize("@ss.hasPermission('ml:model:query')") public CommonResult get(@PathVariable("id") String id){ MlModelDTO data = mlModelService.get(id); return success(data); } @PreAuthorize("@ss.hasPermission('ml:model:query')") @GetMapping("list") public CommonResult> list(@RequestParam Map params) { List list = mlModelService.list(params); return success(list); } @PostMapping @Operation(summary = "保存") @PreAuthorize("@ss.hasPermission('ml:model:create')") public CommonResult save(@RequestBody MlModelDTO dto){ mlModelService.save(dto); return success(); } @PutMapping @Operation(summary = "修改") @PreAuthorize("@ss.hasPermission('ml:model:update')") public CommonResult update(@RequestBody MlModelDTO dto){ mlModelService.update(dto); return success(); } @DeleteMapping @Operation(summary = "删除") @PreAuthorize("@ss.hasPermission('ml:model:delete')") public CommonResult delete(String id){ mlModelService.delete(id); return success(); } @PostMapping("/upload") @Operation(summary = "算法封装jar文件上传") public CommonResult upload(@RequestParam("file") MultipartFile file){ MatlabJarFileInfoDTO result = null; try { result = mlModelService.uploadJarFile(file); } catch (IllegalityJarException e) { return CommonResult.error(GlobalErrorCodeConstants.BAD_REQUEST.getCode(),"非法jar包"); } return success(result); } @PostMapping("/test") @Operation(summary = "Matlab测试运行") public CommonResult test(@RequestBody MatlabRunDTO dto) { return mlModelService.test(dto); } @PostMapping("/importData") @Operation(summary = "导入参数") public CommonResult>> importData(@RequestParam("file") MultipartFile file) throws Exception { List> result = mlModelService.importData(file); return success(result); } }