| | |
| | | return aiMemberAnswerMapper.selectOne(aiMemberAnswerLambdaQueryWrapper); |
| | | } |
| | | |
| | | @Override |
| | | public FebsResponse startAnswerV2(ApiMemberAnswerDto dto) { |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | ApiMemberAnswerVoV2 apiMemberAnswerVoV2 = new ApiMemberAnswerVoV2(); |
| | | Integer current = 1; |
| | | |
| | | String productId = dto.getId(); |
| | | AiProduct aiProduct = aiProductService.getById(productId); |
| | | if(ObjectUtil.isNull(aiProduct)){ |
| | | throw new RuntimeException("产品不存在"); |
| | | } |
| | | //验证产品分类下是否有题目 |
| | | String productCategoryId = aiProduct.getProductCategoryId(); |
| | | LambdaQueryWrapper<AiProductQuestion> questionLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class); |
| | | questionLambdaQueryWrapper.eq(AiProductQuestion::getProductCategoryId,productCategoryId); |
| | | questionLambdaQueryWrapper.eq(AiProductQuestion::getState,1); |
| | | questionLambdaQueryWrapper.last("limit 1"); |
| | | List<AiProductQuestion> aiProductQuestions = aiProductQuestionService.getListByQuery(questionLambdaQueryWrapper); |
| | | if(CollUtil.isEmpty(aiProductQuestions)){ |
| | | // todo 没有题目采用AI生成题目 |
| | | throw new RuntimeException("产品没有题目"); |
| | | } |
| | | //判断该产品是否有正在进行的练习 |
| | | Date createdTime = new Date(); |
| | | LambdaQueryWrapper<AiMemberAnswer> aiMemberAnswerLambdaQueryWrapper = Wrappers.lambdaQuery(AiMemberAnswer.class); |
| | | aiMemberAnswerLambdaQueryWrapper.eq(AiMemberAnswer::getMemberId,memberUuid); |
| | | aiMemberAnswerLambdaQueryWrapper.eq(AiMemberAnswer::getProductId,aiProduct.getId()); |
| | | aiMemberAnswerLambdaQueryWrapper.eq(AiMemberAnswer::getState,0); |
| | | AiMemberAnswer aiMemberAnswer = this.getOneByQuery(aiMemberAnswerLambdaQueryWrapper); |
| | | if(ObjectUtil.isNull(aiMemberAnswer)){ |
| | | Integer questionCount = aiProduct.getQuestionCount(); |
| | | aiMemberAnswer = new AiMemberAnswer(); |
| | | aiMemberAnswer.setId(UUID.getSimpleUUIDString()); |
| | | aiMemberAnswer.setCreatedTime(createdTime); |
| | | aiMemberAnswer.setUpdatedTime(createdTime); |
| | | aiMemberAnswer.setProductId(aiProduct.getId()); |
| | | aiMemberAnswer.setMemberId(memberUuid); |
| | | aiMemberAnswer.setState(0); |
| | | aiMemberAnswer.setScore(0); |
| | | aiMemberAnswer.setQuestionCnt(questionCount); |
| | | aiMemberAnswer.setDoneCnt(0); |
| | | aiMemberAnswer.setCorrectCnt(0); |
| | | aiMemberAnswerMapper.insert(aiMemberAnswer); |
| | | List<AiMemberAnswerItem> aiMemberAnswerItems = new ArrayList<>(); |
| | | for (int i = 1; i <= questionCount; i++){ |
| | | //初始化答题记录 |
| | | AiProductQuestion aiProductQuestion = aiProductQuestionService.createQuestion(aiProduct.getId()); |
| | | AiMemberAnswerItem aiMemberAnswerItem = new AiMemberAnswerItem(); |
| | | aiMemberAnswerItem.setId(UUID.getSimpleUUIDString()); |
| | | aiMemberAnswerItem.setCreatedTime(createdTime); |
| | | aiMemberAnswerItem.setAnswerId(aiMemberAnswer.getId()); |
| | | aiMemberAnswerItem.setProductId(aiMemberAnswer.getProductId()); |
| | | aiMemberAnswerItem.setMemberId(memberUuid); |
| | | aiMemberAnswerItem.setProductQuestionId(aiProductQuestion.getId()); |
| | | aiMemberAnswerItem.setTitle(aiProductQuestion.getTitle()); |
| | | aiMemberAnswerItem.setDifficulty(aiProductQuestion.getDifficulty()); |
| | | aiMemberAnswerItem.setMemberAnswerState(0); |
| | | aiMemberAnswerItem.setSort( i ); |
| | | aiMemberAnswerItems.add(aiMemberAnswerItem); |
| | | } |
| | | aiMemberAnswerItemService.saveBatch(aiMemberAnswerItems); |
| | | current = 1; |
| | | }else{ |
| | | current = aiMemberAnswer.getDoneCnt(); |
| | | } |
| | | apiMemberAnswerVoV2.setCurrent(current); |
| | | |
| | | return new FebsResponse().success().data(apiMemberAnswerVoV2); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public FebsResponse startAnswer(ApiMemberAnswerDto dto) { |
| | |
| | | public FebsResponse previous(ApiMemberAnswerPreviousDto dto) { |
| | | |
| | | String memberUuid = LoginUserUtil.getLoginUser().getMemberUuid(); |
| | | ApiMemberAnswerPreviousVo apiMemberAnswerPreviousVo = new ApiMemberAnswerPreviousVo(); |
| | | |
| | | // 创建分页对象,传入当前页和每页大小 |
| | | Page<ApiMemberAnswerPreviousVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); |
| | | Page<ApiMemberAnswerPreviousVo> pageListByQuery = aiMemberAnswerItemService.getPageListByQuery(page, dto); |
| | | List<ApiMemberAnswerPreviousVo> records = pageListByQuery.getRecords(); |
| | | if (CollUtil.isNotEmpty(records)){ |
| | | apiMemberAnswerPreviousVo = records.get(0); |
| | | ApiMemberAnswerPreviousVo apiMemberAnswerPreviousVo = records.get(0); |
| | | |
| | | String memberAnswerId = apiMemberAnswerPreviousVo.getMemberAnswerId(); |
| | | AiMemberAnswer aiMemberAnswer = this.getById(memberAnswerId); |
| | |
| | | AiProduct aiProduct = aiProductService.getById(productId); |
| | | apiMemberAnswerPreviousVo.setName(aiProduct.getName()); |
| | | apiMemberAnswerPreviousVo.setQuestionCnt(aiMemberAnswer.getQuestionCnt()); |
| | | apiMemberAnswerPreviousVo.setDoneCnt(aiMemberAnswer.getDoneCnt()); |
| | | |
| | | String productQuestionId = apiMemberAnswerPreviousVo.getProductQuestionId(); |
| | | AiProductQuestion aiProductQuestion = aiProductQuestionService.getById(productQuestionId); |
| | |
| | | apiMemberAnswerPreviousVo.setAnswerList(answerList); |
| | | } |
| | | } |
| | | return new FebsResponse().success().data(apiMemberAnswerPreviousVo); |
| | | return new FebsResponse().success().data(pageListByQuery); |
| | | } |
| | | |
| | | @Override |