fix: createMessage 补 userId 字段 + 使用 senderType/contentType

This commit is contained in:
2026-06-29 23:52:37 +08:00
parent 3829a3ef92
commit 1073123360
@@ -694,6 +694,18 @@ const loadMessages = async () => {
}
}
const getCurrentUserId = () => {
try {
const token = uni.getStorageSync('access_token')
if (!token) return ''
const payload = token.split('.')[1]
const decoded = JSON.parse(decodeURIComponent(Array.from(atob(payload), c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)).join('')))
return decoded.sub || ''
} catch (e) {
return ''
}
}
/**
* 历史剧本兼容:基于 plotJson 初始化首条 AI 剧本消息
* 触发条件:loadMessages 返回空列表,且 currentResult.plotJson.fullContent 存在
@@ -703,11 +715,13 @@ const initializeFirstAIMessage = async () => {
if (!content) return
try {
const userId = getCurrentUserId()
// 先保存用户心愿消息(theme)
const theme = currentResult.value?.theme || currentResult.value?.title || ''
if (theme) {
await createMessage({
conversationId: conversationId.value,
userId,
content: theme,
senderType: 'user',
contentType: 'chat'
@@ -717,6 +731,7 @@ const initializeFirstAIMessage = async () => {
// 再保存 AI 剧本消息
await createMessage({
conversationId: conversationId.value,
userId,
content,
senderType: 'assistant',
contentType: 'script',
@@ -796,6 +811,7 @@ const sendChat = async () => {
const userMessageRes = await createMessage({
conversationId: conversationId.value,
userId: getCurrentUserId(),
content,
senderType: 'user',
contentType: 'chat'
@@ -847,6 +863,7 @@ const rewriteMessage = (msg) => {
const sendRewrite = async (targetMessageId, content) => {
const userMessageRes = await createMessage({
conversationId: conversationId.value,
userId: getCurrentUserId(),
content,
senderType: 'user',
contentType: 'chat'