From e4048873355aa30e2f4296d745972158225fddd6 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Mon, 15 Sep 2025 15:57:06 +0800
Subject: [PATCH] feat(ai): 增加产品角色列表和树状图的公司条件过滤

---
 src/main/java/cc/mrbird/febs/ai/service/impl/AiProductRoleServiceImpl.java          |   14 +++++++++++---
 src/main/java/cc/mrbird/febs/ai/controller/productRole/AiProductRoleController.java |    9 ++++++---
 src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java              |    4 +++-
 src/main/java/cc/mrbird/febs/ai/service/AiProductRoleService.java                   |    2 +-
 4 files changed, 21 insertions(+), 8 deletions(-)

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 7f874d9..9b71c7c 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
@@ -112,11 +112,13 @@
         Set<String> productIds = new HashSet<>();
 
         AiProduct entity = aiProductService.getById(id);
+        String companyId = entity.getCompanyId();
         if(ObjectUtil.isNotNull(entity)){
             //右侧数据
             LambdaQueryWrapper<AiProductRoleLink> query = Wrappers.lambdaQuery(AiProductRoleLink.class);
             if(StrUtil.isNotEmpty(id)){
                 query.eq(AiProductRoleLink::getProductId, id);
+                query.eq(AiProductRoleLink::getCompanyId, companyId);
             }
             List<AiProductRoleLink> selectedList = aiProductRoleLinkService.selectListByQuery(query);
             if(CollUtil.isNotEmpty(selectedList)){
@@ -125,7 +127,7 @@
             }
 
             //左侧数据
-            List<AiProductRole> allList = aiProductRoleService.productRoleTree();
+            List<AiProductRole> allList = aiProductRoleService.productRoleTree(companyId);
             if(CollUtil.isNotEmpty(allList)){
                 //stream流操作mallMembers,生成一个新的List<MallMemberVo>
                 vos = allList.stream().map(AiProductRole -> {
diff --git a/src/main/java/cc/mrbird/febs/ai/controller/productRole/AiProductRoleController.java b/src/main/java/cc/mrbird/febs/ai/controller/productRole/AiProductRoleController.java
index c249859..ee99336 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/productRole/AiProductRoleController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/productRole/AiProductRoleController.java
@@ -29,7 +29,8 @@
 
     @GetMapping("list")
     public FebsResponse list(AiProductRole dto, QueryRequest request) {
-
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         Map<String, Object> data = getDataTable(aiProductRoleService.listInPage(dto, request));
         return new FebsResponse().success().data(data);
     }
@@ -38,6 +39,8 @@
     @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败")
     public FebsResponse add(@RequestBody @Valid AiProductRole dto) {
 
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         return aiProductRoleService.add(dto);
     }
 
@@ -59,7 +62,7 @@
 
     @GetMapping(value = "/productRoleTree")
     public FebsResponse productRoleTree() {
-
-        return new FebsResponse().success().data(aiProductRoleService.productRoleTree());
+        String companyId = getCurrentUserCompanyId();
+        return new FebsResponse().success().data(aiProductRoleService.productRoleTree(companyId));
     }
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductRoleService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductRoleService.java
index 073bf52..dddc5d9 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductRoleService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductRoleService.java
@@ -30,5 +30,5 @@
 
     FebsResponse delete(String id);
 
-    List<AiProductRole> productRoleTree();
+    List<AiProductRole> productRoleTree(String companyId);
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductRoleServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductRoleServiceImpl.java
index 0f361cb..4d2a6bc 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductRoleServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiProductRoleServiceImpl.java
@@ -8,6 +8,7 @@
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
 import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -44,6 +45,9 @@
 
         Page<AiProductRole> page = new Page<>(request.getPageNum(), request.getPageSize());
         LambdaQueryWrapper<AiProductRole> query = Wrappers.lambdaQuery(AiProductRole.class);
+        if (StrUtil.isNotEmpty(dto.getCompanyId())){
+            query.eq(AiProductRole::getCompanyId, dto.getCompanyId());
+        }
         Page<AiProductRole> pages = aiProductRoleMapper.selectPage(page, query);
         return pages;
     }
@@ -73,7 +77,6 @@
         if (ObjectUtil.isNotNull( entity)){
             this.update(null,
                     Wrappers.lambdaUpdate(AiProductRole.class)
-                            .set(AiProductRole::getCompanyId, dto.getCompanyId())
                             .set(AiProductRole::getName, dto.getName())
                             .set(AiProductRole::getDescription, dto.getDescription())
                             .set(AiProductRole::getPromptHead, dto.getPromptHead())
@@ -101,8 +104,13 @@
     }
 
     @Override
-    public List<AiProductRole> productRoleTree() {
-        return aiProductRoleMapper.selectList(null);
+    public List<AiProductRole> productRoleTree(String companyId) {
+
+        LambdaQueryWrapper<AiProductRole> query = Wrappers.lambdaQuery(AiProductRole.class);
+        if (StrUtil.isNotEmpty(companyId)){
+            query.eq(AiProductRole::getCompanyId, companyId);
+        }
+        return aiProductRoleMapper.selectList(query);
     }
 
 }

--
Gitblit v1.9.1