From 5f366e546806a5690ff7a5770857048663e4521a Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 15 Sep 2025 16:17:11 +0800
Subject: [PATCH] feat(ai): 增加公司 ID 筛选功能

---
 src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java                       |    2 +-
 src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java              |   16 +++++++++++++---
 src/main/java/cc/mrbird/febs/ai/controller/productQuestion/AiProductQuestionController.java |   10 +++++++++-
 src/main/java/cc/mrbird/febs/ai/req/AiProductQuestionAiDto.java                             |    1 +
 4 files changed, 24 insertions(+), 5 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 591aa13..497dc54 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
@@ -30,6 +30,8 @@
 
     @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);
@@ -49,6 +51,8 @@
     @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败")
     public FebsResponse add(@RequestBody @Valid AiProductQuestion dto) {
 
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         return aiProductQuestionService.add(dto);
     }
 
@@ -56,6 +60,8 @@
     @ControllerEndpoint(operation = "AI生成题目", exceptionMessage = "操作失败")
     public FebsResponse aiAdd(@RequestBody @Valid AiProductQuestionAiDto dto) {
 
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         return aiProductQuestionService.aiAdd(dto);
     }
 
@@ -78,6 +84,8 @@
     @GetMapping(value = "/questionTree")
     public FebsResponse questionTree() {
 
-        return new FebsResponse().success().data(aiProductQuestionService.questionTree());
+
+        String companyId = getCurrentUserCompanyId();
+        return new FebsResponse().success().data(aiProductQuestionService.questionTree(companyId));
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/req/AiProductQuestionAiDto.java b/src/main/java/cc/mrbird/febs/ai/req/AiProductQuestionAiDto.java
index 1714826..82e7e43 100644
--- a/src/main/java/cc/mrbird/febs/ai/req/AiProductQuestionAiDto.java
+++ b/src/main/java/cc/mrbird/febs/ai/req/AiProductQuestionAiDto.java
@@ -4,6 +4,7 @@
 
 @Data
 public class AiProductQuestionAiDto {
+    private String companyId;
 
     private String productCategoryId;
 
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
index b10b521..23e0259 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductQuestionService.java
@@ -35,7 +35,7 @@
 
     FebsResponse delete(String id);
 
-    List<AiProductQuestion> questionTree();
+    List<AiProductQuestion> questionTree(String companyId);
 
     List<AiProductQuestion> productQuestionTree(LambdaQueryWrapper<AiProductQuestion> aiProductQuestionLambdaQueryWrapper);
 
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
index d125cf8..06a3247 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
@@ -11,6 +11,7 @@
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.json.JSONArray;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -55,6 +56,9 @@
     public IPage<AiProductQuestion> listInPage(AiProductQuestion dto, QueryRequest request) {
         Page<AiProductQuestion> page = new Page<>(request.getPageNum(), request.getPageSize());
         LambdaQueryWrapper<AiProductQuestion> query = Wrappers.lambdaQuery(AiProductQuestion.class);
+        if (StrUtil.isNotEmpty(dto.getCompanyId())){
+            query.eq(AiProductQuestion::getCompanyId, dto.getCompanyId());
+        }
         query.ne(AiProductQuestion::getState, 2);
         Page<AiProductQuestion> pages = aiProductQuestionMapper.selectPage(page, query);
         return pages;
@@ -99,6 +103,7 @@
         for (AiProductQuestionItem item : dto.getAiProductQuestionItems()){
             item.setId(UUID.getSimpleUUIDString());
             item.setProductQuestionId(entity.getId());
+            item.setCompanyId(dto.getCompanyId());
             item.setTitle(entity.getTitle());
             item.setCreatedTime(new Date());
             aiProductQuestionItemService.getBaseMapper().insert(item);
@@ -125,7 +130,6 @@
         if (ObjectUtil.isNotNull( entity)){
             this.update(null,
                     Wrappers.lambdaUpdate(AiProductQuestion.class)
-                            .set(AiProductQuestion::getCompanyId, dto.getCompanyId())
                             .set(AiProductQuestion::getProductCategoryId, dto.getProductCategoryId())
                             .set(AiProductQuestion::getTitle, dto.getTitle())
                             .set(AiProductQuestion::getDifficulty, dto.getDifficulty())
@@ -161,9 +165,13 @@
     }
 
     @Override
-    public List<AiProductQuestion> questionTree() {
+    public List<AiProductQuestion> questionTree(String companyId) {
+        LambdaQueryWrapper<AiProductQuestion> query = Wrappers.lambdaQuery(AiProductQuestion.class);
+        if (StrUtil.isNotEmpty(companyId)){
+            query.eq(AiProductQuestion::getCompanyId, companyId);
+        }
 
-        return aiProductQuestionMapper.selectList(null);
+        return aiProductQuestionMapper.selectList(query);
     }
 
     @Override
@@ -190,6 +198,7 @@
 
             AiProductQuestion aiProductQuestion = new AiProductQuestion();
             aiProductQuestion.setId(UUID.getSimpleUUIDString());
+            aiProductQuestion.setCompanyId(dto.getCompanyId());
             aiProductQuestion.setProductCategoryId(productCategoryId);
             aiProductQuestion.setTitle(title);
             aiProductQuestion.setDifficulty(difficulty);
@@ -205,6 +214,7 @@
                 System.out.println("分析: " + answer.getStr("analysis"));
                 AiProductQuestionItem aiProductQuestionItem = new AiProductQuestionItem();
                 aiProductQuestionItem.setId(UUID.getSimpleUUIDString());
+                aiProductQuestionItem.setCompanyId(dto.getCompanyId());
                 aiProductQuestionItem.setProductQuestionId(aiProductQuestion.getId());
                 aiProductQuestionItem.setTitle(aiProductQuestion.getTitle());
                 aiProductQuestionItem.setAnswer(answer.getStr("answer"));

--
Gitblit v1.9.1