From 3374d19db03cce97572c3a294f137d1ea70b307f Mon Sep 17 00:00:00 2001
From: 潘志宝 <979469083@qq.com>
Date: 星期四, 12 十二月 2024 13:26:05 +0800
Subject: [PATCH] Merge branch 'master' of http://dlindusit.com:53929/r/iailab-plat

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MpkFileController.java |   82 +++++++++++++++++++++++++++++++----------
 1 files changed, 62 insertions(+), 20 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MpkFileController.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MpkFileController.java
index ad7352f..382c140 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MpkFileController.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MpkFileController.java
@@ -4,9 +4,13 @@
 import com.iailab.framework.common.pojo.CommonResult;
 import com.iailab.module.model.mpk.dto.MpkFileDTO;
 import com.iailab.module.model.mpk.service.MpkFileService;
+import com.iailab.module.model.mpk.service.PackService;
 import io.swagger.v3.oas.annotations.Operation;
 import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -28,63 +32,96 @@
     @Autowired
     private MpkFileService mpkFileService;
 
+    @Autowired
+    private PackService packService;
+
     @GetMapping("page")
     @Operation(summary = "分页")
+    @PreAuthorize("@ss.hasPermission('mpk:file:query')")
     public CommonResult<PageData<MpkFileDTO>> page(@RequestParam Map<String, Object> params) {
         PageData<MpkFileDTO> page = mpkFileService.page(params);
-
         return success(page);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:query')")
     @GetMapping("{id}")
     public CommonResult<MpkFileDTO> info(@PathVariable("id") String id) {
         MpkFileDTO schedule = mpkFileService.get(id);
-
+        List<String> menuAndGroup = new ArrayList<>();
+        if (StringUtils.isNotBlank(schedule.getMenuName())) {
+            menuAndGroup.add(schedule.getMenuName());
+        }
+        if (StringUtils.isNotBlank(schedule.getGroupName())) {
+            menuAndGroup.add(schedule.getGroupName());
+        }
+        schedule.setMenuAndGroup(menuAndGroup);
         return success(schedule);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:query')")
     @GetMapping("list")
-    public CommonResult<List<MpkFileDTO>> list() {
-        List<MpkFileDTO> list = mpkFileService.list(new HashMap<>());
+    public CommonResult<List<MpkFileDTO>> list(@RequestParam Map<String, Object> params) {
+        List<MpkFileDTO> list = mpkFileService.list(params);
 
         return success(list);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:create')")
     @PostMapping
-    public CommonResult save(@RequestBody MpkFileDTO dto) {
+    public CommonResult<Boolean> save(@RequestBody MpkFileDTO dto) {
+        if (!CollectionUtils.isEmpty(dto.getMenuAndGroup())) {
+            dto.setMenuName(dto.getMenuAndGroup().get(0));
+            if (dto.getMenuAndGroup().size() > 1) {
+                dto.setGroupName(dto.getMenuAndGroup().get(1));
+            }
+        }
+        dto.setPyModule(packService.getModelPath(dto.getPkgName()));
         mpkFileService.save(dto);
-        return CommonResult.success();
+        return CommonResult.success(true);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:delete')")
     @DeleteMapping
-    public CommonResult delete(String id) {
+    public CommonResult<Boolean> delete(String id) {
         mpkFileService.delete(id);
-        return CommonResult.success();
+        return CommonResult.success(true);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:update')")
     @PutMapping
-    public CommonResult update(@RequestBody MpkFileDTO dto) {
+    public CommonResult<Boolean> update(@RequestBody MpkFileDTO dto) {
+        if (!CollectionUtils.isEmpty(dto.getMenuAndGroup())) {
+            dto.setMenuName(dto.getMenuAndGroup().get(0));
+            if (dto.getMenuAndGroup().size() > 1) {
+                dto.setGroupName(dto.getMenuAndGroup().get(1));
+            }
+        }
+        dto.setPyModule(packService.getModelPath(dto.getPkgName()));
         mpkFileService.update(dto);
-        return CommonResult.success();
+        return CommonResult.success(true);
     }
 
     @GetMapping("generat")
-    public void generat(String id, String remark,String zipFileName, HttpServletResponse response) throws IOException {
-        byte[] data = mpkFileService.generatorCode(id, remark,zipFileName);
+    public void generat(String id, String remark,String zipFileName, HttpServletResponse response) {
+        try {
+            byte[] data = mpkFileService.generatorCode(id, remark,zipFileName);
 
-        response.reset();
-        response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(zipFileName, "UTF-8") + "\"");
-        response.addHeader("Content-Length", "" + data.length);
-        response.setContentType("application/octet-stream; charset=UTF-8");
+            response.reset();
+            response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(zipFileName, "UTF-8") + "\"");
+            response.addHeader("Content-Length", "" + data.length);
+            response.setContentType("application/octet-stream; charset=UTF-8");
 
-        IOUtils.write(data, response.getOutputStream());
+            IOUtils.write(data, response.getOutputStream());
+        } catch (Exception e) {
+            throw new RuntimeException("代码生成异常",e);
+        }
     }
 
     @GetMapping("packageModel")
-    public void packageModel(String ids ,String projectId,String log ,String projectName,String version,String zipFileName,HttpServletResponse response) throws IOException {
+    public void packageModel(String projectId,String log ,String projectName,String version,String zipFileName,HttpServletResponse response) throws IOException {
         byte[] data;
         try {
-            data = mpkFileService.packageModel(Arrays.asList(ids.split(",")),projectId,projectName,zipFileName,log,version);
+            data = mpkFileService.packageModel(projectId,projectName,zipFileName,log,version);
         } catch (InterruptedException e) {
             throw new RuntimeException("模型打包失败",e);
         }
@@ -99,8 +136,13 @@
 
     @PostMapping("/upload")
     @Operation(summary = "python文件上传")
-    public CommonResult<Map<String,String>> importExcel(@RequestParam("file") MultipartFile file) throws Exception {
+    public CommonResult<Map<String,String>> upload(@RequestParam("file") MultipartFile file) throws Exception {
         Map<String,String> result = mpkFileService.savePyFile(file);
         return success(result);
     }
+
+    @PostMapping("/publish")
+    public CommonResult<String> publish(@RequestBody Map<String, Object> params) {
+        return mpkFileService.publish(params);
+    }
 }
\ No newline at end of file

--
Gitblit v1.9.3