From cbe4b354224dfc34a852c7b7f932d33bbe85ffec Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 03 Feb 2026 15:19:39 +0800
Subject: [PATCH] feat(ai): 新增产品题目导入导出功能

---
 src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java |   83 +++++++++++++++++++++++++++++++++++++----
 1 files changed, 74 insertions(+), 9 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java b/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java
index faa94f0..075ec0a 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java
@@ -1,20 +1,41 @@
 package cc.mrbird.febs.ai.controller.productQuestion;
 
-import cc.mrbird.febs.ai.entity.AiProductPoint;
 import cc.mrbird.febs.ai.entity.AiProductQuestion;
+import cc.mrbird.febs.ai.entity.AiProductQuestionItem;
+import cc.mrbird.febs.ai.entity.AiProductQuestionJob;
 import cc.mrbird.febs.ai.req.AiProductQuestionAiDto;
 import cc.mrbird.febs.ai.service.AiProductQuestionService;
 import cc.mrbird.febs.common.annotation.ControllerEndpoint;
 import cc.mrbird.febs.common.controller.BaseController;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.common.utils.excl.ExcelSheetPO;
+import cc.mrbird.febs.common.utils.excl.ExcelUtil;
+import cc.mrbird.febs.common.utils.excl.ExcelVersion;
+import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil;
+import cc.mrbird.febs.mall.dto.DeliverGoodsDto;
+import cc.mrbird.febs.mall.entity.MallOrderInfo;
+import cc.mrbird.febs.mall.entity.MallOrderItem;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
+import java.io.File;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -31,8 +52,19 @@
 
     @GetMapping("list")
     public FebsResponse list(AiProductQuestion dto, QueryRequest request) {
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
 
         Map<String, Object> data = getDataTable(aiProductQuestionService.listInPage(dto, request));
+        return new FebsResponse().success().data(data);
+    }
+
+    @GetMapping("jobList")
+    public FebsResponse jobList(AiProductQuestionJob dto, QueryRequest request) {
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
+
+        Map<String, Object> data = getDataTable(aiProductQuestionService.listJobInPage(dto, request));
         return new FebsResponse().success().data(data);
     }
 
@@ -50,7 +82,21 @@
     @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败")
     public FebsResponse add(@RequestBody @Valid AiProductQuestion dto) {
 
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         return aiProductQuestionService.add(dto);
+    }
+
+    @PostMapping("aiAdd")
+    @ControllerEndpoint(operation = "AI生成题目", exceptionMessage = "操作失败")
+    public FebsResponse aiAdd(@RequestBody @Valid AiProductQuestionAiDto dto) {
+
+//        String companyId = getCurrentUserCompanyId();
+//        dto.setCompanyId(companyId);
+//        return aiProductQuestionService.aiAdd(dto);
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
+        return aiProductQuestionService.aiAddV2(dto);
     }
 
     @PostMapping("update")
@@ -58,6 +104,18 @@
     public FebsResponse update(@RequestBody @Valid AiProductQuestion dto) {
 
         return aiProductQuestionService.update(dto);
+    }
+
+    @PostMapping(value = "stateUpdate/{type}/{ids}")
+    @ControllerEndpoint(operation = "更新", exceptionMessage = "操作失败")
+    public FebsResponse stateUpdate(@PathVariable("ids") String ids, @PathVariable("type") Integer type) {
+        return aiProductQuestionService.stateUpdate(ids, type);
+    }
+
+    @PostMapping(value = "productQuestionDelete/{ids}")
+    @ControllerEndpoint(operation = "删除", exceptionMessage = "操作失败")
+    public FebsResponse productQuestionDelete(@PathVariable("ids") String ids) {
+        return aiProductQuestionService.productQuestionDelete(ids);
     }
 
     @GetMapping("delete/{id}")
@@ -69,16 +127,23 @@
         return aiProductQuestionService.delete(id);
     }
 
-    @PostMapping("aiCreate/{id}")
-    @ControllerEndpoint(operation = "AI生成题目", exceptionMessage = "操作失败")
-    public FebsResponse aiCreate(@RequestBody @Valid AiProductQuestionAiDto dto) {
-
-        return aiProductQuestionService.aiCreate(dto);
-    }
-
     @GetMapping(value = "/questionTree")
     public FebsResponse questionTree() {
 
-        return new FebsResponse().success().data(aiProductQuestionService.questionTree());
+
+        String companyId = getCurrentUserCompanyId();
+        return new FebsResponse().success().data(aiProductQuestionService.questionTree(companyId));
+    }
+
+    @GetMapping("exportProductQuestion")
+    @ControllerEndpoint(operation = "导出", exceptionMessage = "操作失败")
+    public FebsResponse exportProductQuestion(AiProductQuestion dto, HttpServletResponse response) throws IOException {
+        aiProductQuestionService.exportProductQuestion(dto, response);
+        return null;
+    }
+    @PostMapping(value = "/importProductQuestion")
+    @ControllerEndpoint(operation = "导入", exceptionMessage = "操作失败")
+    public FebsResponse importDeliver(@RequestBody MultipartFile file){
+        return aiProductQuestionService.importDeliver(file);
     }
 }

--
Gitblit v1.9.1