2026-01-27 01:33:32 +08:00

51 lines
1.3 KiB
Go

package main
import (
"fmt"
"log"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
const (
// Connection string from simulate_test/main.go
DbDSN = "root:bindbox2025kdy@tcp(150.158.78.154:3306)/dev_game?charset=utf8mb4&parseTime=True&loc=Local"
)
type UserItemCards struct {
ID int64 `gorm:"column:id"`
CardID int64 `gorm:"column:card_id"`
Status int32 `gorm:"column:status"`
UsedDrawLogID int64 `gorm:"column:used_draw_log_id"`
UsedDiff int64 `gorm:"-"` // logic placeholder
}
func (UserItemCards) TableName() string { return "user_item_cards" }
func main() {
// 1. Connect DB
db, err := gorm.Open(mysql.Open(DbDSN), &gorm.Config{})
if err != nil {
log.Fatalf("DB connection failed: %v", err)
}
userCardID := 836
// 2. Query User Item Card
var userCard UserItemCards
err = db.Where("id = ?", userCardID).First(&userCard).Error
if err != nil {
log.Fatalf("User Card %d not found: %v", userCardID, err)
}
fmt.Printf("UserCard %d Status: %d\n", userCard.ID, userCard.Status)
fmt.Printf("UsedDrawLogID: %d\n", userCard.UsedDrawLogID)
if userCard.Status == 2 && userCard.UsedDrawLogID == 0 {
fmt.Println("WARNING: Card is USED (Status 2) but UsedDrawLogID is 0. Potential orphan data.")
} else if userCard.UsedDrawLogID > 0 {
fmt.Printf("Card correctly bound to DrawLog ID: %d\n", userCard.UsedDrawLogID)
}
}