Administrator
16 hours ago e51ed4037d85c8826dd691bb01ebbe35d9485adc
feat(ai): 添加产品分类名称显示功能

- 在AiProductQuestion实体类中新增productCategoryName字段
- 注入AiProductCategoryService服务依赖
- 在分页查询中批量获取产品分类名称并设置到记录中
- 在前端列表页面添加分类列显示产品分类名称
3 files modified
25 ■■■■ changed files
src/main/java/cc/mrbird/febs/ai/entity/AiProductQuestion.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java 21 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/entity/AiProductQuestion.java
@@ -47,4 +47,7 @@
    @TableField(exist = false)
    private String ids;
    @TableField(exist = false)
    private String productCategoryName;
}
src/main/java/cc/mrbird/febs/ai/service/impl/AiProductQuestionServiceImpl.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.ai.mapper.AiProductQuestionJobMapper;
import cc.mrbird.febs.ai.mapper.AiProductQuestionMapper;
import cc.mrbird.febs.ai.req.AiProductQuestionAiDto;
import cc.mrbird.febs.ai.service.AiProductCategoryService;
import cc.mrbird.febs.ai.service.AiProductQuestionItemService;
import cc.mrbird.febs.ai.service.AiProductQuestionService;
import cc.mrbird.febs.ai.service.AiService;
@@ -48,9 +49,8 @@
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
 * AI产品题目 Service实现类
@@ -66,6 +66,7 @@
    private final AiProductQuestionMapper aiProductQuestionMapper;
    private final AiProductQuestionJobMapper aiProductQuestionJobMapper;
    private final AiProductQuestionItemService aiProductQuestionItemService;
    private final AiProductCategoryService aiProductCategoryService;
    private final AiService aiService;
    private final AgentProducer agentProducer;
@@ -88,6 +89,20 @@
        query.ne(AiProductQuestion::getState, 2);
        query.orderByDesc(AiProductQuestion::getCreatedTime);
        Page<AiProductQuestion> pages = aiProductQuestionMapper.selectPage(page, query);
        List<AiProductQuestion> records = pages.getRecords();
        if (CollUtil.isNotEmpty( records)){
            //stream流操作records,获取全部的productCategoryId的set集合
            Set<String> productCategoryIds = records.stream().map(AiProductQuestion::getProductCategoryId).collect(Collectors.toSet());
            if(CollUtil.isNotEmpty( productCategoryIds)){
                Map<String,AiProductCategory> map = aiProductCategoryService.selectMapByIds(productCategoryIds);
                for (AiProductQuestion record : records){
                    AiProductCategory orDefault = map.getOrDefault(record.getProductCategoryId(), null);
                    if(ObjectUtil.isNotNull(orDefault)){
                        record.setProductCategoryName(orDefault.getName());
                    }
                }
            }
        }
        return pages;
    }
src/main/resources/templates/febs/views/modules/ai/productQuestion/list.html
@@ -308,6 +308,7 @@
                    {type: 'numbers', title: '', width: 80},
                    {title: '操作', toolbar: '#productQuestionOption', minWidth: 200, align: 'center'},
                    {field: 'state', title: '状态', templet: '#productQuestionStateSwitch', minWidth: 130,align:'center'},
                    {field: 'productCategoryName', title: '分类', minWidth: 100,align:'center'},
                    {field: 'title', title: '题目', minWidth: 100,align:'center'},
                    {templet:"#difficultyFormat",  title: '难度', minWidth: 140,align:'center'},
                    {field: 'companyId', title: '公司编码', minWidth: 150,align:'center'},