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

---
 src/main/java/cc/mrbird/febs/common/controller/BaseController.java                |    9 ++++
 src/main/java/cc/mrbird/febs/system/service/impl/UserServiceImpl.java             |   16 ++++++++
 src/main/java/cc/mrbird/febs/ai/service/AiProductService.java                     |    2 
 src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberRoleServiceImpl.java         |   11 +++++
 src/main/java/cc/mrbird/febs/system/service/IUserService.java                     |    8 ++++
 src/main/java/cc/mrbird/febs/ai/controller/memberRole/AiMemberRoleController.java |    8 +++-
 src/main/java/cc/mrbird/febs/ai/controller/memberRole/ViewController.java         |    4 +
 src/main/java/cc/mrbird/febs/ai/service/impl/AiProductServiceImpl.java            |    3 +
 src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java                   |    1 
 9 files changed, 56 insertions(+), 6 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 4300e07..24373ad 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
@@ -31,7 +31,8 @@
 
     @GetMapping("list")
     public FebsResponse list(AiMemberRole dto, QueryRequest request) {
-
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         Map<String, Object> data = getDataTable(aiMemberRoleService.listInPage(dto, request));
         return new FebsResponse().success().data(data);
     }
@@ -49,7 +50,8 @@
     @PostMapping("add")
     @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败")
     public FebsResponse add(@RequestBody @Valid AiMemberRole dto) {
-
+        String companyId = getCurrentUserCompanyId();
+        dto.setCompanyId(companyId);
         return aiMemberRoleService.memberRoleAdd(dto);
     }
 
@@ -73,6 +75,8 @@
     @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/memberRole/ViewController.java b/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ViewController.java
index 24dd069..b333218 100644
--- a/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ViewController.java
+++ b/src/main/java/cc/mrbird/febs/ai/controller/memberRole/ViewController.java
@@ -69,11 +69,13 @@
         Set<String> productIds = new HashSet<>();
 
         AiMemberRole entity = aiMemberRoleService.getById(id);
+        String companyId = entity.getCompanyId();
         if(ObjectUtil.isNotNull(entity)){
             //右侧数据
             LambdaQueryWrapper<AiMemberRoleProduct> query = Wrappers.lambdaQuery(AiMemberRoleProduct.class);
             if(StrUtil.isNotEmpty(id)){
                 query.eq(AiMemberRoleProduct::getRoleId, id);
+                query.eq(AiMemberRoleProduct::getCompanyId, companyId);
             }
             List<AiMemberRoleProduct> selectedList = aiMemberRoleProductService.selectListByQuery(query);
             if(CollUtil.isNotEmpty(selectedList)){
@@ -82,7 +84,7 @@
             }
 
             //左侧数据
-            List<AiProduct> allList = aiProductService.selectList();
+            List<AiProduct> allList = aiProductService.selectList(companyId);
             if(CollUtil.isNotEmpty(allList)){
                 //stream流操作mallMembers,生成一个新的List<MallMemberVo>
                 vos = allList.stream().map(AiProduct -> {
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 0c79a18..ba3bc79 100644
--- a/src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java
+++ b/src/main/java/cc/mrbird/febs/ai/req/AdminMoveChooseInfoDto.java
@@ -8,6 +8,7 @@
 public class AdminMoveChooseInfoDto {
 
     private String chooseId;
+    private String companyId;
 
     private List<String> chooseIds;
 }
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java b/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
index 06321a9..cadec8e 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiProductService.java
@@ -34,7 +34,7 @@
 
     FebsResponse delete(String id);
 
-    List<AiProduct> selectList();
+    List<AiProduct> selectList(String companyId);
 
     FebsResponse productSet(AdminMoveChooseInfoDto dto);
 
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 688e684..388c09c 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
@@ -10,8 +10,10 @@
 import cc.mrbird.febs.ai.util.UUID;
 import cc.mrbird.febs.common.entity.FebsResponse;
 import cc.mrbird.febs.common.entity.QueryRequest;
+import cc.mrbird.febs.system.service.IUserService;
 import cn.hutool.core.collection.CollUtil;
 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;
@@ -38,6 +40,7 @@
     private final AiMemberRoleMapper aiMemberRoleMapper;
     private final AiProductService aiProductService;
     private final AiMemberRoleProductService aiMemberRoleProductService;
+    private final IUserService iUserService;
 
     @Override
     public AiMemberRole getById(String id) {
@@ -46,9 +49,11 @@
 
     @Override
     public IPage<AiMemberRole> listInPage(AiMemberRole dto, QueryRequest request) {
-
         Page<AiMemberRole> page = new Page<>(request.getPageNum(), request.getPageSize());
         LambdaQueryWrapper<AiMemberRole> query = Wrappers.lambdaQuery(AiMemberRole.class);
+        if (StrUtil.isNotEmpty(dto.getCompanyId())){
+            query.eq(AiMemberRole::getCompanyId, dto.getCompanyId());
+        }
         query.ne(AiMemberRole::getState, 2);
         query.orderByAsc(AiMemberRole::getSort);
         Page<AiMemberRole> pages = aiMemberRoleMapper.selectPage(page, query);
@@ -77,6 +82,7 @@
         entity.setIconImg(dto.getIconImg());
         entity.setSort(dto.getSort());
         entity.setState(dto.getState());
+        entity.setCompanyId(dto.getCompanyId());
         entity.setCreatedTime(new Date());
         this.save( entity);
         return new FebsResponse().success().message("操作成功");
@@ -118,12 +124,14 @@
     @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)) {
             aiMemberRoleProductService.deleteByQuery(
                     Wrappers.lambdaQuery(AiMemberRoleProduct.class)
                             .eq(AiMemberRoleProduct::getRoleId,chooseId)
+                            .eq(AiMemberRoleProduct::getCompanyId,companyId)
             );
             if(CollUtil.isNotEmpty(chooseIds)){
                 Date createdTime = new Date();
@@ -132,6 +140,7 @@
                     entity.setId(UUID.getSimpleUUIDString());
                     entity.setRoleId(chooseId);
                     entity.setProductId(item);
+                    entity.setCompanyId(companyId);
                     entity.setCreatedTime(createdTime);
                     aiMemberRoleProductService.getBaseMapper().insert(entity);
                 }
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 5ab494e..51e1572 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
@@ -158,9 +158,10 @@
     }
 
     @Override
-    public List<AiProduct> selectList() {
+    public List<AiProduct> selectList(String companyId) {
         return aiProductMapper.selectList(
                 Wrappers.lambdaQuery(AiProduct.class)
+                        .eq(AiProduct::getCompanyId, companyId)
                 .ne(AiProduct::getState, 2)
         );
     }
diff --git a/src/main/java/cc/mrbird/febs/common/controller/BaseController.java b/src/main/java/cc/mrbird/febs/common/controller/BaseController.java
index af736fe..a726cd9 100644
--- a/src/main/java/cc/mrbird/febs/common/controller/BaseController.java
+++ b/src/main/java/cc/mrbird/febs/common/controller/BaseController.java
@@ -23,6 +23,15 @@
         return (User) getSubject().getPrincipal();
     }
 
+    protected String getCurrentUserCompanyId() {
+        String description = null;
+        User user = (User) getSubject().getPrincipal();
+        if (user != null){
+            description = user.getDescription();
+        }
+        return description;
+    }
+
     protected Session getSession() {
         return getSubject().getSession();
     }
diff --git a/src/main/java/cc/mrbird/febs/system/service/IUserService.java b/src/main/java/cc/mrbird/febs/system/service/IUserService.java
index 3b9291f..4b2b289 100644
--- a/src/main/java/cc/mrbird/febs/system/service/IUserService.java
+++ b/src/main/java/cc/mrbird/febs/system/service/IUserService.java
@@ -18,6 +18,14 @@
      * @param username 用户名
      * @return 用户
      */
+    String findDesByName(String username);
+
+    /**
+     * 通过用户名查找用户
+     *
+     * @param username 用户名
+     * @return 用户
+     */
     User findByName(String username);
 
     /**
diff --git a/src/main/java/cc/mrbird/febs/system/service/impl/UserServiceImpl.java b/src/main/java/cc/mrbird/febs/system/service/impl/UserServiceImpl.java
index 33336fa..f816a0c 100644
--- a/src/main/java/cc/mrbird/febs/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/system/service/impl/UserServiceImpl.java
@@ -14,10 +14,12 @@
 import cc.mrbird.febs.system.service.IUserDataPermissionService;
 import cc.mrbird.febs.system.service.IUserRoleService;
 import cc.mrbird.febs.system.service.IUserService;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringPool;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
@@ -45,6 +47,20 @@
     private final ShiroRealm shiroRealm;
 
     @Override
+    public String findDesByName(String username) {
+        String description = null;
+        User user = this.baseMapper.selectOne(
+                Wrappers.lambdaQuery(User.class)
+                .eq(User::getUsername, username)
+                .last("limit 1")
+        );
+        if (user != null){
+            description = user.getDescription();
+        }
+        return description;
+    }
+
+    @Override
     public User findByName(String username) {
         return this.baseMapper.findByName(username);
     }

--
Gitblit v1.9.1