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  }