From a874b928e16320839315b9abcdf2cece1229a424 Mon Sep 17 00:00:00 2001
From: houzhongjian <houzhongyi@126.com>
Date: 星期四, 07 十一月 2024 09:20:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/controller/admin/MpkFileController.java |   91 +++++++++++++++++++++++++++++++--------------
 1 files changed, 62 insertions(+), 29 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 bba6bb7..74f7a1b 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
@@ -1,15 +1,14 @@
 package com.iailab.module.model.mpk.controller.admin;
 
-import com.alibaba.fastjson.JSON;
 import com.iailab.framework.common.page.PageData;
 import com.iailab.framework.common.pojo.CommonResult;
-import com.iailab.framework.common.util.date.DateUtils;
-import com.iailab.module.model.mpk.common.utils.Readtxt;
 import com.iailab.module.model.mpk.dto.MpkFileDTO;
-import com.iailab.module.model.mpk.service.MdkFileService;
+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.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;
@@ -30,65 +29,94 @@
 @RequestMapping("/model/mpk/file")
 public class MpkFileController {
     @Autowired
-    private MdkFileService mdkFileService;
+    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 = mdkFileService.page(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 = mdkFileService.get(id);
-
+        MpkFileDTO schedule = mpkFileService.get(id);
+        List<String> menuAndGroup = new ArrayList<>();
+        menuAndGroup.add(schedule.getMenuName());
+        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 = mdkFileService.list(new HashMap<>());
+        List<MpkFileDTO> list = mpkFileService.list(new HashMap<>());
 
         return success(list);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:create')")
     @PostMapping
-    public CommonResult save(@RequestBody MpkFileDTO dto) {
-        mdkFileService.save(dto);
-        return CommonResult.success();
+    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.getClassName()));
+        mpkFileService.save(dto);
+        return CommonResult.success(true);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:delete')")
     @DeleteMapping
-    public CommonResult delete(String id) {
-        mdkFileService.delete(id);
-        return CommonResult.success();
+    public CommonResult<Boolean> delete(String id) {
+        mpkFileService.delete(id);
+        return CommonResult.success(true);
     }
 
+    @PreAuthorize("@ss.hasPermission('mpk:file:update')")
     @PutMapping
-    public CommonResult update(@RequestBody MpkFileDTO dto) {
-        mdkFileService.update(dto);
-        return CommonResult.success();
+    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.getClassName()));
+        mpkFileService.update(dto);
+        return CommonResult.success(true);
     }
 
     @GetMapping("generat")
-    public void generat(String id, String remark,String zipFileName, HttpServletResponse response) throws IOException {
-        byte[] data = mdkFileService.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 {
         byte[] data;
         try {
-            data = mdkFileService.packageModel(Arrays.asList(ids.split(",")),projectId,projectName,zipFileName,log,version);
+            data = mpkFileService.packageModel(Arrays.asList(ids.split(",")),projectId,projectName,zipFileName,log,version);
         } catch (InterruptedException e) {
             throw new RuntimeException("模型打包失败",e);
         }
@@ -103,8 +131,13 @@
 
     @PostMapping("/upload")
     @Operation(summary = "python文件上传")
-    public CommonResult<Map<String,String>> importExcel(@RequestParam("file") MultipartFile file) throws Exception {
-        Map<String,String> result = mdkFileService.savePyFile(file);
+    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