fix(引用回复): 仅在回复内容非空时启用引用回复
修复引用回复逻辑,避免在回复内容为空时错误地引用上一条消息。 同时增强保存引用消息时的空值检查,确保只有有效的消息内容被保存。
This commit is contained in:
@@ -67,8 +67,10 @@ object WeworkController {
|
||||
@RequestMapping
|
||||
fun sendMessage(message: WeworkMessageBean): Boolean {
|
||||
LogUtils.d("REQUEST sendMessage(): ${message.messageId} ${message.titleList} ${message.receivedContent} ${message.at} ${message.atList?.joinToString()}")
|
||||
// 如果有待引用消息,自动使用引用回复
|
||||
val result = if (!lastReceivedMessage.isNullOrBlank() && !lastReceivedName.isNullOrBlank()) {
|
||||
// 如果有待引用消息且有回复内容,才使用引用回复
|
||||
val result = if (!lastReceivedMessage.isNullOrBlank()
|
||||
&& !lastReceivedName.isNullOrBlank()
|
||||
&& !message.receivedContent.isNullOrBlank()) {
|
||||
LogUtils.d("使用引用回复: ${lastReceivedName} -> $lastReceivedMessage")
|
||||
val replyResult = WeworkOperationImpl.replyMessage(
|
||||
message,
|
||||
|
||||
@@ -354,13 +354,15 @@ object WeworkLoopImpl {
|
||||
WeworkController.weworkService.webSocketManager.send(messageBean)
|
||||
// 保存最后收到的消息内容,用于回复时引用
|
||||
val lastMsg = messageList.lastOrNull()
|
||||
if (lastMsg != null && lastMsg.sender == 0) {
|
||||
val msgContent = lastMsg.itemMessageList.lastOrNull()?.text ?: ""
|
||||
val senderName = lastMsg.nameList.firstOrNull() ?: ""
|
||||
if (lastMsg != null && lastMsg.sender == 0 && lastMsg.itemMessageList != null) {
|
||||
val msgContent = lastMsg.itemMessageList.lastOrNull()?.text?.takeIf { it.isNotBlank() } ?: ""
|
||||
val senderName = lastMsg.nameList?.firstOrNull()?.takeIf { it.isNotBlank() } ?: ""
|
||||
if (msgContent.isNotBlank() && senderName.isNotBlank()) {
|
||||
WeworkController.lastReceivedMessage = msgContent
|
||||
WeworkController.lastReceivedName = senderName
|
||||
LogUtils.d("保存最后消息用于引用: $senderName: $msgContent")
|
||||
}
|
||||
}
|
||||
//推测是否回复并在房间等待指令
|
||||
if (needInfer) {
|
||||
val lastMessage = messageList.lastOrNull()
|
||||
|
||||
Reference in New Issue
Block a user