房间号相关修复,视频’音频时长修复

This commit is contained in:
2025-07-25 16:02:35 +08:00
parent 5c4c8909a9
commit d77f06ad9a
2 changed files with 38 additions and 22 deletions

View File

@@ -686,6 +686,7 @@ func (c *WebSocketController) SendMessageHandler(ctx *gin.Context) {
clientMsg := models.ClientReceivedMessage{
SenderID: "system",
RoomID: payload.RoomId,
ReceiverID: payload.TargetClientID,
SenderUserID: payload.SenderUserID,
ReceiverUserID: payload.ReceiverUserID,
@@ -784,25 +785,33 @@ func (c *WebSocketController) SendToUserHandler(ctx *gin.Context) {
RoomId: payload.RoomId,
SenderUserID: payload.SenderUserID,
ReceiverUserID: payload.ReceiverUserID,
Duration: payload.Duration,
MessageType: payload.MessageType,
MessageContent: payload.MessageContent,
CallID: payload.CallID,
CallStatus: payload.CallStatus,
}
var savedID = 0
// 保存到数据库
if err := c.DB.Create(&chatMsg).Error; err != nil {
log.Printf("❌ 保存消息到数据库失败: %v", err)
} else {
// 获取消息id
log.Printf("💾 消息保存到数据库成功: ID=%d", chatMsg.ID)
savedID = int(chatMsg.ID)
}
// 创建基础消息结构
clientMsg := models.ClientReceivedMessage{
SenderID: "system",
ReceiverID: "",
ID: savedID,
RoomID: payload.RoomId,
SenderUserID: payload.SenderUserID,
ReceiverUserID: payload.ReceiverUserID,
Duration: payload.Duration,
MessageType: payload.MessageType,
Content: payload.MessageContent,
SendTime: time.Now().Format(time.RFC3339),
@@ -1026,29 +1035,29 @@ func (c *WebSocketController) sendMessageToUser(userID string, message models.Cl
if len(clientIDs) == 0 {
log.Printf("⚠️ 用户无在线客户端: UserID=%s", userID)
return fmt.Errorf("用户 %s 无在线客户端", userID)
}
//return fmt.Errorf("用户 %s 无在线客户端", userID)
} else {
log.Printf("📤📤📤📤📤📤📤📤 发送消息给用户: \n UserID=%s \n ClientCount=%d \n MsgType=%d",
userID, len(clientIDs), message.MessageType)
log.Printf("📤📤📤📤📤📤📤📤 发送消息给用户: \n UserID=%s \n ClientCount=%d \n MsgType=%d",
userID, len(clientIDs), message.MessageType)
var lastErr error
successCount := 0
var lastErr error
successCount := 0
for _, clientID := range clientIDs {
if err := c.sendMessageToClient(clientID, message); err != nil {
log.Printf("⚠️ 发送到客户端失败: %v | ClientID=%s", err, clientID)
lastErr = err
} else {
successCount++
for _, clientID := range clientIDs {
if err := c.sendMessageToClient(clientID, message); err != nil {
log.Printf("⚠️ 发送到客户端失败: %v | ClientID=%s", err, clientID)
lastErr = err
} else {
successCount++
}
}
}
if successCount == 0 {
return fmt.Errorf("所有客户端发送失败,最后错误: %v", lastErr)
}
if successCount == 0 {
return fmt.Errorf("所有客户端发送失败,最后错误: %v", lastErr)
}
log.Printf("✅ 用户消息发送完成: \n UserID=%s \n 成功=%d/%d", userID, successCount, len(clientIDs))
log.Printf("✅ 用户消息发送完成: \n UserID=%s \n 成功=%d/%d", userID, successCount, len(clientIDs))
}
return nil
}