github.com/artisanhe/tools@v1.0.1-0.20210607022958-19a8fef2eb04/gen_method/examples/customer_g7__generated.go (about) 1 package examples 2 3 import ( 4 "fmt" 5 "reflect" 6 "strings" 7 "time" 8 9 "github.com/artisanhe/gorm" 10 "github.com/artisanhe/tools/courier/enumeration" 11 "github.com/artisanhe/tools/duration" 12 "github.com/artisanhe/tools/mysql/dberr" 13 "github.com/artisanhe/tools/timelib" 14 "github.com/go-sql-driver/mysql" 15 "github.com/sirupsen/logrus" 16 ) 17 18 type CustomerG7List []CustomerG7 19 20 func init() { 21 DBTable.Register(&CustomerG7{}) 22 } 23 24 func (cg CustomerG7) TableName() string { 25 table_name := "t_customer_g7" 26 if DBTable.Name == "" { 27 return table_name 28 } 29 return DBTable.Name + "." + table_name 30 } 31 32 func (cgl *CustomerG7List) BatchFetchByCreateTimeList(db *gorm.DB, createTimeList []timelib.MySQLTimestamp) error { 33 defer duration.PrintDuration(map[string]interface{}{ 34 "request": "[DB]CustomerG7.BatchFetchByCreateTimeList", 35 })() 36 37 if len(createTimeList) == 0 { 38 return nil 39 } 40 41 err := db.Table(CustomerG7{}.TableName()).Where("F_create_time in (?) and F_enabled = ?", createTimeList, enumeration.BOOL__TRUE).Find(cgl).Error 42 if err != nil { 43 logrus.Errorf("%s", err.Error()) 44 return dberr.RecordFetchFailedError 45 } else { 46 return nil 47 } 48 } 49 50 func (cgl *CustomerG7List) BatchFetchByCustomerIDList(db *gorm.DB, customerIDList []uint64) error { 51 defer duration.PrintDuration(map[string]interface{}{ 52 "request": "[DB]CustomerG7.BatchFetchByCustomerIDList", 53 })() 54 55 if len(customerIDList) == 0 { 56 return nil 57 } 58 59 err := db.Table(CustomerG7{}.TableName()).Where("F_customer_id in (?) and F_enabled = ?", customerIDList, enumeration.BOOL__TRUE).Find(cgl).Error 60 if err != nil { 61 logrus.Errorf("%s", err.Error()) 62 return dberr.RecordFetchFailedError 63 } else { 64 return nil 65 } 66 } 67 68 func (cgl *CustomerG7List) BatchFetchByG7sUserIDList(db *gorm.DB, g7sUserIDList []string) error { 69 defer duration.PrintDuration(map[string]interface{}{ 70 "request": "[DB]CustomerG7.BatchFetchByG7sUserIDList", 71 })() 72 73 if len(g7sUserIDList) == 0 { 74 return nil 75 } 76 77 err := db.Table(CustomerG7{}.TableName()).Where("F_g7s_user_id in (?) and F_enabled = ?", g7sUserIDList, enumeration.BOOL__TRUE).Find(cgl).Error 78 if err != nil { 79 logrus.Errorf("%s", err.Error()) 80 return dberr.RecordFetchFailedError 81 } else { 82 return nil 83 } 84 } 85 86 func (cgl *CustomerG7List) BatchFetchByUpdateTimeList(db *gorm.DB, updateTimeList []timelib.MySQLTimestamp) error { 87 defer duration.PrintDuration(map[string]interface{}{ 88 "request": "[DB]CustomerG7.BatchFetchByUpdateTimeList", 89 })() 90 91 if len(updateTimeList) == 0 { 92 return nil 93 } 94 95 err := db.Table(CustomerG7{}.TableName()).Where("F_update_time in (?) and F_enabled = ?", updateTimeList, enumeration.BOOL__TRUE).Find(cgl).Error 96 if err != nil { 97 logrus.Errorf("%s", err.Error()) 98 return dberr.RecordFetchFailedError 99 } else { 100 return nil 101 } 102 } 103 104 func (cg *CustomerG7) Create(db *gorm.DB) error { 105 defer duration.PrintDuration(map[string]interface{}{ 106 "request": "[DB]CustomerG7.Create", 107 })() 108 109 if time.Time(cg.CreateTime).IsZero() { 110 cg.CreateTime = timelib.MySQLTimestamp(time.Now()) 111 } 112 113 if time.Time(cg.UpdateTime).IsZero() { 114 cg.UpdateTime = timelib.MySQLTimestamp(time.Now()) 115 } 116 117 cg.Enabled = enumeration.Bool(enumeration.BOOL__TRUE) 118 err := db.Table(cg.TableName()).Create(cg).Error 119 if err != nil { 120 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 121 logrus.Errorf("%s", err.Error()) 122 return dberr.RecordCreateFailedError 123 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 124 logrus.Errorf("%s", err.Error()) 125 return dberr.RecordCreateFailedError 126 } else { 127 return dberr.RecordConflictError 128 } 129 } else { 130 return nil 131 } 132 } 133 134 type CustomerG7DBFieldData struct { 135 CustomerID string 136 G7sOrgCode string 137 G7sUserID string 138 CreateTime string 139 UpdateTime string 140 Enabled string 141 } 142 143 // FetchNoneUniqueIndexFields without Enabled and CreateTime field. 144 func (cgdbfd *CustomerG7DBFieldData) FetchNoneUniqueIndexFields() []string { 145 return []string{ 146 "F_update_time", 147 } 148 } 149 150 func (cg CustomerG7) DBField() *CustomerG7DBFieldData { 151 return &CustomerG7DBFieldData{ 152 CustomerID: "F_customer_id", 153 G7sOrgCode: "F_g7s_org_code", 154 G7sUserID: "F_g7s_user_id", 155 CreateTime: "F_create_time", 156 UpdateTime: "F_update_time", 157 Enabled: "F_enabled", 158 } 159 } 160 161 var CustomerG7StructFieldAndDBFieldRelate = map[string]string{ 162 "CustomerID": "F_customer_id", 163 "G7sOrgCode": "F_g7s_org_code", 164 "G7sUserID": "F_g7s_user_id", 165 "CreateTime": "F_create_time", 166 "UpdateTime": "F_update_time", 167 "Enabled": "F_enabled", 168 } 169 170 var CustomerG7DBFieldAndStructFieldRelate = map[string]string{ 171 "F_customer_id": "CustomerID", 172 "F_g7s_org_code": "G7sOrgCode", 173 "F_g7s_user_id": "G7sUserID", 174 "F_create_time": "CreateTime", 175 "F_update_time": "UpdateTime", 176 "F_enabled": "Enabled", 177 } 178 179 // CreateOnDuplicateWithUpdateFields only update the no unique index field, it return error if updateFields contain unique index field. 180 // It doesn't update the Enabled and CreateTime field. 181 func (cg *CustomerG7) CreateOnDuplicateWithUpdateFields(db *gorm.DB, updateFields []string) error { 182 defer duration.PrintDuration(map[string]interface{}{ 183 "request": "[DB]CustomerG7.CreateOnDuplicateWithUpdateFields", 184 })() 185 if len(updateFields) == 0 { 186 return fmt.Errorf("Must have update fields.") 187 } 188 189 noUniqueIndexFields := (&CustomerG7DBFieldData{}).FetchNoneUniqueIndexFields() 190 if len(noUniqueIndexFields) == 0 { 191 return fmt.Errorf("There are no unique fields.") 192 } 193 194 var noUniqueIndexFieldsMap = make(map[string]string) 195 for _, field := range noUniqueIndexFields { 196 noUniqueIndexFieldsMap[field] = "" 197 } 198 199 var updateFieldsMap = make(map[string]string) 200 for _, field := range updateFields { 201 // have unique field in updateFields 202 if _, ok := noUniqueIndexFieldsMap[field]; !ok { 203 return fmt.Errorf("Field[%s] is unique index or wrong field or Enable field", CustomerG7DBFieldAndStructFieldRelate[field]) 204 } 205 updateFieldsMap[field] = "" 206 } 207 208 if time.Time(cg.CreateTime).IsZero() { 209 cg.CreateTime = timelib.MySQLTimestamp(time.Now()) 210 } 211 212 if time.Time(cg.UpdateTime).IsZero() { 213 cg.UpdateTime = timelib.MySQLTimestamp(time.Now()) 214 } 215 216 cg.Enabled = enumeration.Bool(enumeration.BOOL__TRUE) 217 218 structType := reflect.TypeOf(cg).Elem() 219 if structType.Kind() != reflect.Struct { 220 return fmt.Errorf("Instance not struct type.") 221 } 222 structVal := reflect.ValueOf(cg).Elem() 223 224 var param_list []interface{} 225 var str_list = []string{"insert into"} 226 var insertFieldsStr = cg.TableName() + "(" 227 var placeHolder = "values(" 228 for i := 0; i < structType.NumField(); i++ { 229 if i == 0 { 230 insertFieldsStr += CustomerG7StructFieldAndDBFieldRelate[structType.Field(i).Name] 231 placeHolder += fmt.Sprintf("%s", "?") 232 } else { 233 insertFieldsStr += fmt.Sprintf(",%s", CustomerG7StructFieldAndDBFieldRelate[structType.Field(i).Name]) 234 placeHolder += fmt.Sprintf("%s", ", ?") 235 } 236 param_list = append(param_list, structVal.Field(i).Interface()) 237 } 238 insertFieldsStr += ")" 239 placeHolder += ")" 240 str_list = append(str_list, []string{insertFieldsStr, placeHolder, "on duplicate key update"}...) 241 242 var updateStr []string 243 for i := 0; i < structType.NumField(); i++ { 244 if dbField, ok := CustomerG7StructFieldAndDBFieldRelate[structType.Field(i).Name]; !ok { 245 return fmt.Errorf("Wrong field of struct, may be changed field but not regenerate code.") 246 } else { 247 if _, ok := updateFieldsMap[dbField]; ok { 248 updateStr = append(updateStr, fmt.Sprintf("%s = ?", dbField)) 249 param_list = append(param_list, structVal.Field(i).Interface()) 250 } 251 } 252 } 253 str_list = append(str_list, strings.Join(updateStr, ",")) 254 sql := strings.Join(str_list, " ") 255 err := db.Exec(sql, param_list...).Error 256 if err != nil { 257 logrus.Errorf("%s", err.Error()) 258 return dberr.RecordCreateFailedError 259 } 260 261 return nil 262 } 263 264 func (cg *CustomerG7) DeleteByCustomerIDAndG7sOrgCodeAndG7sUserID(db *gorm.DB) error { 265 defer duration.PrintDuration(map[string]interface{}{ 266 "request": "[DB]CustomerG7.DeleteByCustomerIDAndG7sOrgCodeAndG7sUserID", 267 })() 268 269 err := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Delete(cg).Error 270 if err != nil { 271 logrus.Errorf("%s", err.Error()) 272 return dberr.RecordDeleteFailedError 273 } else { 274 return nil 275 } 276 } 277 278 func (cg *CustomerG7) DeleteByG7sUserIDAndCustomerID(db *gorm.DB) error { 279 defer duration.PrintDuration(map[string]interface{}{ 280 "request": "[DB]CustomerG7.DeleteByG7sUserIDAndCustomerID", 281 })() 282 283 err := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Delete(cg).Error 284 if err != nil { 285 logrus.Errorf("%s", err.Error()) 286 return dberr.RecordDeleteFailedError 287 } else { 288 return nil 289 } 290 } 291 292 func (cgl *CustomerG7List) FetchByCreateTime(db *gorm.DB, createTime timelib.MySQLTimestamp) error { 293 defer duration.PrintDuration(map[string]interface{}{ 294 "request": "[DB]CustomerG7.FetchByCreateTime", 295 })() 296 297 err := db.Table(CustomerG7{}.TableName()).Where("F_create_time = ? and F_enabled = ?", createTime, enumeration.BOOL__TRUE).Find(cgl).Error 298 if err == nil { 299 return nil 300 } else { 301 logrus.Errorf("%s", err.Error()) 302 return dberr.RecordFetchFailedError 303 } 304 } 305 306 func (cgl *CustomerG7List) FetchByCustomerID(db *gorm.DB, customerID uint64) error { 307 defer duration.PrintDuration(map[string]interface{}{ 308 "request": "[DB]CustomerG7.FetchByCustomerID", 309 })() 310 311 err := db.Table(CustomerG7{}.TableName()).Where("F_customer_id = ? and F_enabled = ?", customerID, enumeration.BOOL__TRUE).Find(cgl).Error 312 if err == nil { 313 return nil 314 } else { 315 logrus.Errorf("%s", err.Error()) 316 return dberr.RecordFetchFailedError 317 } 318 } 319 320 func (cgl *CustomerG7List) FetchByCustomerIDAndG7sOrgCode(db *gorm.DB, customerID uint64, g7sOrgCode string) error { 321 defer duration.PrintDuration(map[string]interface{}{ 322 "request": "[DB]CustomerG7.FetchByCustomerIDAndG7sOrgCode", 323 })() 324 325 err := db.Table(CustomerG7{}.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_enabled = ?", customerID, g7sOrgCode, enumeration.BOOL__TRUE).Find(cgl).Error 326 if err == nil { 327 return nil 328 } else { 329 logrus.Errorf("%s", err.Error()) 330 return dberr.RecordFetchFailedError 331 } 332 } 333 334 func (cg *CustomerG7) FetchByCustomerIDAndG7sOrgCodeAndG7sUserID(db *gorm.DB) error { 335 defer duration.PrintDuration(map[string]interface{}{ 336 "request": "[DB]CustomerG7.FetchByCustomerIDAndG7sOrgCodeAndG7sUserID", 337 })() 338 339 err := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Find(cg).Error 340 if err == nil { 341 return nil 342 } else { 343 if err == gorm.RecordNotFound { 344 return dberr.RecordNotFoundError 345 } else { 346 logrus.Errorf("%s", err.Error()) 347 return dberr.RecordFetchFailedError 348 } 349 } 350 } 351 352 func (cg *CustomerG7) FetchByCustomerIDAndG7sOrgCodeAndG7sUserIDForUpdate(db *gorm.DB) error { 353 defer duration.PrintDuration(map[string]interface{}{ 354 "request": "[DB]CustomerG7.FetchByCustomerIDAndG7sOrgCodeAndG7sUserIDForUpdate", 355 })() 356 357 err := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Set("gorm:query_option", "FOR UPDATE").Find(cg).Error 358 if err == nil { 359 return nil 360 } else { 361 if err == gorm.RecordNotFound { 362 return dberr.RecordNotFoundError 363 } else { 364 logrus.Errorf("%s", err.Error()) 365 return dberr.RecordFetchFailedError 366 } 367 } 368 } 369 370 func (cgl *CustomerG7List) FetchByG7sUserID(db *gorm.DB, g7sUserID string) error { 371 defer duration.PrintDuration(map[string]interface{}{ 372 "request": "[DB]CustomerG7.FetchByG7sUserID", 373 })() 374 375 err := db.Table(CustomerG7{}.TableName()).Where("F_g7s_user_id = ? and F_enabled = ?", g7sUserID, enumeration.BOOL__TRUE).Find(cgl).Error 376 if err == nil { 377 return nil 378 } else { 379 logrus.Errorf("%s", err.Error()) 380 return dberr.RecordFetchFailedError 381 } 382 } 383 384 func (cg *CustomerG7) FetchByG7sUserIDAndCustomerID(db *gorm.DB) error { 385 defer duration.PrintDuration(map[string]interface{}{ 386 "request": "[DB]CustomerG7.FetchByG7sUserIDAndCustomerID", 387 })() 388 389 err := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Find(cg).Error 390 if err == nil { 391 return nil 392 } else { 393 if err == gorm.RecordNotFound { 394 return dberr.RecordNotFoundError 395 } else { 396 logrus.Errorf("%s", err.Error()) 397 return dberr.RecordFetchFailedError 398 } 399 } 400 } 401 402 func (cg *CustomerG7) FetchByG7sUserIDAndCustomerIDForUpdate(db *gorm.DB) error { 403 defer duration.PrintDuration(map[string]interface{}{ 404 "request": "[DB]CustomerG7.FetchByG7sUserIDAndCustomerIDForUpdate", 405 })() 406 407 err := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Set("gorm:query_option", "FOR UPDATE").Find(cg).Error 408 if err == nil { 409 return nil 410 } else { 411 if err == gorm.RecordNotFound { 412 return dberr.RecordNotFoundError 413 } else { 414 logrus.Errorf("%s", err.Error()) 415 return dberr.RecordFetchFailedError 416 } 417 } 418 } 419 420 func (cgl *CustomerG7List) FetchByUpdateTime(db *gorm.DB, updateTime timelib.MySQLTimestamp) error { 421 defer duration.PrintDuration(map[string]interface{}{ 422 "request": "[DB]CustomerG7.FetchByUpdateTime", 423 })() 424 425 err := db.Table(CustomerG7{}.TableName()).Where("F_update_time = ? and F_enabled = ?", updateTime, enumeration.BOOL__TRUE).Find(cgl).Error 426 if err == nil { 427 return nil 428 } else { 429 logrus.Errorf("%s", err.Error()) 430 return dberr.RecordFetchFailedError 431 } 432 } 433 434 func (cgl *CustomerG7List) FetchList(db *gorm.DB, size, offset int32, query ...map[string]interface{}) (int32, error) { 435 defer duration.PrintDuration(map[string]interface{}{ 436 "request": "[DB]CustomerG7.FetchList", 437 })() 438 439 var count int32 440 if len(query) == 0 { 441 query = append(query, map[string]interface{}{"F_enabled": enumeration.BOOL__TRUE}) 442 } else { 443 if _, ok := query[0]["F_enabled"]; !ok { 444 query[0]["F_enabled"] = enumeration.BOOL__TRUE 445 } 446 } 447 448 if size <= 0 { 449 size = -1 450 offset = -1 451 } 452 var err error 453 454 err = db.Table(CustomerG7{}.TableName()).Where(query[0]).Count(&count).Limit(size).Offset(offset).Order("F_create_time desc").Find(cgl).Error 455 456 if err != nil { 457 logrus.Errorf("%s", err.Error()) 458 return 0, dberr.RecordFetchFailedError 459 } else { 460 return int32(count), nil 461 } 462 } 463 464 func (cg *CustomerG7) SoftDeleteByCustomerIDAndG7sOrgCodeAndG7sUserID(db *gorm.DB) error { 465 defer duration.PrintDuration(map[string]interface{}{ 466 "request": "[DB]CustomerG7.SoftDeleteByCustomerIDAndG7sOrgCodeAndG7sUserID", 467 })() 468 469 var updateMap = map[string]interface{}{} 470 updateMap["F_enabled"] = enumeration.BOOL__FALSE 471 472 if time.Time(cg.UpdateTime).IsZero() { 473 cg.UpdateTime = timelib.MySQLTimestamp(time.Now()) 474 } 475 476 err := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Updates(updateMap).Error 477 if err != nil { 478 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 479 logrus.Errorf("%s", err.Error()) 480 return dberr.RecordDeleteFailedError 481 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 482 logrus.Errorf("%s", err.Error()) 483 return dberr.RecordDeleteFailedError 484 } else { 485 logrus.Warningf("%s", err.Error()) 486 // 物理删除被软删除的数据 487 delErr := db.Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Delete(&CustomerG7{}).Error 488 if delErr != nil { 489 logrus.Errorf("%s", delErr.Error()) 490 return dberr.RecordDeleteFailedError 491 } 492 493 return nil 494 } 495 } else { 496 return nil 497 } 498 } 499 500 func (cg *CustomerG7) SoftDeleteByG7sUserIDAndCustomerID(db *gorm.DB) error { 501 defer duration.PrintDuration(map[string]interface{}{ 502 "request": "[DB]CustomerG7.SoftDeleteByG7sUserIDAndCustomerID", 503 })() 504 505 var updateMap = map[string]interface{}{} 506 updateMap["F_enabled"] = enumeration.BOOL__FALSE 507 508 if time.Time(cg.UpdateTime).IsZero() { 509 cg.UpdateTime = timelib.MySQLTimestamp(time.Now()) 510 } 511 512 err := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Updates(updateMap).Error 513 if err != nil { 514 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 515 logrus.Errorf("%s", err.Error()) 516 return dberr.RecordDeleteFailedError 517 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 518 logrus.Errorf("%s", err.Error()) 519 return dberr.RecordDeleteFailedError 520 } else { 521 logrus.Warningf("%s", err.Error()) 522 // 物理删除被软删除的数据 523 delErr := db.Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Delete(&CustomerG7{}).Error 524 if delErr != nil { 525 logrus.Errorf("%s", delErr.Error()) 526 return dberr.RecordDeleteFailedError 527 } 528 529 return nil 530 } 531 } else { 532 return nil 533 } 534 } 535 536 func (cg *CustomerG7) UpdateByCustomerIDAndG7sOrgCodeAndG7sUserIDWithMap(db *gorm.DB, updateMap map[string]interface{}) error { 537 defer duration.PrintDuration(map[string]interface{}{ 538 "request": "[DB]CustomerG7.UpdateByCustomerIDAndG7sOrgCodeAndG7sUserIDWithMap", 539 })() 540 541 if _, ok := updateMap["F_update_time"]; !ok { 542 updateMap["F_update_time"] = timelib.MySQLTimestamp(time.Now()) 543 544 } 545 dbRet := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Updates(updateMap) 546 err := dbRet.Error 547 if err != nil { 548 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 549 logrus.Errorf("%s", err.Error()) 550 return dberr.RecordUpdateFailedError 551 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 552 logrus.Errorf("%s", err.Error()) 553 return dberr.RecordUpdateFailedError 554 } else { 555 return dberr.RecordConflictError 556 } 557 } else { 558 if dbRet.RowsAffected == 0 { 559 findErr := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Find(&CustomerG7{}).Error 560 if findErr == gorm.RecordNotFound { 561 return dberr.RecordNotFoundError 562 } else if findErr != nil { 563 return dberr.RecordUpdateFailedError 564 } 565 //存在有效数据记录,返回成功 566 return nil 567 } else { 568 return nil 569 } 570 } 571 } 572 573 func (cg *CustomerG7) UpdateByCustomerIDAndG7sOrgCodeAndG7sUserIDWithStruct(db *gorm.DB) error { 574 defer duration.PrintDuration(map[string]interface{}{ 575 "request": "[DB]CustomerG7.UpdateByCustomerIDAndG7sOrgCodeAndG7sUserIDWithStruct", 576 })() 577 578 if time.Time(cg.UpdateTime).IsZero() { 579 cg.UpdateTime = timelib.MySQLTimestamp(time.Now()) 580 } 581 582 dbRet := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Updates(cg) 583 err := dbRet.Error 584 if err != nil { 585 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 586 logrus.Errorf("%s", err.Error()) 587 return dberr.RecordUpdateFailedError 588 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 589 logrus.Errorf("%s", err.Error()) 590 return dberr.RecordUpdateFailedError 591 } else { 592 return dberr.RecordConflictError 593 } 594 } else { 595 if dbRet.RowsAffected == 0 { 596 findErr := db.Table(cg.TableName()).Where("F_customer_id = ? and F_g7s_org_code = ? and F_g7s_user_id = ? and F_enabled = ?", cg.CustomerID, cg.G7sOrgCode, cg.G7sUserID, enumeration.BOOL__TRUE).Find(&CustomerG7{}).Error 597 if findErr == gorm.RecordNotFound { 598 return dberr.RecordNotFoundError 599 } else if findErr != nil { 600 return dberr.RecordUpdateFailedError 601 } 602 //存在有效数据记录,返回成功 603 return nil 604 } else { 605 return nil 606 } 607 } 608 } 609 610 func (cg *CustomerG7) UpdateByG7sUserIDAndCustomerIDWithMap(db *gorm.DB, updateMap map[string]interface{}) error { 611 defer duration.PrintDuration(map[string]interface{}{ 612 "request": "[DB]CustomerG7.UpdateByG7sUserIDAndCustomerIDWithMap", 613 })() 614 615 if _, ok := updateMap["F_update_time"]; !ok { 616 updateMap["F_update_time"] = timelib.MySQLTimestamp(time.Now()) 617 618 } 619 dbRet := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Updates(updateMap) 620 err := dbRet.Error 621 if err != nil { 622 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 623 logrus.Errorf("%s", err.Error()) 624 return dberr.RecordUpdateFailedError 625 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 626 logrus.Errorf("%s", err.Error()) 627 return dberr.RecordUpdateFailedError 628 } else { 629 return dberr.RecordConflictError 630 } 631 } else { 632 if dbRet.RowsAffected == 0 { 633 findErr := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Find(&CustomerG7{}).Error 634 if findErr == gorm.RecordNotFound { 635 return dberr.RecordNotFoundError 636 } else if findErr != nil { 637 return dberr.RecordUpdateFailedError 638 } 639 //存在有效数据记录,返回成功 640 return nil 641 } else { 642 return nil 643 } 644 } 645 } 646 647 func (cg *CustomerG7) UpdateByG7sUserIDAndCustomerIDWithStruct(db *gorm.DB) error { 648 defer duration.PrintDuration(map[string]interface{}{ 649 "request": "[DB]CustomerG7.UpdateByG7sUserIDAndCustomerIDWithStruct", 650 })() 651 652 if time.Time(cg.UpdateTime).IsZero() { 653 cg.UpdateTime = timelib.MySQLTimestamp(time.Now()) 654 } 655 656 dbRet := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Updates(cg) 657 err := dbRet.Error 658 if err != nil { 659 if mysql_err, ok := err.(*mysql.MySQLError); !ok { 660 logrus.Errorf("%s", err.Error()) 661 return dberr.RecordUpdateFailedError 662 } else if mysql_err.Number != dberr.DuplicateEntryErrNumber { 663 logrus.Errorf("%s", err.Error()) 664 return dberr.RecordUpdateFailedError 665 } else { 666 return dberr.RecordConflictError 667 } 668 } else { 669 if dbRet.RowsAffected == 0 { 670 findErr := db.Table(cg.TableName()).Where("F_g7s_user_id = ? and F_customer_id = ? and F_enabled = ?", cg.G7sUserID, cg.CustomerID, enumeration.BOOL__TRUE).Find(&CustomerG7{}).Error 671 if findErr == gorm.RecordNotFound { 672 return dberr.RecordNotFoundError 673 } else if findErr != nil { 674 return dberr.RecordUpdateFailedError 675 } 676 //存在有效数据记录,返回成功 677 return nil 678 } else { 679 return nil 680 } 681 } 682 }