From 7abf9f290c39dd20f865be53dbecee7fab6de140 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 26 十月 2026 19:12:41 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_business_新高电力' into dev_business_新高电力

---
 yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiModelController.java |   57 ++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 44 insertions(+), 13 deletions(-)

diff --git a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiModelController.java b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiModelController.java
index 86dd4d0..1a2b624 100644
--- a/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiModelController.java
+++ b/yudao-module-ai/src/main/java/cn/iocoder/yudao/module/ai/controller/admin/model/AiModelController.java
@@ -4,6 +4,10 @@
 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
+import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelImportExcelVO;
+import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelImportReqVO;
+import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelImportRespVO;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelPageReqVO;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelRespVO;
 import cn.iocoder.yudao.module.ai.controller.admin.model.vo.model.AiModelSaveReqVO;
@@ -13,11 +17,14 @@
 import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.tags.Tag;
 import jakarta.annotation.Resource;
+import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.Valid;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import java.io.IOException;
+import java.util.Arrays;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@@ -33,14 +40,14 @@
     private AiModelService modelService;
 
     @PostMapping("/create")
-    @Operation(summary = "鍒涘缓妯″瀷")
+    @Operation(summary = "鍒涘缓 AI 妯″瀷")
     @PreAuthorize("@ss.hasPermission('ai:model:create')")
     public CommonResult<Long> createModel(@Valid @RequestBody AiModelSaveReqVO createReqVO) {
         return success(modelService.createModel(createReqVO));
     }
 
     @PutMapping("/update")
-    @Operation(summary = "鏇存柊妯″瀷")
+    @Operation(summary = "鏇存柊 AI 妯″瀷")
     @PreAuthorize("@ss.hasPermission('ai:model:update')")
     public CommonResult<Boolean> updateModel(@Valid @RequestBody AiModelSaveReqVO updateReqVO) {
         modelService.updateModel(updateReqVO);
@@ -48,7 +55,7 @@
     }
 
     @DeleteMapping("/delete")
-    @Operation(summary = "鍒犻櫎妯″瀷")
+    @Operation(summary = "鍒犻櫎 AI 妯″瀷")
     @Parameter(name = "id", description = "缂栧彿", required = true)
     @PreAuthorize("@ss.hasPermission('ai:model:delete')")
     public CommonResult<Boolean> deleteModel(@RequestParam("id") Long id) {
@@ -57,16 +64,15 @@
     }
 
     @GetMapping("/get")
-    @Operation(summary = "鑾峰緱妯″瀷")
+    @Operation(summary = "鑾峰彇 AI 妯″瀷")
     @Parameter(name = "id", description = "缂栧彿", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('ai:model:query')")
     public CommonResult<AiModelRespVO> getModel(@RequestParam("id") Long id) {
-        AiModelDO model = modelService.getModel(id);
-        return success(BeanUtils.toBean(model, AiModelRespVO.class));
+        return success(BeanUtils.toBean(modelService.getModel(id), AiModelRespVO.class));
     }
 
     @GetMapping("/page")
-    @Operation(summary = "鑾峰緱妯″瀷鍒嗛〉")
+    @Operation(summary = "鑾峰彇 AI 妯″瀷鍒嗛〉")
     @PreAuthorize("@ss.hasPermission('ai:model:query')")
     public CommonResult<PageResult<AiModelRespVO>> getModelPage(@Valid AiModelPageReqVO pageReqVO) {
         PageResult<AiModelDO> pageResult = modelService.getModelPage(pageReqVO);
@@ -74,16 +80,41 @@
     }
 
     @GetMapping("/simple-list")
-    @Operation(summary = "鑾峰緱妯″瀷鍒楄〃")
-    @Parameter(name = "type", description = "绫诲瀷", required = true, example = "1")
-    @Parameter(name = "platform", description = "骞冲彴", example = "midjourney")
+    @Operation(summary = "鑾峰緱妯″瀷绠�鍗曞垪琛�", description = "鐢ㄤ簬涓嬫媺閫夋嫨鍣ㄧ瓑鍦烘櫙")
+    @Parameter(name = "type", description = "妯″瀷绫诲瀷", required = true, example = "1")
+    @Parameter(name = "platform", description = "妯″瀷骞冲彴", example = "TongYi")
     public CommonResult<List<AiModelRespVO>> getModelSimpleList(
             @RequestParam("type") Integer type,
             @RequestParam(value = "platform", required = false) String platform) {
         List<AiModelDO> list = modelService.getModelListByStatusAndType(
                 CommonStatusEnum.ENABLE.getStatus(), type, platform);
-        return success(convertList(list, model -> new AiModelRespVO().setId(model.getId())
-                .setName(model.getName()).setModel(model.getModel()).setPlatform(model.getPlatform())));
+        return success(convertList(list, model -> new AiModelRespVO()
+                .setId(model.getId())
+                .setName(model.getName())
+                .setModel(model.getModel())
+                .setPlatform(model.getPlatform())));
     }
 
-}
\ No newline at end of file
+    @GetMapping("/get-import-template")
+    @Operation(summary = "鑾峰緱瀵煎叆妯″瀷妯℃澘")
+    public void importTemplate(HttpServletResponse response) throws IOException {
+        // 鎵嬪姩鍒涘缓瀵煎嚭 demo
+        List<AiModelImportExcelVO> list = Arrays.asList(
+                AiModelImportExcelVO.builder().name("绀轰緥妯″瀷").keyName("绀轰緥瀵嗛挜").model("qwen-plus")
+                        .platform("TongYi").type(1).sort(0).status(0)
+                        .temperature(0.7).maxTokens(4096).maxContexts(10).build()
+        );
+        // 杈撳嚭
+        ExcelUtils.write(response, "妯″瀷閰嶇疆瀵煎叆妯℃澘.xls", "妯″瀷閰嶇疆鍒楄〃", AiModelImportExcelVO.class, list);
+    }
+
+    @PostMapping("/import")
+    @Operation(summary = "瀵煎叆妯″瀷")
+    @PreAuthorize("@ss.hasPermission('ai:model:import')")
+    public CommonResult<AiModelImportRespVO> importExcel(@Valid AiModelImportReqVO importReqVO)
+            throws Exception {
+        List<AiModelImportExcelVO> list = ExcelUtils.read(importReqVO.getFile(), AiModelImportExcelVO.class);
+        return success(modelService.importModelList(list, importReqVO));
+    }
+
+}

--
Gitblit v1.9.3