Administrator
19 hours ago 4fe2bf0b6bbd04f5570be66246ab933ac1dd1c12
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
@@ -378,7 +378,6 @@
    @Override
    public FebsResponse studyList(ApiCompanyStudyDto dto) {
        List<ApiCompanyStudyVo> objects = new ArrayList<>();
        String companyId = LoginUserUtil.getLoginUser().getCompanyId();
        String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid();
@@ -393,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);
    }
@@ -484,6 +500,14 @@
            return  new FebsResponse().success().data(objects);
        }
        Set<String> answerSet = memberAnswerItemList.stream().map(AiMemberAnswerItem::getAnswer).collect(Collectors.toSet());
        LambdaQueryWrapper<AiProductQuestionItem> answerQuery = Wrappers.lambdaQuery(AiProductQuestionItem.class);
        answerQuery.select( AiProductQuestionItem::getId,AiProductQuestionItem::getAnswer);
        answerQuery.eq(AiProductQuestionItem::getProductQuestionId,productQuestionId);
        answerQuery.eq(AiProductQuestionItem::getCompanyId,companyId);
        List<AiProductQuestionItem> answerQueryList = aiProductQuestionItemService.getListByQuery(answerQuery);
        Map<String, AiProductQuestionItem> answerMap = answerQueryList.stream().collect(Collectors.toMap(AiProductQuestionItem::getId, aiProductQuestionItem -> aiProductQuestionItem));
        Set<String> memberIdSet = memberAnswerItemList.stream().map(AiMemberAnswerItem::getMemberId).collect(Collectors.toSet());
        List<MallMember> mallMembers = mallMemberMapper.selectList(
                Wrappers.lambdaQuery(MallMember.class)
@@ -499,9 +523,21 @@
            vo.setNickName(mallMemberMap.get(memberAnswerItem.getMemberId()).getRealName());
            vo.setMemberAnswerState(memberAnswerItem.getMemberAnswerState());
            vo.setAnswer( memberAnswerItem.getAnswer());
            vo.setAnswer(answerMap.get(memberAnswerItem.getAnswer()).getAnswer());
            objects.add(vo);
        }
        return  new FebsResponse().success().data(objects);
    }
    @Override
    public FebsResponse studyRecordList(ApiCompanyStudyRecordDto dto) {
        String companyId = LoginUserUtil.getLoginUser().getCompanyId();
        dto.setCompanyId( companyId);
        // 创建分页对象,传入当前页和每页大小
        Page<ApiCompanyStudyRecordVo> page = new Page<>(dto.getPageNow(), dto.getPageSize());
        IPage<ApiCompanyStudyRecordVo> result = aiMemberAnswerService.getStudyRecordList(page,dto);
        return new FebsResponse().success().data(result);
    }
}