From 3b05389a5bcf93ead612761835952699a4b2e302 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 15 Sep 2025 16:50:21 +0800
Subject: [PATCH] refactor(ai): 重构产品配置相关功能

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java         |    2 +-
 src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java            |    3 +++
 src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java |    2 --
 src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html      |    4 ++--
 src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java            |   12 ++++++++++++
 src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java                   |    1 -
 src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java       |    5 ++++-
 7 files changed, 22 insertions(+), 7 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java b/src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java
index 24373ad..5c9d160 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java
@@ -75,8 +75,6 @@
     @ControllerEndpoint(operation = "产品配置", exceptionMessage = "操作失败")
     public FebsResponse productSet(@RequestBody @Valid AdminMoveChooseInfoDto dto) {
 
-        String companyId = getCurrentUserCompanyId();
-        dto.setCompanyId(companyId);
         return aiMemberRoleService.productSet(dto);
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java b/src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java
index 816ca69..45fd783 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/product/AiProductController.java
@@ -30,7 +30,8 @@
 
     @GetMapping("list")
     public FebsResponse list(AiProduct dto, QueryRequest request) {
-
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         Map<String, Object> data = getDataTable(aiProductService.listInPage(dto, request));
         return new FebsResponse().success().data(data);
     }
@@ -50,6 +51,8 @@
     @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败")
     public FebsResponse add(@RequestBody @Valid AiProduct dto) {
 
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         return aiProductService.add(dto);
     }
 
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java b/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java
index fea3805..1514d86 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java
@@ -156,11 +156,13 @@
         Set<String> productIds = new HashSet<>();
 
         AiProduct entity = aiProductService.getById(id);
+        String companyId = entity.getCompanyId();
         if(ObjectUtil.isNotNull(entity)){
             //右侧数据
             LambdaQueryWrapper<AiProductQuestionLink> query = Wrappers.lambdaQuery(AiProductQuestionLink.class);
             if(StrUtil.isNotEmpty(id)){
                 query.eq(AiProductQuestionLink::getProductId, id);
+                query.eq(AiProductQuestionLink::getCompanyId, companyId);
             }
             List<AiProductQuestionLink> selectedList = aiProductQuestionLinkService.selectListByQuery(query);
             if(CollUtil.isNotEmpty(selectedList)){
@@ -172,6 +174,7 @@
             LambdaQueryWrapper<AiProductQuestion> aiProductQuestionLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class);
             aiProductQuestionLambdaQueryWrapper.eq(AiProductQuestion::getProductCategoryId, entity.getProductCategoryId());
             aiProductQuestionLambdaQueryWrapper.eq(AiProductQuestion::getState, 1);
+            aiProductQuestionLambdaQueryWrapper.eq(AiProductQuestion::getCompanyId, companyId);
             List<AiProductQuestion> allList = aiProductQuestionService.productQuestionTree(aiProductQuestionLambdaQueryWrapper);
             if(CollUtil.isNotEmpty(allList)){
                 //stream流操作mallMembers,生成一个新的List<MallMemberVo>
diff --git a/src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java b/src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java
index ba3bc79..0c79a18 100644
--- a/src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java
@@ -8,7 +8,6 @@
 public class AdminMoveChooseInfoDto {
 
     private String chooseId;
-    private String companyId;
 
     private List<String> chooseIds;
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
index 388c09c..2151bc3 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java
@@ -124,10 +124,10 @@
     @Override
     public FebsResponse productSet(AdminMoveChooseInfoDto dto) {
         String chooseId = dto.getChooseId();
-        String companyId = dto.getCompanyId();
         List<String> chooseIds = dto.getChooseIds();
         AiMemberRole aiMemberRole = this.getById(chooseId);
         if (ObjectUtil.isNotNull(aiMemberRole)) {
+            String companyId = aiMemberRole.getCompanyId();
             aiMemberRoleProductService.deleteByQuery(
                     Wrappers.lambdaQuery(AiMemberRoleProduct.class)
                             .eq(AiMemberRoleProduct::getRoleId,chooseId)
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
index 51e1572..2a934fb 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java
@@ -55,6 +55,9 @@
         if (StrUtil.isNotEmpty(dto.getProductCategoryId())){
             query.eq(AiProduct::getProductCategoryId, dto.getProductCategoryId());
         }
+        if (StrUtil.isNotEmpty(dto.getCompanyId())){
+            query.eq(AiProduct::getCompanyId, dto.getCompanyId());
+        }
         query.ne(AiProduct::getState, 2);
         query.orderByDesc(AiProduct::getHotState);
         query.orderByAsc(AiProduct::getSort);
@@ -173,15 +176,18 @@
         List<String> chooseIds = dto.getChooseIds();
         AiProduct aiProduct = this.getById(chooseId);
         if (ObjectUtil.isNotNull(aiProduct)) {
+            String companyId = aiProduct.getCompanyId();
             aiProductPointLinkService.deleteByQuery(
                     Wrappers.lambdaQuery(AiProductPointLink.class)
                             .eq(AiProductPointLink::getProductId,chooseId)
+                            .eq(AiProductPointLink::getCompanyId,companyId)
             );
             if(CollUtil.isNotEmpty(chooseIds)){
                 Date createdTime = new Date();
                 for (String item : chooseIds){
                     AiProductPointLink entity = new AiProductPointLink();
                     entity.setId(UUID.getSimpleUUIDString());
+                    entity.setCompanyId(companyId);
                     entity.setProductId(chooseId);
                     entity.setProductPointId(item);
                     entity.setCreatedTime(createdTime);
@@ -199,15 +205,18 @@
         List<String> chooseIds = dto.getChooseIds();
         AiProduct aiProduct = this.getById(chooseId);
         if (ObjectUtil.isNotNull(aiProduct)) {
+            String companyId = aiProduct.getCompanyId();
             aiProductRoleLinkService.deleteByQuery(
                     Wrappers.lambdaQuery(AiProductRoleLink.class)
                             .eq(AiProductRoleLink::getProductId,chooseId)
+                    .eq(AiProductRoleLink::getCompanyId,companyId)
             );
             if(CollUtil.isNotEmpty(chooseIds)){
                 Date createdTime = new Date();
                 for (String item : chooseIds){
                     AiProductRoleLink entity = new AiProductRoleLink();
                     entity.setId(UUID.getSimpleUUIDString());
+                    entity.setCompanyId(companyId);
                     entity.setProductId(chooseId);
                     entity.setProductRoleId(item);
                     entity.setCreatedTime(createdTime);
@@ -224,15 +233,18 @@
         List<String> chooseIds = dto.getChooseIds();
         AiProduct aiProduct = this.getById(chooseId);
         if (ObjectUtil.isNotNull(aiProduct)) {
+            String companyId = aiProduct.getCompanyId();
             aiProductQuestionLinkService.deleteByQuery(
                     Wrappers.lambdaQuery(AiProductQuestionLink.class)
                             .eq(AiProductQuestionLink::getProductId,chooseId)
+                    .eq(AiProductQuestionLink::getCompanyId,companyId)
             );
             if(CollUtil.isNotEmpty(chooseIds)){
                 Date createdTime = new Date();
                 for (String item : chooseIds){
                     AiProductQuestionLink entity = new AiProductQuestionLink();
                     entity.setId(UUID.getSimpleUUIDString());
+                    entity.setCompanyId(companyId);
                     entity.setProductId(chooseId);
                     entity.setProductQuestionId(item);
                     entity.setCreatedTime(createdTime);
diff --git a/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html b/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
index b3b244e..7b8a507 100644
--- a/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
+++ b/src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
@@ -67,9 +67,9 @@
 <script type="text/html" id="difficultyFormat">
     {{# if(d.difficulty == 1) { }}
     <span>简单</span>
-    {{# }else if(d.isNormal == 2) { }}
+    {{# }else if(d.difficulty == 2) { }}
     <span>中等</span>
-    {{# }else if(d.isNormal == 3) { }}
+    {{# }else if(d.difficulty == 3) { }}
     <span>困难</span>
     {{# } else { }}
     <span>-</span>

--
Gitblit v1.9.1