From 4b62aeaa85b5700217b8130903342a8fb27ac453 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Thu, 12 Feb 2026 16:10:22 +0800
Subject: [PATCH] feat(ai): 添加产品问答管理功能的题目详情展示

---
 src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java |   75 +++++++++++++++++++++++++++++++++++++
 1 files changed, 74 insertions(+), 1 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 8fc94e9..2842b51 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,6 +1,7 @@
 package cc.mrbird.febs.ai.controller.productQuestion;
 
 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;
@@ -8,13 +9,33 @@
 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;
 
 /**
@@ -45,6 +66,12 @@
 
         Map<String, Object> data = getDataTable(aiProductQuestionService.listJobInPage(dto, request));
         return new FebsResponse().success().data(data);
+    }
+    @GetMapping("/jobChild")
+    public FebsResponse jobChild(QueryRequest request, AiProductQuestionJob dto, String jobId) {
+        dto.setId(jobId);
+        Map<String, Object> dataTable = getDataTable(aiProductQuestionService.jobChild(request, dto));
+        return new FebsResponse().success().data(dataTable);
     }
 
     @GetMapping("changeState/{id}/{state}")
@@ -86,9 +113,21 @@
     }
 
     @PostMapping(value = "stateUpdate/{type}/{ids}")
-    @ControllerEndpoint(operation = "更新", exceptionMessage = "更新失败")
+    @ControllerEndpoint(operation = "更新", exceptionMessage = "操作失败")
     public FebsResponse stateUpdate(@PathVariable("ids") String ids, @PathVariable("type") Integer type) {
         return aiProductQuestionService.stateUpdate(ids, type);
+    }
+
+    @PostMapping(value = "jobStateUpdate/{ids}")
+    @ControllerEndpoint(operation = "更新", exceptionMessage = "操作失败")
+    public FebsResponse jobStateUpdate(@PathVariable("ids") String ids) {
+        return aiProductQuestionService.jobStateUpdate(ids);
+    }
+
+    @PostMapping(value = "productQuestionDelete/{ids}")
+    @ControllerEndpoint(operation = "删除", exceptionMessage = "操作失败")
+    public FebsResponse productQuestionDelete(@PathVariable("ids") String ids) {
+        return aiProductQuestionService.productQuestionDelete(ids);
     }
 
     @GetMapping("delete/{id}")
@@ -107,4 +146,38 @@
         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);
+    }
+
+    @PostMapping("updateLabel")
+    @ControllerEndpoint(operation = "更新标签", exceptionMessage = "操作失败")
+    public FebsResponse updateLabel(@RequestBody @Valid AiProductQuestion dto) {
+
+        return aiProductQuestionService.updateLabel(dto.getIds(), dto.getLabel());
+    }
+
+    @GetMapping("exportNewProductQuestion")
+    @ControllerEndpoint(operation = "模板导出", exceptionMessage = "操作失败")
+    public FebsResponse exportNewProductQuestion(AiProductQuestion dto, HttpServletResponse response) throws IOException {
+        aiProductQuestionService.exportNewProductQuestion(dto, response);
+        return null;
+    }
+
+    @PostMapping(value = "/importNewProductQuestion")
+    @ControllerEndpoint(operation = "模板导入", exceptionMessage = "操作失败")
+    public FebsResponse importNewProductQuestion(@RequestBody MultipartFile file, @RequestParam String categoryId, @RequestParam Integer difficulty){
+
+        String companyId = getCurrentUserCompanyId();
+        return aiProductQuestionService.importNewProductQuestion(file, categoryId, companyId,difficulty);
+    }
 }

--
Gitblit v1.9.1