123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- 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
- }
|