Administrator
15 hours ago 8130bed63a505cf718481c0d95d3fcf7b037db96
refactor(ai): 优化代码结构和更新时间处理

- 在 AiMemberAnswerService 和 ApiMemberTalkStreamService 接口中添加了更新记录更新时间的方法
- 在 AiMemberAnswerServiceImpl 和 ApiMemberTalkStreamServiceImpl 中实现了这些方法
- 优化了更新时间的处理逻辑,使用当前时间作为更新时间
-重构了部分代码,提高了可读性和可维护性
4 files modified
42 ■■■■ changed files
src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java 20 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java 14 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/ai/service/AiMemberAnswerService.java
@@ -5,6 +5,8 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Date;
import java.util.List;
/**
@@ -32,4 +34,6 @@
    FebsResponse wrongPage(ApiMemberAnswerWrongPageDto dto);
    FebsResponse myWork(ApiMemberProductWorkPageDto dto);
    void updateMemberAnswerUpdateTime(String memberAnswerId, Date updateTime);
}
src/main/java/cc/mrbird/febs/ai/service/ApiMemberTalkStreamService.java
@@ -7,6 +7,8 @@
import com.baomidou.mybatisplus.extension.service.IService;
import reactor.core.publisher.Flux;
import java.util.Date;
public interface ApiMemberTalkStreamService extends IService<AiMemberTalk> {
    /**
     * 生成题目(流式)
@@ -26,4 +28,6 @@
    Flux<FebsResponse> answerV2(AiTalkAnswerStreamDto dto);
    FebsResponse saveAnswer(ApiMemberTalkAnswerSavaDto dto);
    void updateMemberTalkUpdateTime(String memberTalkId, Date updateTime);
}
src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberAnswerServiceImpl.java
@@ -253,11 +253,11 @@
            throw new FebsException("答题记录不存在");
        }
        String companyId = aiMemberAnswer.getCompanyId();
        Date nowTime = new Date();
        Date createdTime = 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);
@@ -282,14 +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);
        }
        aiMemberAnswerItem.setCompanyId(companyId);
        aiMemberAnswer.setUpdatedTime(createdTime);
        aiMemberAnswer.setUpdatedTime(nowTime);
        aiMemberAnswerMapper.updateById(aiMemberAnswer);
        apiQuestionItemInfoVo.setAnswerAnalysis(aiMemberAnswerItem.getAnswerAnalysis());
@@ -396,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)
        );
    }
}
src/main/java/cc/mrbird/febs/ai/service/impl/ApiMemberTalkStreamServiceImpl.java
@@ -130,6 +130,8 @@
        if (ObjectUtil.isNull(aiMemberTalk)){
            throw new FebsException("对话不存在");
        }
        this.updateMemberTalkUpdateTime(aiMemberTalk.getId(), new Date());
        String companyId = aiMemberTalk.getCompanyId();
        aiMemberTalkItemService.add(memberUuid,aiMemberTalk.getId(),companyId,2,content,new Date());
        return new FebsResponse().success();
@@ -277,6 +279,9 @@
        if (ObjectUtil.isNull(aiMemberTalk)){
            throw new FebsException("对话不存在");
        }
        this.updateMemberTalkUpdateTime(aiMemberTalk.getId(), new Date());
        String companyId = aiMemberTalk.getCompanyId();
        Integer type = dto.getType();
        String memberTalkItemId;
@@ -306,4 +311,13 @@
        return new FebsResponse().success().data(stringStringHashMap);
    }
    @Override
    public void updateMemberTalkUpdateTime(String memberTalkId, Date updateTime) {
        aiMemberTalkMapper.update(null,
                Wrappers.lambdaUpdate(AiMemberTalk.class)
                .set(AiMemberTalk::getUpdatedTime,updateTime)
                .eq(AiMemberTalk::getId,memberTalkId)
                );
    }
}