| | |
| | | import cc.mrbird.febs.ai.entity.*; |
| | | import cc.mrbird.febs.ai.enumerates.AiTypeEnum; |
| | | import cc.mrbird.febs.ai.mapper.AiMemberMapper; |
| | | import cc.mrbird.febs.ai.req.member.ApiMemberTeamPageDto; |
| | | import cc.mrbird.febs.ai.req.member.ApiMemberTeamPracticeDto; |
| | | import cc.mrbird.febs.ai.req.member.ApiMemberTeamStudyDto; |
| | | import cc.mrbird.febs.ai.res.member.ApiMemberTeamPageVo; |
| | | import cc.mrbird.febs.ai.res.member.ApiMemberTeamPracticeVo; |
| | | import cc.mrbird.febs.ai.res.member.ApiMemberTeamStudyVo; |
| | | import cc.mrbird.febs.ai.res.productPoint.ApiProductPointListVo; |
| | | import cc.mrbird.febs.ai.req.member.*; |
| | | import cc.mrbird.febs.ai.res.member.*; |
| | | import cc.mrbird.febs.ai.res.memberAnswer.ApiMemberAnswerPreviousItemVo; |
| | | import cc.mrbird.febs.ai.service.*; |
| | | import cc.mrbird.febs.common.entity.FebsResponse; |
| | | import cc.mrbird.febs.common.exception.FebsException; |
| | |
| | | private final MallMemberMapper mallMemberMapper; |
| | | private final AiMemberTalkService aiMemberTalkService; |
| | | private final AiMemberAnswerService aiMemberAnswerService; |
| | | private final AiMemberAnswerItemService aiMemberAnswerItemService; |
| | | private final AiMemberPointService aiMemberPointService; |
| | | private final AiProductService aiProductService; |
| | | private final AiProductPointService aiProductPointService; |
| | | private final AiProductQuestionItemService aiProductQuestionItemService; |
| | | @Override |
| | | public AiMember getById(String id) { |
| | | return aiMemberMapper.selectById( id); |
| | |
| | | |
| | | String productId = aiProduct.getId(); |
| | | ApiMemberTeamPracticeVo vo = new ApiMemberTeamPracticeVo(); |
| | | vo.setMemberUuid(memberUuid); |
| | | vo.setName(aiProduct.getName()); |
| | | vo.setTarget(aiProduct.getTarget()); |
| | | |
| | |
| | | |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse answerPage(ApiMemberAnswerPageDto dto) { |
| | | |
| | | // 创建分页对象,传入当前页和每页大小 |
| | | Page<ApiMemberAnswerPageVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); |
| | | Page<ApiMemberAnswerPageVo> aiMemberAnswerPage = aiMemberAnswerService.getAnswerPage(page, dto); |
| | | |
| | | return new FebsResponse().success().data(aiMemberAnswerPage); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse answerInfo(ApiMemberAnswerInfoDto dto) { |
| | | List<ApiMemberAnswerInfoVo> vos = new ArrayList<>(); |
| | | |
| | | String answerId = dto.getAnswerId(); |
| | | AiMemberAnswer memberAnswer = aiMemberAnswerService.getById(answerId); |
| | | if (memberAnswer == null){ |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | |
| | | List<AiMemberAnswerItem> records = aiMemberAnswerItemService.getBaseMapper().selectList( |
| | | Wrappers.lambdaQuery(AiMemberAnswerItem.class) |
| | | .eq(AiMemberAnswerItem::getAnswerId, memberAnswer.getId()) |
| | | .orderByAsc(AiMemberAnswerItem::getCreatedTime) |
| | | ); |
| | | |
| | | if (CollUtil.isNotEmpty(records)){ |
| | | Set<String> collect = records.stream().map(AiMemberAnswerItem::getProductQuestionId).collect(Collectors.toSet()); |
| | | |
| | | LambdaQueryWrapper<AiProductQuestionItem> questionItemQuery = Wrappers.lambdaQuery(AiProductQuestionItem.class); |
| | | questionItemQuery.in(AiProductQuestionItem::getProductQuestionId,collect); |
| | | List<AiProductQuestionItem> listByQuery = aiProductQuestionItemService.getListByQuery(questionItemQuery); |
| | | |
| | | if (CollUtil.isNotEmpty(listByQuery)){ |
| | | //利用stream流,操作集合listByQuery,返回一个map对象,key为productQuestionId,value为List<AiProductQuestionItem>对象 |
| | | Map<String, List<AiProductQuestionItem>> questionItemMap = |
| | | listByQuery.stream().collect(Collectors.groupingBy(AiProductQuestionItem::getProductQuestionId)); |
| | | |
| | | for (AiMemberAnswerItem record : records){ |
| | | String productQuestionId = record.getProductQuestionId(); |
| | | ApiMemberAnswerInfoVo vo = new ApiMemberAnswerInfoVo(); |
| | | vo.setTitle(record.getTitle()); |
| | | vo.setDifficulty(record.getDifficulty()); |
| | | vo.setMemberAnswerQuestionId(record.getMemberAnswerQuestionId()); |
| | | vo.setAnswerAnalysis(record.getAnswerAnalysis()); |
| | | vo.setProductQuestionId(record.getProductQuestionId()); |
| | | vo.setCreatedTime(record.getCreatedTime()); |
| | | |
| | | |
| | | List<AiProductQuestionItem> questionItemList = questionItemMap.get(productQuestionId); |
| | | List<ApiMemberAnswerPreviousItemVo> answerList = new ArrayList<>(); |
| | | if (CollUtil.isNotEmpty(questionItemList)){ |
| | | for (AiProductQuestionItem questionItem : questionItemList){ |
| | | ApiMemberAnswerPreviousItemVo itemVo = new ApiMemberAnswerPreviousItemVo(); |
| | | itemVo.setId(questionItem.getId()); |
| | | itemVo.setAnswer(questionItem.getAnswer()); |
| | | itemVo.setAnswerAnalysis(questionItem.getAnswerAnalysis()); |
| | | itemVo.setCorrectAnswer(questionItem.getCorrectAnswer()); |
| | | answerList.add(itemVo); |
| | | } |
| | | } |
| | | vo.setAnswerList(answerList); |
| | | |
| | | vos.add( vo); |
| | | } |
| | | } |
| | | } |
| | | |
| | | return new FebsResponse().success().data(vos); |
| | | } |
| | | } |