package controllers import ( "database/sql" "reflect" "xugu_license/internal/models" ) // compareNullInt32 compares two sql.NullInt32 values func compareNullInt32(a, b sql.NullInt32) bool { return a.Valid == b.Valid && (!a.Valid || a.Int32 == b.Int32) } // compareNullInt64 compares two sql.NullInt64 values func compareNullInt64(a, b sql.NullInt64) bool { return a.Valid == b.Valid && (!a.Valid || a.Int64 == b.Int64) } // compareNullString compares two sql.NullString values func compareNullString(a, b sql.NullString) bool { return a.Valid == b.Valid && (!a.Valid || a.String == b.String) } // compareNullTime compares two sql.NullTime values func compareNullTime(a, b sql.NullTime) bool { return a.Valid == b.Valid && (!a.Valid || a.Time.Equal(b.Time)) } // compareOALicenseInfo compares two OALicenseInfo structs func compareOALicenseInfo(a, b models.OALicenseInfo) bool { return reflect.DeepEqual(a.LicInfo, b.LicInfo) && reflect.DeepEqual(a.GenrateInfo, b.GenrateInfo) } // CompareOALicenseInfo compares two OALicenseInfo structs func CompareOALicenseInfo(a, b *models.OALicenseInfo) bool { if a == nil || b == nil { return a == b // 如果其中一个是 nil 则只有两者都为 nil 才相等 } // 使用 reflect.DeepEqual 递归比较两个结构体 return reflect.DeepEqual(a.LicInfo, b.LicInfo) && reflect.DeepEqual(a.GenrateInfo, b.GenrateInfo) }