From 634a0506c29607586456ea0a4ba7ec4b5c57f45c Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 02 Sep 2025 17:20:09 +0800 Subject: [PATCH] refactor(ai): 优化 AI交流输出类型的描述 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java | 23 ++++++++++++++--------- 1 files changed, 14 insertions(+), 9 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 8a89360..5ba0dd9 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 @@ -9,6 +9,7 @@ import cc.mrbird.febs.ai.service.*; import cc.mrbird.febs.ai.utils.UUID; import cc.mrbird.febs.common.entity.FebsResponse; +import cc.mrbird.febs.common.exception.FebsException; import cc.mrbird.febs.common.utils.LoginUserUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUnit; @@ -61,7 +62,7 @@ String productId = dto.getId(); AiProduct aiProduct = aiProductService.getById(productId); if(ObjectUtil.isNull(aiProduct)){ - throw new RuntimeException("产品不存在"); + throw new FebsException("产品不存在"); } //验证产品分类下是否有题目 String productCategoryId = aiProduct.getProductCategoryId(); @@ -72,7 +73,7 @@ List<AiProductQuestion> aiProductQuestions = aiProductQuestionService.getListByQuery(questionLambdaQueryWrapper); if(CollUtil.isEmpty(aiProductQuestions)){ // todo 没有题目采用AI生成题目 - throw new RuntimeException("产品没有题目"); + throw new FebsException("产品没有题目"); } //判断该产品是否有正在进行的练习 Date createdTime = new Date(); @@ -134,7 +135,7 @@ String productId = dto.getId(); AiProduct aiProduct = aiProductService.getById(productId); if(ObjectUtil.isNull(aiProduct)){ - throw new RuntimeException("产品不存在"); + throw new FebsException("产品不存在"); } //验证产品分类下是否有题目 String productCategoryId = aiProduct.getProductCategoryId(); @@ -145,7 +146,7 @@ List<AiProductQuestion> aiProductQuestions = aiProductQuestionService.getListByQuery(questionLambdaQueryWrapper); if(CollUtil.isEmpty(aiProductQuestions)){ // todo 没有题目采用AI生成题目 - throw new RuntimeException("产品没有题目"); + throw new FebsException("产品没有题目"); } //判断该产品是否有正在进行的练习 Date createdTime = new Date(); @@ -246,7 +247,7 @@ AiMemberAnswer aiMemberAnswer = this.getById(memberAnswerId); if(ObjectUtil.isNull(aiMemberAnswer)){ - throw new RuntimeException("答题记录不存在"); + throw new FebsException("答题记录不存在"); } Date createdTime = new Date(); @@ -313,11 +314,15 @@ long between = DateUtil.between(createdTime, updatedTime, DateUnit.MINUTE); apiMemberAnswerInsureVo.setUseTime(between); + apiMemberAnswerInsureVo.setProductId(aiMemberAnswer.getProductId()); - aiMemberAnswer.setUpdatedTime(new Date()); - aiMemberAnswer.setState(1); - aiMemberAnswer.setScore(divide.intValue()); - aiMemberAnswerMapper.updateById(aiMemberAnswer); + aiMemberAnswerMapper.update(null, + Wrappers.lambdaUpdate(AiMemberAnswer.class) + .set(AiMemberAnswer::getUpdatedTime, new Date()) + .set(AiMemberAnswer::getState, 1) + .set(AiMemberAnswer::getScore, percentage.intValue()) + .eq(AiMemberAnswer::getId, memberAnswerId) + ); return new FebsResponse().success().data(apiMemberAnswerInsureVo); } -- Gitblit v1.9.1