package com.iailab.module.ai.dal.mysql.chat; import com.iailab.framework.common.pojo.PageResult; import com.iailab.framework.mybatis.core.mapper.BaseMapperX; import com.iailab.framework.mybatis.core.query.LambdaQueryWrapperX; import com.iailab.module.ai.controller.admin.chat.vo.conversation.AiChatConversationPageReqVO; import com.iailab.module.ai.dal.dataobject.chat.AiChatConversationDO; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** * AI 聊天对话 Mapper * * @author Iailab */ @Mapper public interface AiChatConversationMapper extends BaseMapperX { default List selectListByUserId(Long userId) { return selectList(AiChatConversationDO::getUserId, userId); } default List selectListByModel(Long userId, Long modelId) { return selectList(new LambdaQueryWrapperX() .eq(AiChatConversationDO::getUserId, userId) .eq(AiChatConversationDO::getModelId, modelId)); } default List selectListByUserIdAndPinned(Long userId, boolean pinned) { return selectList(new LambdaQueryWrapperX() .eq(AiChatConversationDO::getUserId, userId) .eq(AiChatConversationDO::getPinned, pinned)); } default PageResult selectChatConversationPage(AiChatConversationPageReqVO pageReqVO) { return selectPage(pageReqVO, new LambdaQueryWrapperX() .eqIfPresent(AiChatConversationDO::getUserId, pageReqVO.getUserId()) .likeIfPresent(AiChatConversationDO::getTitle, pageReqVO.getTitle()) .betweenIfPresent(AiChatConversationDO::getCreateTime, pageReqVO.getCreateTime()) .orderByDesc(AiChatConversationDO::getId)); } }