| | |
| | | import cc.mrbird.febs.ai.entity.*; |
| | | import cc.mrbird.febs.ai.enumerates.AiTypeEnum; |
| | | import cc.mrbird.febs.ai.mapper.AiMemberAnswerMapper; |
| | | import cc.mrbird.febs.ai.req.member.ApiMemberAnswerPageDto; |
| | | import cc.mrbird.febs.ai.req.memberAnswer.*; |
| | | import cc.mrbird.febs.ai.res.member.ApiMemberAnswerPageVo; |
| | | import cc.mrbird.febs.ai.res.memberAnswer.*; |
| | | import cc.mrbird.febs.ai.res.product.ApiProductVo; |
| | | import cc.mrbird.febs.ai.res.productQuestionItem.ApiMemberAnswerItemVo; |
| | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * AI用户答题记录 Service实现类 |
| | |
| | | private final AiProductService aiProductService; |
| | | private final AiProductQuestionService aiProductQuestionService; |
| | | private final AiProductQuestionItemService aiProductQuestionItemService; |
| | | private final AiProductDependencyService aiProductDependencyService; |
| | | private final AiMemberProductUnlockService aiMemberProductUnlockService; |
| | | |
| | | |
| | | @Override |
| | |
| | | @Override |
| | | public FebsResponse insure(ApiMemberAnswerInsureDto dto) { |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | String companyId = LoginUserUtil.getLoginUser().getCompanyId(); |
| | | |
| | | ApiMemberAnswerInsureVo apiMemberAnswerInsureVo = new ApiMemberAnswerInsureVo(); |
| | | String memberAnswerId = dto.getMemberAnswerId(); |
| | |
| | | .set(AiMemberAnswer::getScore, percentage.intValue()) |
| | | .eq(AiMemberAnswer::getId, memberAnswerId) |
| | | ); |
| | | |
| | | //如果有升级规则,则解锁 |
| | | List<AiProductDependency> aiProductDependencies = aiProductDependencyService.selectListByProductId(aiMemberAnswer.getProductId(),percentage.intValue()); |
| | | if (CollUtil.isNotEmpty(aiProductDependencies)){ |
| | | //stream流操作aiProductDependencies,获取全部的targetProductId |
| | | Set<String> targetProductIds = aiProductDependencies.stream().map(AiProductDependency::getTargetProductId).collect(Collectors.toSet()); |
| | | |
| | | List<AiMemberProductUnlock> aiMemberProductUnlocks = aiMemberProductUnlockService.selectListByProductIds(targetProductIds, memberUuid); |
| | | Set<String> doneProductIds = aiMemberProductUnlocks.stream().map(AiMemberProductUnlock::getProductId).collect(Collectors.toSet()); |
| | | |
| | | //获取在targetProductIds集合中,并且不在doneProductIds集合中的productId |
| | | Set<String> unlockProductIds = targetProductIds.stream().filter(productId -> !doneProductIds.contains(productId)).collect(Collectors.toSet()); |
| | | if (CollUtil.isNotEmpty(unlockProductIds)){ |
| | | aiMemberProductUnlockService.insertList(companyId,unlockProductIds, memberUuid,percentage.intValue()); |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(apiMemberAnswerInsureVo); |
| | | } |
| | | |
| | |
| | | .eq(AiMemberAnswer::getState, AiTypeEnum.AI_MEMBER_ANSWER_STATE_DONE.getCode()) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public Page<ApiMemberAnswerPageVo> getAnswerPage(Page<ApiMemberAnswerPageVo> page, ApiMemberAnswerPageDto dto) { |
| | | |
| | | return aiMemberAnswerMapper.getAnswerPage(page,dto); |
| | | } |
| | | } |