From a4097bd2f00e0cb760599802b9283ec802684420 Mon Sep 17 00:00:00 2001 From: jiang Date: Fri, 13 Dec 2024 18:09:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MirrorManagerController.java | 18 ++++- .../ai/controller/ModelManagerController.java | 12 +++- .../bonus/ai/domain/MirrorManagerEntity.java | 2 +- .../Impl/MirrorManagerServiceImpl.java | 32 +++++++++ .../ai/service/MirrorManagerService.java | 6 +- .../resources/mapper/MirrorManagerMapper.xml | 71 ++++++++++--------- 6 files changed, 102 insertions(+), 39 deletions(-) diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/MirrorManagerController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/MirrorManagerController.java index 0ebf510..d55a5a2 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/MirrorManagerController.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/MirrorManagerController.java @@ -9,6 +9,7 @@ import com.bonus.common.log.annotation.SysLog; import com.bonus.common.log.enums.OperaType; import com.bonus.common.security.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.ArrayList; @@ -26,6 +27,7 @@ public class MirrorManagerController extends BaseController { @Resource private MirrorManagerService aiMirrorManagerService; + /** * 查询镜像管理列表 */ @@ -65,7 +67,7 @@ public class MirrorManagerController extends BaseController { * 修改镜像管理 */ @RequiresPermissions("mirror:manager:edit") - @PutMapping("/edit") + @PostMapping("/edit") @SysLog(title = "镜像管理", businessType = OperaType.UPDATE, logType = 0, module = "镜像管理", details = "导出镜像管理列表") public AjaxResult edit(@RequestBody MirrorManagerEntity aiMirrorManager) { return aiMirrorManagerService.updateAiMirrorManager(aiMirrorManager); @@ -80,4 +82,18 @@ public class MirrorManagerController extends BaseController { public AjaxResult remove(@PathVariable Long[] ids) { return aiMirrorManagerService.deleteAiMirrorManagerByIds(ids); } + + + /** + * 文件上传 + */ + @RequiresPermissions("mirror:manager:uploadFile") + @PostMapping("/uploadFile") + @SysLog(title = "模型管理", businessType = OperaType.DELETE, logType = 0, module = "模型管理", details = "导出模型管理列表") + public AjaxResult uploadFile(@RequestParam("file") MultipartFile file, + @RequestParam("chunk") int chunk, + @RequestParam("totalChunks") int totalChunks, + @RequestParam("fileName") String fileName) { + return aiMirrorManagerService.uploadFile(file, chunk, totalChunks, fileName); + } } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java index b7df134..80b79d2 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/controller/ModelManagerController.java @@ -43,6 +43,16 @@ public class ModelManagerController extends BaseController { } + + /** + * 查询模型管理列表 + */ + @RequiresPermissions("model:manager:list") + @GetMapping("/listAll") + public AjaxResult listAll(ModelManagerEntity aiModelManager) { + return AjaxResult.success(aiModelManagerService.selectAiModelManagerList(aiModelManager)); + } + /** * 获取模型管理详细信息 */ @@ -92,7 +102,7 @@ public class ModelManagerController extends BaseController { @RequestParam("chunk") int chunk, @RequestParam("totalChunks") int totalChunks, @RequestParam("fileName") String fileName) { - return aiModelManagerService.uploadFile(file, chunk, totalChunks,fileName); + return aiModelManagerService.uploadFile(file, chunk, totalChunks, fileName); } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/MirrorManagerEntity.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/MirrorManagerEntity.java index e06ee99..c8f276c 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/MirrorManagerEntity.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/domain/MirrorManagerEntity.java @@ -37,7 +37,7 @@ public class MirrorManagerEntity extends BaseEntity private String mirrorVersion; /** 所属模型 */ - private String ownModel; + private Long ownModel; /** 运行环境 */ private String runEnvironment; diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/MirrorManagerServiceImpl.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/MirrorManagerServiceImpl.java index 911d9c1..6c85932 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/MirrorManagerServiceImpl.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/Impl/MirrorManagerServiceImpl.java @@ -1,12 +1,16 @@ package com.bonus.ai.service.Impl; +import com.bonus.ai.domain.DataSetBasicFileEntity; import com.bonus.ai.domain.MirrorManagerEntity; import com.bonus.ai.mapper.MirrorManagerMapper; import com.bonus.ai.service.MirrorManagerService; +import com.bonus.ai.utils.MinioUtil; import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.common.security.utils.SecurityUtils; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.util.List; @@ -21,6 +25,8 @@ import java.util.List; public class MirrorManagerServiceImpl implements MirrorManagerService { @Resource private MirrorManagerMapper aiMirrorManagerMapper; + @Resource + private MinioUtil minioUtil; /** * 查询镜像管理 @@ -62,6 +68,7 @@ public class MirrorManagerServiceImpl implements MirrorManagerService { @Override public AjaxResult insertAiMirrorManager(MirrorManagerEntity aiMirrorManager) { aiMirrorManager.setCreateTime(DateUtils.getNowDate()); + aiMirrorManager.setCreateBy(SecurityUtils.getUserId().toString()); try { int rows = aiMirrorManagerMapper.insertAiMirrorManager(aiMirrorManager); return rows > 0 ? AjaxResult.success() : AjaxResult.error(); @@ -103,4 +110,29 @@ public class MirrorManagerServiceImpl implements MirrorManagerService { } } + /** + * 文件上传 + * + * @param file + * @param chunk + * @param totalChunks + * @param fileName + */ + @Override + public AjaxResult uploadFile(MultipartFile file, int chunk, int totalChunks, String fileName) { + try { + // 使用唯一路径保存分片到 MinIO + String objectName = SecurityUtils.getUserId().toString() + "/temp/" + fileName + "/chunk_" + chunk; + minioUtil.uploadFile(file, objectName); + // 检查是否是最后一个分片,若是则合并 + if (chunk == totalChunks) { + DataSetBasicFileEntity entity = minioUtil.mergeChunksWithMultithreading(fileName, totalChunks, minioUtil.joinPath(SecurityUtils.getUserId().toString(), "mirror/")); + return AjaxResult.success(entity); + } + return AjaxResult.success(); + } catch (Exception e) { + return AjaxResult.error(); + } + } + } diff --git a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/MirrorManagerService.java b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/MirrorManagerService.java index 0b45905..c3e527b 100644 --- a/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/MirrorManagerService.java +++ b/bonus-modules/bonus-ai/src/main/java/com/bonus/ai/service/MirrorManagerService.java @@ -2,6 +2,7 @@ package com.bonus.ai.service; import com.bonus.ai.domain.MirrorManagerEntity; import com.bonus.common.core.web.domain.AjaxResult; +import org.springframework.web.multipart.MultipartFile; import java.util.List; @@ -52,5 +53,8 @@ public interface MirrorManagerService * @return 结果 */ public AjaxResult deleteAiMirrorManagerByIds(Long[] ids); - + /** + * 文件上传 + */ + AjaxResult uploadFile(MultipartFile file, int chunk, int totalChunks, String fileName); } diff --git a/bonus-modules/bonus-ai/src/main/resources/mapper/MirrorManagerMapper.xml b/bonus-modules/bonus-ai/src/main/resources/mapper/MirrorManagerMapper.xml index a953770..96de041 100644 --- a/bonus-modules/bonus-ai/src/main/resources/mapper/MirrorManagerMapper.xml +++ b/bonus-modules/bonus-ai/src/main/resources/mapper/MirrorManagerMapper.xml @@ -27,51 +27,52 @@ - select id, - create_by, - con_manner, - interface_document, - document_path, - mirror_name, - mirror_version, - own_model, - run_environment, - model_frame, - language, - mirror_path, - remark, - create_time, - update_time, - is_active, - datasetId, - modelFileName, - manualFileName - from ai_mirror_manager + select am.id, + am.create_by, + am.con_manner, + am.interface_document, + am.document_path, + am.mirror_name, + am.mirror_version, + am.own_model, + am.run_environment, + am.model_frame, + am.language, + am.mirror_path, + am.remark, + am.create_time, + am.update_time, + am.is_active, + am.modelFileName, + am.manualFileName, + CONCAT(amm.model_name, ' - ', amm.model_version) AS datasetId + from ai_mirror_manager am + LEFT JOIN ai_model_manager amm ON amm.id = am.own_model - where id = #{id} + where am.id = #{id}