diff --git a/features/ue/cb_message/service.go b/features/ue/cb_message/service.go index 99f4550c..cc7b31f6 100644 --- a/features/ue/cb_message/service.go +++ b/features/ue/cb_message/service.go @@ -200,12 +200,27 @@ func (s *CBMessageService) UpdateCBMessage(id int64, messageJson json.RawMessage } now := time.Now().UnixMicro() - if err := s.db.Table("cb_message"). - Where("id = ?", id). - Updates(map[string]interface{}{ - "message_json": messageJson, - "updated_at": now, - }).Error; err != nil { + err := s.db.Transaction(func(tx *gorm.DB) error { + // 在事务中更新 + if err := tx.Table("cb_message"). + Where("id = ?", id). + Updates(map[string]any{ + "message_json": messageJson, + "updated_at": now, + }).Error; err != nil { + return fmt.Errorf("failed to update CBC message: %w", err) + } + + // 在事务中查询更新后的记录 + if err := tx.Table("cb_message"). + Where("id = ?", id). + First(&msg).Error; err != nil { + return fmt.Errorf("failed to fetch updated CBC message: %w", err) + } + + return nil + }) + if err != nil { return fmt.Errorf("failed to update CB message: %w", err) } @@ -488,7 +503,7 @@ func (s *CBMessageService) sendUpdateRequest(msg CBMessage) error { return err } - return client.PutMessage(msg.MessageJson) + return client.PostMessage(msg.MessageJson) } // 重构后的停用请求