Administrator
yesterday 8130bed63a505cf718481c0d95d3fcf7b037db96
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,8 +62,9 @@
        String productId = dto.getId();
        AiProduct aiProduct = aiProductService.getById(productId);
        if(ObjectUtil.isNull(aiProduct)){
            throw new RuntimeException("产品不存在");
            throw new FebsException("产品不存在");
        }
        String companyId = aiProduct.getCompanyId();
        //验证产品分类下是否有题目
        String productCategoryId = aiProduct.getProductCategoryId();
        LambdaQueryWrapper<AiProductQuestion> questionLambdaQueryWrapper = Wrappers.lambdaQuery(AiProductQuestion.class);
@@ -72,7 +74,7 @@
        List<AiProductQuestion> aiProductQuestions = aiProductQuestionService.getListByQuery(questionLambdaQueryWrapper);
        if(CollUtil.isEmpty(aiProductQuestions)){
            // todo 没有题目采用AI生成题目
            throw new RuntimeException("产品没有题目");
            throw new FebsException("产品没有题目");
        }
        //判断该产品是否有正在进行的练习
        Date createdTime = new Date();
@@ -85,6 +87,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());
@@ -101,6 +104,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());
@@ -134,7 +138,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 +149,7 @@
        List<AiProductQuestion> aiProductQuestions = aiProductQuestionService.getListByQuery(questionLambdaQueryWrapper);
        if(CollUtil.isEmpty(aiProductQuestions)){
            // todo 没有题目采用AI生成题目
            throw new RuntimeException("产品没有题目");
            throw new FebsException("产品没有题目");
        }
        //判断该产品是否有正在进行的练习
        Date createdTime = new Date();
@@ -246,12 +250,14 @@
        AiMemberAnswer aiMemberAnswer = this.getById(memberAnswerId);
        if(ObjectUtil.isNull(aiMemberAnswer)){
            throw new RuntimeException("答题记录不存在");
            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);
@@ -276,13 +282,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());
@@ -389,4 +396,14 @@
        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)
        );
    }
}