From fe70ca5db711b458714bfbe4a6eda6cf7d8a0421 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Tue, 16 Sep 2025 13:58:46 +0800 Subject: [PATCH] feat(member): 添加会员公司ID并更新相关服务 --- src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java | 74 ++++++++++++++++++++++++++++++++++++ 1 files changed, 73 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java index fe9f1ab..552f8ef 100644 --- a/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/ai/service/impl/AiMemberTalkItemServiceImpl.java @@ -1,15 +1,27 @@ package cc.mrbird.febs.ai.service.impl; +import cc.mrbird.febs.ai.enumerates.AiTypeEnum; import cc.mrbird.febs.ai.entity.AiMemberTalkItem; import cc.mrbird.febs.ai.mapper.AiMemberTalkItemMapper; +import cc.mrbird.febs.ai.req.ai.AiMessage; +import cc.mrbird.febs.ai.req.memberTalk.ApiMemberTalkItemPageDto; +import cc.mrbird.febs.ai.res.memberTalk.ApiMemberTalkItemVo; import cc.mrbird.febs.ai.service.AiMemberTalkItemService; +import cc.mrbird.febs.ai.utils.UUID; +import cc.mrbird.febs.common.entity.FebsResponse; +import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.volcengine.ark.runtime.model.completion.chat.ChatMessageRole; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -25,5 +37,65 @@ private final AiMemberTalkItemMapper aiMemberTalkItemMapper; + @Override + public AiMemberTalkItem add(String memberUuid, String id, String companyId, int type, String resContext,Date createdTime) { + AiMemberTalkItem aiMemberTalkItem = new AiMemberTalkItem(); + aiMemberTalkItem.setId(UUID.getSimpleUUIDString()); + aiMemberTalkItem.setCompanyId(companyId); + aiMemberTalkItem.setCreatedTime(createdTime); + aiMemberTalkItem.setMemberId(memberUuid); + aiMemberTalkItem.setMemberTalkId(id); + aiMemberTalkItem.setType(type); + aiMemberTalkItem.setContext(resContext); + aiMemberTalkItemMapper.insert(aiMemberTalkItem); + + return aiMemberTalkItem; + } + + @Override + public AiMemberTalkItem getByQuery(LambdaQueryWrapper<AiMemberTalkItem> memberTalkItemQuery) { + return aiMemberTalkItemMapper.selectOne(memberTalkItemQuery); + } + + @Override + public IPage<ApiMemberTalkItemVo> historyPage(ApiMemberTalkItemPageDto dto) { + // 创建分页对象,传入当前页和每页大小 + Page<ApiMemberTalkItemVo> page = new Page<>(dto.getPageNow(), dto.getPageSize()); + return aiMemberTalkItemMapper.getPageListByQuery(page, dto); + } + + @Override + public List<AiMessage> getQuestionUpDownContext(String memberTalkId, int code) { + List<AiMessage> aiMessages = new ArrayList<>(); + + LambdaQueryWrapper<AiMemberTalkItem> query = Wrappers.lambdaQuery(AiMemberTalkItem.class); + if (AiTypeEnum.QUESTION.getCode() == code){ + query.eq(AiMemberTalkItem::getType,AiTypeEnum.QUESTION_ANSWER.getCode()); + query.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId); + query.orderByDesc(AiMemberTalkItem::getCreatedTime); + query.last("limit 1"); + List<AiMemberTalkItem> aiMemberTalkItems = aiMemberTalkItemMapper.selectList(query); + if (CollUtil.isNotEmpty(aiMemberTalkItems)){ + AiMessage assistantMessage = new AiMessage(); + assistantMessage.setRole(ChatMessageRole.ASSISTANT); + assistantMessage.setContent(aiMemberTalkItems.get(0).getContext()); + aiMessages.add(assistantMessage); + } + } + if (AiTypeEnum.ANSWER.getCode() == code){ + query.eq(AiMemberTalkItem::getType,AiTypeEnum.ANSWER_ANALYSIS.getCode()); + query.eq(AiMemberTalkItem::getMemberTalkId,memberTalkId); + query.orderByDesc(AiMemberTalkItem::getCreatedTime); + query.last("limit 1"); + List<AiMemberTalkItem> aiMemberTalkItems = aiMemberTalkItemMapper.selectList(query); + if (CollUtil.isNotEmpty(aiMemberTalkItems)){ + AiMessage assistantMessage = new AiMessage(); + assistantMessage.setRole(ChatMessageRole.ASSISTANT); + assistantMessage.setContent(aiMemberTalkItems.get(0).getContext()); + aiMessages.add(assistantMessage); + } + } + return aiMessages; + } } -- Gitblit v1.9.1