Administrator
9 hours ago ce854d2205e7b9eb83f98db617577ee0b276861c
fix(ai): 修复会员答题数据查询问题

- 在查询会员答题项时添加答案非空条件过滤
- 避免因答案字段为空导致的数据统计异常
- 确保数据查询的准确性和完整性
2 files modified
3 ■■■■■ changed files
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java 2 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/AiMemberAnswerMapper.xml 1 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
@@ -448,6 +448,7 @@
        LambdaQueryWrapper<AiMemberAnswerItem> memberAnswerItemLambdaQueryWrapper = Wrappers.lambdaQuery(AiMemberAnswerItem.class);
        memberAnswerItemLambdaQueryWrapper.in(AiMemberAnswerItem::getMemberAnswerQuestionId,questionItemIdSet);
        memberAnswerItemLambdaQueryWrapper.eq(AiMemberAnswerItem::getCompanyId,companyId);
        memberAnswerItemLambdaQueryWrapper.isNotNull(AiMemberAnswerItem::getAnswer);
        List<AiMemberAnswerItem> memberAnswerItemList = aiMemberAnswerItemService.getListByQuery(memberAnswerItemLambdaQueryWrapper);
        //利用stream流,操作集合memberAnswerItemList,返回一个map对象,key为memberAnswerQuestionId,value为按照memberAnswerQuestionId分组的集合的大小,默认值为0
        Map<String, Long> memberAnswerItemCountMap =
@@ -495,6 +496,7 @@
        LambdaQueryWrapper<AiMemberAnswerItem> memberAnswerItemLambdaQueryWrapper = Wrappers.lambdaQuery(AiMemberAnswerItem.class);
        memberAnswerItemLambdaQueryWrapper.eq(AiMemberAnswerItem::getProductQuestionId,productQuestionId);
        memberAnswerItemLambdaQueryWrapper.eq(AiMemberAnswerItem::getCompanyId,companyId);
        memberAnswerItemLambdaQueryWrapper.isNotNull(AiMemberAnswerItem::getAnswer);
        List<AiMemberAnswerItem> memberAnswerItemList = aiMemberAnswerItemService.getListByQuery(memberAnswerItemLambdaQueryWrapper);
        if ( CollUtil.isEmpty(memberAnswerItemList)){
            return  new FebsResponse().success().data(objects);
src/main/resources/mapper/modules/AiMemberAnswerMapper.xml
@@ -70,6 +70,7 @@
        left join mall_member a on b.member_id = a.member_uuid
        where b.product_id = #{record.productId}
          and b.company_id = #{record.companyId}
          and b.state = 1
        order by b.score desc
    </select>