From ab6b8fca3993c88b56084ded9d4573fc97066a84 Mon Sep 17 00:00:00 2001
From: Administrator <15274802129@163.com>
Date: Tue, 13 Jan 2026 10:27:49 +0800
Subject: [PATCH] fix(ai): 修复学习列表查询条件并启用测试环境SQL日志
---
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java | 17 +++++++++++++++++
src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java | 3 +++
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java | 11 +++++++++++
src/main/resources/mapper/modules/AiMemberAnswerMapper.xml | 2 +-
4 files changed, 32 insertions(+), 1 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java b/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
index ef4df96..8a3290c 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
@@ -16,6 +16,7 @@
import java.util.Date;
import java.util.List;
+import java.util.Set;
/**
* AI用户答题记录 Service接口
@@ -54,4 +55,6 @@
IPage<ApiCompanyStudyVo> selectListPage(ApiCompanyStudyDto dto, Page<ApiCompanyStudyVo> page);
IPage<ApiCompanyStudyRecordVo> getStudyRecordList(Page<ApiCompanyStudyRecordVo> page, ApiCompanyStudyRecordDto dto);
+
+ List<AiMemberAnswer> getIdListByCompanyIdAndProductId(String companyId, Set<String> collect);
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
index 15da33c..acda009 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
@@ -470,4 +470,15 @@
public IPage<ApiCompanyStudyRecordVo> getStudyRecordList(Page<ApiCompanyStudyRecordVo> page, ApiCompanyStudyRecordDto dto) {
return aiMemberAnswerMapper.getStudyRecordList(page,dto);
}
+
+ @Override
+ public List<AiMemberAnswer> getIdListByCompanyIdAndProductId(String companyId, Set<String> collect) {
+ return aiMemberAnswerMapper.selectList(
+ Wrappers.lambdaQuery(AiMemberAnswer.class)
+ .select(AiMemberAnswer::getId,AiMemberAnswer::getProductId)
+ .eq(AiMemberAnswer::getCompanyId, companyId)
+ .in(AiMemberAnswer::getProductId, collect)
+ .eq(AiMemberAnswer::getState, AiTypeEnum.AI_MEMBER_ANSWER_STATE_DONE.getCode())
+ );
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
index 5c9f20d..bffe7f3 100644
--- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
@@ -392,6 +392,23 @@
// 创建分页对象,传入当前页和每页大小
Page<ApiCompanyStudyVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
IPage<ApiCompanyStudyVo> result = aiMemberAnswerService.selectListPage(dto, page);
+ List<ApiCompanyStudyVo> records = result.getRecords();
+ if (CollUtil.isNotEmpty(records)){
+ //stream流获取re cords集合中的元素productId的set集合
+ Set<String> collect = records.stream().map(ApiCompanyStudyVo::getProductId).collect(Collectors.toSet());
+ List<AiMemberAnswer> list = aiMemberAnswerService.getIdListByCompanyIdAndProductId(companyId, collect);
+ if (CollUtil.isNotEmpty(list)){
+ //利用stream流,操作集合list,返回一个map对象,key为productId,value为按照productId分组的集合的大小,默认值为0
+ Map<String, Long> memberAnswerItemCountMap =
+ list.stream().collect(Collectors.groupingBy(
+ AiMemberAnswer::getProductId,
+ Collectors.counting()
+ ));
+ for ( ApiCompanyStudyVo record : records){
+ record.setPracticeCnt(memberAnswerItemCountMap.getOrDefault(record.getProductId(), 0L).intValue());
+ }
+ }
+ }
return new FebsResponse().success().data(result);
}
diff --git a/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml b/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml
index fe38bd7..698abb5 100644
--- a/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml
+++ b/src/main/resources/mapper/modules/AiMemberAnswerMapper.xml
@@ -70,7 +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}
- order by a.score desc
+ order by b.score desc
</select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1