package dapi import ( "epur-pay/cache" "epur-pay/model" "epur-pay/pkg/async" "epur-pay/pkg/logger" "epur-pay/pkg/rds" "epur-pay/pkg/utils" "gorm.io/gorm" ) func (a *ApiBase) apiAfter() error { if a.AfterCallback != nil { async.Asyncs.AfterCallback.Add(async.NewAsyncRequestFunc(a.AfterCallback, a.AfterCallbackDelay)) } if Cf.ApiAfter != nil { if err := Cf.ApiAfter(a); err != nil { return err } } return nil } func (a *ApiBase) apiBefore() error { if err := a.limitRouterRuleHandler(); err != nil { return err } if err := a.headerHandler(); err != nil { return err } if Cf.ApiBefore != nil { if err := Cf.ApiBefore(a); err != nil { return err } } if !cache.Global.ProjectInitStatus { return a.ReturnPublicErrorResponse(a.Translate("during_upgrade")) } return nil } func (a *ApiBase) apiRunEx() error { if err := a.authHandler(); err != nil { return err } if err := a.lockTrade(); err != nil { return err } a.saveLogBefore() if err := a.apiHandler(); err != nil { return err } return nil } func (a *ApiBase) saveLogBefore() { //记录日志 if a.InParams.IsSaveLog || a.InParams.IsSkipErrorSaveLog { a.Log = new(model.Log) a.Log.Event = a.InParams.SaveEvent if a.User != nil { a.Log.Uid = a.User.Uid a.Log.Name = a.User.Account } a.Log.Ip = a.ClientIp() a.Log.CreateTime = utils.Time2StampSecond() if a.Site == "h5App" { a.Log.UserType = "0" } else if a.Site == "h5Admin" { a.Log.UserType = "1" } a.Log.IsSuper = "0" } } func (a *ApiBase) apiRun() error { if a.InParams.IsTransaction { if err := rds.DB.Transaction(func(ts *gorm.DB) error { a.Ts = ts if err := a.apiRunEx(); err != nil && a.Error == nil { a.Error = err } if a.Error != nil { return a.Error } else { return nil } }); err != nil { logger.AccessLogger.Errorln(err.Error()) } } else { a.Ts = rds.DB if err := a.apiRunEx(); err != nil && a.Error == nil { a.Error = err } } return a.Error } func (a *ApiBase) apiMain() error { if err := a.apiBefore(); err != nil { return err } if err := a.apiRun(); err != nil { return err } a.freeTrade() if err := a.apiAfter(); err != nil { return err } return nil } func (a *ApiBase) TMapGet(data model.JSON) string { if row, ok := data[a.Lang]; ok { return row.(string) } else { if row1, ok1 := data[cache.Global.Caches.Language.DefaultLanguage]; ok1 { return row1.(string) } else { return "" } } }