From 85069103bd0b1a801924c660daad78aedd0bfb6c Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Thu, 18 Sep 2025 16:52:52 +0800 Subject: [PATCH] ``` feat(AiMemberTalkStreamService): 添加answerV3方法以支持流式生成报告 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java | 42 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 39 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java index 5ba0dd9..faac604 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java @@ -1,6 +1,7 @@ package cc.mrbird.febs.ai.service.impl; 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.memberAnswer.*; import cc.mrbird.febs.ai.res.memberAnswer.*; @@ -64,6 +65,7 @@ if(ObjectUtil.isNull(aiProduct)){ throw new FebsException("产品不存在"); } + String companyId = aiProduct.getCompanyId(); //验证产品分类下是否有题目 String productCategoryId = aiProduct.getProductCategoryId(); LambdaQueryWrapper<AiProductQuestion> questionLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class); @@ -86,6 +88,7 @@ Integer questionCount = aiProduct.getQuestionCount(); aiMemberAnswer = new AiMemberAnswer(); aiMemberAnswer.setId(UUID.getSimpleUUIDString()); + aiMemberAnswer.setCompanyId(companyId); aiMemberAnswer.setCreatedTime(createdTime); aiMemberAnswer.setUpdatedTime(createdTime); aiMemberAnswer.setProductId(aiProduct.getId()); @@ -102,6 +105,7 @@ AiProductQuestion aiProductQuestion = aiProductQuestionService.createQuestion(aiProduct.getId()); AiMemberAnswerItem aiMemberAnswerItem = new AiMemberAnswerItem(); aiMemberAnswerItem.setId(UUID.getSimpleUUIDString()); + aiMemberAnswerItem.setCompanyId(companyId); aiMemberAnswerItem.setCreatedTime(createdTime); aiMemberAnswerItem.setAnswerId(aiMemberAnswer.getId()); aiMemberAnswerItem.setProductId(aiMemberAnswer.getProductId()); @@ -250,9 +254,11 @@ throw new FebsException("答题记录不存在"); } - Date createdTime = new Date(); + Date nowTime = new Date(); + + String companyId = aiMemberAnswer.getCompanyId(); AiMemberAnswerItem aiMemberAnswerItem = aiMemberAnswerItemService.getById(memberAnswerItemId); - aiMemberAnswerItem.setUpdatedTime(createdTime); + aiMemberAnswerItem.setUpdatedTime(nowTime); AiProductQuestion aiProductQuestion = aiProductQuestionService.getById(productQuestionId); LambdaQueryWrapper<AiProductQuestionItem> productQuestionItemLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestionItem.class); @@ -277,13 +283,14 @@ }else{ aiMemberAnswerItem.setIsCollected(0); } + aiMemberAnswerItem.setCompanyId(companyId); aiMemberAnswerItemService.updateById(aiMemberAnswerItem); aiMemberAnswer.setDoneCnt(aiMemberAnswer.getDoneCnt() + 1); if (aiMemberAnswerItem.getMemberAnswerState() == 1){ aiMemberAnswer.setCorrectCnt(aiMemberAnswer.getCorrectCnt() + 1); } - aiMemberAnswer.setUpdatedTime(createdTime); + aiMemberAnswer.setUpdatedTime(nowTime); aiMemberAnswerMapper.updateById(aiMemberAnswer); apiQuestionItemInfoVo.setAnswerAnalysis(aiMemberAnswerItem.getAnswerAnalysis()); @@ -390,4 +397,33 @@ return new FebsResponse().success().data(pageListByQuery); } + + @Override + public void updateMemberAnswerUpdateTime(String memberAnswerId, Date updateTime) { + aiMemberAnswerMapper.update( + null, + Wrappers.lambdaUpdate(AiMemberAnswer.class) + .set(AiMemberAnswer::getUpdatedTime,updateTime) + .eq(AiMemberAnswer::getId,memberAnswerId) + ); + } + + @Override + public List<AiMemberAnswer> getListByCompanyId(String companyId) { + return aiMemberAnswerMapper.selectList( + Wrappers.lambdaQuery(AiMemberAnswer.class) + .eq(AiMemberAnswer::getCompanyId, companyId) + .eq(AiMemberAnswer::getState, AiTypeEnum.AI_MEMBER_ANSWER_STATE_DONE.getCode()) + ); + } + + @Override + public List<AiMemberAnswer> getListByCompanyIdAndMemberUuid(String companyId, String memberUuid) { + return aiMemberAnswerMapper.selectList( + Wrappers.lambdaQuery(AiMemberAnswer.class) + .eq(AiMemberAnswer::getCompanyId, companyId) + .eq(AiMemberAnswer::getMemberId, memberUuid) + .eq(AiMemberAnswer::getState, AiTypeEnum.AI_MEMBER_ANSWER_STATE_DONE.getCode()) + ); + } } -- Gitblit v1.9.1