Commit 66d020892019ead137c71a9263c2b99ca0103a3c

Authored by cherishsince
1 parent 00c2ca8b

1、增加获取最新的对话

2、增加获取top100的对话
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/dataobject/AiChatConversationDO.java
@@ -30,10 +30,10 @@ public class AiChatConversationDO extends BaseDO { @@ -30,10 +30,10 @@ public class AiChatConversationDO extends BaseDO {
30 @Schema(description = "chat角色名称") 30 @Schema(description = "chat角色名称")
31 private String chatRoleName; 31 private String chatRoleName;
32 32
33 - @Schema(description = "对话标题(有程序自动生成)") 33 + @Schema(description = "聊天标题(有程序自动生成)")
34 private String chatTitle; 34 private String chatTitle;
35 35
36 - @Schema(description = "对话标题(有程序自动生成)") 36 + @Schema(description = "聊天次数(有程序自动生成)")
37 private Integer chatCount; 37 private Integer chatCount;
38 38
39 @Schema(description = "对话类型(roleChat、userChat)") 39 @Schema(description = "对话类型(roleChat、userChat)")
yudao-module-ai/yudao-module-ai-biz/src/main/java/cn/iocoder/yudao/module/ai/mapper/AiChatConversationMapper.java
1 package cn.iocoder.yudao.module.ai.mapper; 1 package cn.iocoder.yudao.module.ai.mapper;
2 2
  3 +import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.StrUtil;
  5 +import cn.iocoder.yudao.framework.common.pojo.PageParam;
  6 +import cn.iocoder.yudao.framework.common.pojo.PageResult;
3 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; 7 import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
4 import cn.iocoder.yudao.module.ai.dataobject.AiChatConversationDO; 8 import cn.iocoder.yudao.module.ai.dataobject.AiChatConversationDO;
  9 +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
5 import org.apache.ibatis.annotations.Mapper; 10 import org.apache.ibatis.annotations.Mapper;
6 import org.apache.ibatis.annotations.Param; 11 import org.apache.ibatis.annotations.Param;
7 import org.apache.ibatis.annotations.Update; 12 import org.apache.ibatis.annotations.Update;
8 import org.springframework.stereotype.Repository; 13 import org.springframework.stereotype.Repository;
9 14
  15 +import java.util.List;
  16 +
10 /** 17 /**
11 * message mapper 18 * message mapper
12 * 19 *
@@ -21,4 +28,34 @@ public interface AiChatConversationMapper extends BaseMapperX<AiChatConversation @@ -21,4 +28,34 @@ public interface AiChatConversationMapper extends BaseMapperX<AiChatConversation
21 @Update("update ai_chat_conversation set chat_count = chat_count + 1 where id = #{id}") 28 @Update("update ai_chat_conversation set chat_count = chat_count + 1 where id = #{id}")
22 void updateIncrChatCount(@Param("id") Long id); 29 void updateIncrChatCount(@Param("id") Long id);
23 30
  31 + /**
  32 + * 查询 - 最新的对话
  33 + *
  34 + * @param loginUserId
  35 + */
  36 + default AiChatConversationDO selectLatestConversation(Long loginUserId) {
  37 + PageResult<AiChatConversationDO> pageResult = selectPage(new PageParam().setPageNo(1).setPageSize(1),
  38 + new LambdaQueryWrapper<AiChatConversationDO>()
  39 + .eq(AiChatConversationDO::getUserId, loginUserId)
  40 + .orderByDesc(AiChatConversationDO::getId));
  41 + if (CollUtil.isEmpty(pageResult.getList())) {
  42 + return null;
  43 + }
  44 + return pageResult.getList().get(0);
  45 + }
  46 +
  47 + /**
  48 + * 查询 - 前100
  49 + *
  50 + * @param search
  51 + */
  52 + default List<AiChatConversationDO> selectTop100Conversation(Long loginUserId, String search) {
  53 + LambdaQueryWrapper<AiChatConversationDO> queryWrapper
  54 + = new LambdaQueryWrapper<AiChatConversationDO>().eq(AiChatConversationDO::getUserId, loginUserId);
  55 + if (!StrUtil.isBlank(search)) {
  56 + queryWrapper.like(AiChatConversationDO::getChatTitle, search);
  57 + }
  58 + queryWrapper.orderByDesc(AiChatConversationDO::getId);
  59 + return selectPage(new PageParam().setPageNo(1).setPageSize(100), queryWrapper).getList();
  60 + }
24 } 61 }