Administrator
2025-09-15 e4048873355aa30e2f4296d745972158225fddd6
feat(ai): 增加产品角色列表和树状图的公司条件过滤

- 在 AiProductRoleController 中添加公司 ID 过滤条件
- 修改 AiProductRoleService 接口,为 productRoleTree 方法添加公司 ID 参数
- 在 AiProductRoleServiceImpl 中实现根据公司 ID 过滤产品角色树状图的方法
- 更新 ViewController 中的产品角色数据加载逻辑,添加公司 ID 过滤
4 files modified
29 ■■■■ changed files
src/main/java/cc/mrbird/febs/ai/controller/product/ViewController.java 4 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/controller/productRole/AiProductRoleController.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/AiProductRoleService.java 2 ●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductRoleServiceImpl.java 14 ●●●● patch | view | raw | blame | history
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 -> {
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));
    }
}
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);
}
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);
    }
}