Administrator
2025-09-01 182fda0a58de6ed3ef1e1637de6192af2d5956bb
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);
    }