package models import "database/sql" func compareAndCopy(sqlResult SQLResult, target *TargetOALicenseInfo) bool { // 标志位,初始为 true,表示默认所有值相等 isEqual := true // 辅助函数,用于处理 sql.NullString 类型的比较 compareAndAssignNullString := func(sqlValue sql.NullString, targetValue *sql.NullString) bool { if sqlValue.Valid && (!targetValue.Valid || sqlValue.String != targetValue.String) { *targetValue = sqlValue return false } return true } // 辅助函数,用于处理 sql.NullInt64 类型的比较 compareAndAssignNullInt64 := func(sqlValue sql.NullInt64, targetValue *sql.NullInt64) bool { if sqlValue.Valid && (!targetValue.Valid || sqlValue.Int64 != targetValue.Int64) { *targetValue = sqlValue return false } return true } // 比较 OARequestName if !compareAndAssignNullString(sqlResult.OARequestName, &target.OARequestName) { isEqual = false } // 比较 OARequestNameNew if !compareAndAssignNullString(sqlResult.OARequestNameNew, &target.OARequestNameNew) { isEqual = false } // 比较 OARequestNameHTMLNew if !compareAndAssignNullString(sqlResult.OARequestNameHTMLNew, &target.OARequestNameHTMLNew) { isEqual = false } // 比较 OAGLXMID(处理 sql.NullInt64) if !compareAndAssignNullInt64(sqlResult.OAGLXMID, &target.OAGLXMID) { isEqual = false } // 比较 OAGLXMName if !compareAndAssignNullString(sqlResult.OAGLXMName, &target.OAGLXMName) { isEqual = false } // 比较 OASQSJ if !compareAndAssignNullString(sqlResult.OASQSJ, &target.OASQSJ) { isEqual = false } // 比较 OASalespersonName if !compareAndAssignNullString(sqlResult.OASalespersonName, &target.OASalespersonName) { isEqual = false } // 比较 OAOperationsPersonName if !compareAndAssignNullString(sqlResult.OAOperationsPersonName, &target.OAOperationsPersonName) { isEqual = false } // 比较 OAXSJSYX if !compareAndAssignNullString(sqlResult.OAXSJSYX, &target.OAXSJSYX) { isEqual = false } // 比较 OAJFJSYX if !compareAndAssignNullString(sqlResult.OAJFJSYX, &target.OAJFJSYX) { isEqual = false } // 比较 OASYDW if !compareAndAssignNullString(sqlResult.OASYDW, &target.OASYDW) { isEqual = false } // 比较 OAXMXXMS if !compareAndAssignNullString(sqlResult.OAXMXXMS, &target.OAXMXXMS) { isEqual = false } // 比较 OAJDS(处理 int 类型) if sqlResult.OAJDS != target.OAJDS { target.OAJDS = sqlResult.OAJDS isEqual = false } // 比较 OANodeCount(处理 int 类型) if sqlResult.OANodeCount != target.OANodeCount { target.OANodeCount = sqlResult.OANodeCount isEqual = false } // 比较 OAProductName if !compareAndAssignNullString(sqlResult.OAProductName, &target.OAProductName) { isEqual = false } // 比较 OAProductVersion if !compareAndAssignNullString(sqlResult.OAProductVersion, &target.OAProductVersion) { isEqual = false } // 比较 CLQ(处理 int 类型) if sqlResult.CLQ != target.OACPU { target.OACPU = sqlResult.CLQ isEqual = false } // 比较 CZXT if !compareAndAssignNullString(sqlResult.CZXT, &target.OAOperatingSystem) { isEqual = false } // 比较 IP if !compareAndAssignNullString(sqlResult.IP, &target.OAMainMAC) { isEqual = false } // 比较 MAC if !compareAndAssignNullString(sqlResult.MAC, &target.OASecondMAC) { isEqual = false } // 比较 OACreationDate if !compareAndAssignNullString(sqlResult.OACreationDate, &target.OACreationDate) { isEqual = false } // 比较 OACreationTime if !compareAndAssignNullString(sqlResult.OACreationTime, &target.OACreationTime) { isEqual = false } // 比较 OALastOperateDate if !compareAndAssignNullString(sqlResult.OALastOperateDate, &target.OALastOperateDate) { isEqual = false } // 比较 OALastOperateTime if !compareAndAssignNullString(sqlResult.OALastOperateTime, &target.OALastOperateTime) { isEqual = false } // 返回标志位 return isEqual }