Commit 1219c383 by Liu

feat:获取历史会话id接口&&新建会话时机

parent 6eea50cc
......@@ -13,7 +13,7 @@ export function fetchQueryUserConversationPage<T>(data: T) {
* @params { * }
*/
export function fetchCreateConversation<T>(data: T) {
return http.post('/conversation/api/conversation/mobile/v1/create_conversation', data)
return http.post('/conversation/api/conversation/mobile/v1/create_conversation', data as Record<string, any>)
}
/**
......@@ -33,3 +33,16 @@ export function fetchDeleteUserConversation(conversationIdList: string[]) {
conversationIdList,
})
}
/**
* 获取历史会话ID
* @params
*/
export function fetchSessionConversationId<T>(data: T) {
const requestData = {
...(data as Record<string, any>),
busiType: '01',
busiId: (data as Record<string, any>)?.busiId || '',
}
return http.post('/conversation/api/conversation/mobile/v1/get_user_conversation_session', requestData)
}
......@@ -12,6 +12,7 @@ import { useAppDispatch } from '@/store/hook'
import { fetchEfficiencyQuestionList } from '@/api/home'
import SdreamLoading from '@/components/SdreamLoading'
import { fetchLoginByToken, fetchLoginByUid } from '@/api/common'
import { fetchSessionConversationId, fetchUserQaRecordPage } from '@/api/conversation'
import { getUserRolesFromRoute, safeLocalStorageGetItem, safeSessionStorageGetItem, safeSessionStorageRemoveItem, safeSessionStorageSetItem } from '@/lib/utils'
import type { Conversation } from '@/types/conversation'
......@@ -59,7 +60,7 @@ export const Home: React.FC = () => {
defaultValue: '',
})
const initConversation = async () => {
const _initConversation = async () => {
const fromCollect = location.state?.fromCollect
// 只有在访问首页时才处理会话,如果已经在聊天页面则不处理
if (!fromCollect && (location.pathname === '/' || location.pathname === '/home')) {
......@@ -107,6 +108,31 @@ export const Home: React.FC = () => {
}
}
// 获取会话ID并加载历史记录
const getSessionConversationId = async (data?: any) => {
try {
// 从 sessionStorage 获取 toolId 作为 busiId
const toolId = safeSessionStorageGetItem('currentToolId') || ''
const requestData = {
...(data || {}),
busiId: toolId,
}
const res = await fetchSessionConversationId(requestData)
if (res?.data?.conversationId) {
const conversationId = res.data.conversationId
dispatch(setCurrentConversation(conversationId))
dispatch(setNavigationFlag(true))
// 获取历史记录
await fetchUserQaRecordPage(conversationId, toolId || undefined)
// 历史记录会在 Chat 页面自动渲染,这里只负责获取
}
}
catch (error) {
console.error('获取会话ID失败:', error)
}
}
// 刷新问题列表
const handleRefreshQuestions = useCallback(async () => {
// 先清空旧数据
......@@ -260,14 +286,14 @@ export const Home: React.FC = () => {
)
// 触发自定义事件,通知 ChatEditor 强制重置为制度活化
window.dispatchEvent(new CustomEvent('forceResetToGeneralMode'))
initConversation()
getSessionConversationId()
dispatch(fetchConversations())
// 2. 拉取常见问题等业务数据
_handleToolClick(false, '', true)
}
}
else {
initConversation()
getSessionConversationId()
dispatch(fetchConversations())
}
}
......@@ -296,7 +322,7 @@ export const Home: React.FC = () => {
)
// 触发自定义事件,通知 ChatEditor 强制重置为制度活化
window.dispatchEvent(new CustomEvent('forceResetToGeneralMode'))
initConversation()
getSessionConversationId()
dispatch(fetchConversations())
// 2. 拉取常见问题等业务数据
_handleToolClick(false, '', true)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment