| | |
| | | String companyId = LoginUserUtil.getLoginUser().getCompanyId(); |
| | | String memberUuid = dto.getMemberUuid(); |
| | | |
| | | |
| | | |
| | | // 创建分页对象,传入当前页和每页大小 |
| | | Page<AiMemberPoint> page = new Page<>(dto.getPageNow(), dto.getPageSize()); |
| | | LambdaQueryWrapper<AiMemberPoint> queryWrapper = Wrappers.lambdaQuery(AiMemberPoint.class); |
| | |
| | | Page<AiMemberPoint> pageListByQuery = aiMemberPointService.getBaseMapper().selectPage(page, queryWrapper); |
| | | List<AiMemberPoint> aiMemberPoints = pageListByQuery.getRecords(); |
| | | |
| | | // List<AiMemberPoint> aiMemberPoints = aiMemberPointService.getListByCompanyIdAndMemberUuid(companyId, memberUuid); |
| | | if (CollUtil.isEmpty(aiMemberPoints)){ |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | Map<String, List<AiMemberPoint>> aiMemberPointMap = new HashMap<>(); |
| | | if (CollUtil.isNotEmpty(aiMemberPoints)){ |
| | | //stream操作aiMemberPoints,返回一个Map<productPointId,List<AiMemberPoint>> |
| | | aiMemberPointMap = aiMemberPoints.stream().collect(Collectors.groupingBy(AiMemberPoint::getProductPointId)); |
| | | } |
| | | |
| | | //stream流操作aiMemberPoints,返回一个productPointId的set集合 |
| | | Set<String> productPointIdSet = aiMemberPoints.stream().map(AiMemberPoint::getProductPointId).collect(Collectors.toSet()); |
| | | // stream流操作aiMemberPoints,返回一个productPointId的set集合 |
| | | Set<String> productPointIdSet = aiMemberPoints.stream() |
| | | .map(AiMemberPoint::getProductPointId) |
| | | .collect(Collectors.toSet()); |
| | | |
| | | List<AiProductPoint> aiProductPoints = aiProductPointService.getBaseMapper().selectList( |
| | | Wrappers.lambdaQuery(AiProductPoint.class) |
| | | .select(AiProductPoint::getId,AiProductPoint::getTitle) |
| | | .select(AiProductPoint::getId, AiProductPoint::getTitle) |
| | | .in(AiProductPoint::getId, productPointIdSet) |
| | | ); |
| | | //stream操作aiProductPoints,返回一个根据Map<id,AiProductPoint> |
| | | Map<String, AiProductPoint> productPointMap = aiProductPoints.stream().collect(Collectors.toMap(AiProductPoint::getId, aiProductPoint -> aiProductPoint)); |
| | | |
| | | if (CollUtil.isEmpty(aiProductPoints)){ |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | |
| | | for (AiProductPoint aiProductPoint : aiProductPoints){ |
| | | for (AiMemberPoint aiMemberPoint : aiMemberPoints){ |
| | | ApiMemberTeamStudyVo vo = new ApiMemberTeamStudyVo(); |
| | | vo.setTitle(aiProductPoint.getTitle()); |
| | | Integer totalTime = 0; |
| | | if (aiMemberPointMap.containsKey(aiProductPoint.getId())){ |
| | | List<AiMemberPoint> memberPoints = aiMemberPointMap.get(aiProductPoint.getId()); |
| | | for (AiMemberPoint memberPoint : memberPoints){ |
| | | totalTime += memberPoint.getTotalTime(); |
| | | } |
| | | } |
| | | vo.setTotalTime(DateUtil.secondToTime(totalTime)); |
| | | |
| | | vo.setTitle(productPointMap.get(aiMemberPoint.getProductPointId()).getTitle()); |
| | | vo.setTotalTime(DateUtil.secondToTime(aiMemberPoint.getTotalTime())); |
| | | vos.add(vo); |
| | | } |
| | | |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public FebsResponse talkPage(ApiMemberTalkPageDto dto) { |
| | |
| | | // 创建分页对象,传入当前页和每页大小 |
| | | 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()); |
| | | // } |
| | | // } |
| | | // } |
| | | |
| | | 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()); |
| | | // 安全地获取 productId 集合,过滤掉 null 值 |
| | | Set<String> collect = records.stream() |
| | | .filter(Objects::nonNull) |
| | | .map(ApiCompanyStudyVo::getProductId) |
| | | .filter(Objects::nonNull) |
| | | .collect(Collectors.toSet()); |
| | | |
| | | if (CollUtil.isNotEmpty(collect)) { // 确保 collect 不为空 |
| | | List<AiMemberAnswer> list = aiMemberAnswerService.getIdListByCompanyIdAndProductId(companyId, collect); |
| | | if (CollUtil.isNotEmpty(list)){ |
| | | Map<String, Long> memberAnswerItemCountMap = list.stream() |
| | | .collect(Collectors.groupingBy( |
| | | AiMemberAnswer::getProductId, |
| | | Collectors.counting() |
| | | )); |
| | | |
| | | for (ApiCompanyStudyVo record : records){ |
| | | if (record != null && record.getProductId() != null) { |
| | | record.setPracticeCnt(memberAnswerItemCountMap.getOrDefault(record.getProductId(), 0L).intValue()); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | return new FebsResponse().success().data(result); |
| | | } |
| | | |
| | |
| | | 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 = |
| | |
| | | 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); |
| | |
| | | Map<String, MallMember> mallMemberMap = mallMembers.stream().collect(Collectors.toMap(MallMember::getMemberUuid, mallMember -> mallMember)); |
| | | for (AiMemberAnswerItem memberAnswerItem : memberAnswerItemList){ |
| | | ApiCompanyStudyInfoVo vo = new ApiCompanyStudyInfoVo(); |
| | | vo.setMemberName(mallMemberMap.get(memberAnswerItem.getMemberId()).getName()); |
| | | vo.setNickName(mallMemberMap.get(memberAnswerItem.getMemberId()).getRealName()); |
| | | vo.setMemberName(mallMemberMap.get(memberAnswerItem.getMemberId()).getRealName()); |
| | | vo.setNickName(mallMemberMap.get(memberAnswerItem.getMemberId()).getName()); |
| | | |
| | | vo.setMemberAnswerState(memberAnswerItem.getMemberAnswerState()); |
| | | vo.setAnswer(answerMap.get(memberAnswerItem.getAnswer()).getAnswer()); |
| | | vo.setAnswer(answerMap.get(memberAnswerItem.getMemberAnswerQuestionId()).getAnswer()); |
| | | objects.add(vo); |
| | | } |
| | | return new FebsResponse().success().data(objects); |