Administrator
12 hours ago ce854d2205e7b9eb83f98db617577ee0b276861c
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberServiceImpl.java
@@ -132,7 +132,7 @@
            //判断mallMemberMap中是否存在该会员
            apiMemberTeamPageVo.setNickName(mallMemberMap.containsKey(aiMemberId) ? mallMemberMap.get(aiMemberId).getName() : "");
            apiMemberTeamPageVo.setMemberName(mallMemberMap.containsKey(aiMemberId) ? mallMemberMap.get(aiMemberId).getName() : "");
            apiMemberTeamPageVo.setMemberName(mallMemberMap.containsKey(aiMemberId) ? mallMemberMap.get(aiMemberId).getRealName() : "");
            Integer practiceCnt = 0;
            if (memberIdToCntMapTalk.containsKey(aiMemberId)){
                practiceCnt = memberIdToCntMapTalk.get(aiMemberId);
@@ -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);
    }
@@ -431,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 =
@@ -478,17 +496,24 @@
        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);
        }
        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)
                        .select(MallMember::getMemberUuid, MallMember::getName, MallMember::getRealName)
                        .in(MallMember::getMemberUuid, memberIdSet)
                        .eq(MallMember::getCompanyId, companyId)
        );
        //Stream流操作mallMembers,获取一个map<memberUuid,mallMember>的对象
        Map<String, MallMember> mallMemberMap = mallMembers.stream().collect(Collectors.toMap(MallMember::getMemberUuid, mallMember -> mallMember));
@@ -498,7 +523,7 @@
            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);