diff --git a/server/backtask/app/app.go b/server/backtask/app/app.go index a4cdbb91..1d169afe 100644 --- a/server/backtask/app/app.go +++ b/server/backtask/app/app.go @@ -48,6 +48,25 @@ func (this *app) registerDataSources() { mt.Table.GameDb.GetById(0).GetPasswd(), mt.Table.GameDb.GetById(0).GetDatabase(), 30) + + f5.GetGoStyleDb().RegisterDataSource( + constant.BCNFT_DB, + mt.Table.BcNftDb.GetById(0).GetHost(), + mt.Table.BcNftDb.GetById(0).GetPort(), + mt.Table.BcNftDb.GetById(0).GetUser(), + mt.Table.BcNftDb.GetById(0).GetPasswd(), + mt.Table.BcNftDb.GetById(0).GetDatabase(), + 30) + + f5.GetGoStyleDb().RegisterDataSource( + constant.BCEVENT_DB, + mt.Table.BcEventDb.GetById(0).GetHost(), + mt.Table.BcEventDb.GetById(0).GetPort(), + mt.Table.BcEventDb.GetById(0).GetUser(), + mt.Table.BcEventDb.GetById(0).GetPasswd(), + mt.Table.BcEventDb.GetById(0).GetDatabase(), + 30) + } func (this *app) HasTask() bool { diff --git a/server/backtask/task/webhook.go b/server/backtask/task/webhook.go index 07e4af24..22f91848 100644 --- a/server/backtask/task/webhook.go +++ b/server/backtask/task/webhook.go @@ -109,112 +109,120 @@ func (this* webHook) saveLastIdx(eventName string, lastIdx int64) bool { } func (this* webHook) orderUpdatedCb(ds *f5.DataSet) bool { + f5.GetSysLog().Info("orderUpdate event_id:%s start", ds.GetByName("event_id")) nowTime := f5.GetApp().GetRealSeconds() rawData := ds.GetByName("raw_data") p := new(jccommon.OrderUpdatedEvent) err := q5.DecodeJson(rawData, &p) netId := mt.Table.Config.GetById(0).GetNetId() - if err == nil { - var itemId int32 - var heroQuality int32 - this.getItemIdHeroQuality(netId, p.Data.Sell[0].ContractAddress, p.Data.Sell[0].TokenId, - &itemId, &heroQuality) - startTime := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.StartAt)) - endTime := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.EndAt)) - createdAt := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.CreatedAt)) - updatedAt := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.UpdatedAt)) - commonFields := [][]string{ - {"order_id", p.Data.Id}, - {"chain", p.Chain}, - {"status", p.Data.Status.Name}, - {"item_id", q5.ToString(itemId)}, - {"hero_quality", q5.ToString(heroQuality)}, - {"start_time", q5.ToString(startTime)}, - {"end_time", q5.ToString(endTime)}, - {"created_at", q5.ToString(createdAt)}, - {"updated_at", q5.ToString(updatedAt)}, - {"event_id", p.EventId}, - {"event_data", rawData}, - {"modifytime", q5.ToString(nowTime)}, - } - updateFields := commonFields[0:] - insertFields := commonFields[0:] - q5.AppendSlice(&insertFields, []string{"net_id", q5.ToString(netId)}) - q5.AppendSlice(&insertFields, []string{"token_id", p.Data.Sell[0].TokenId}) - q5.AppendSlice(&insertFields, []string{"contract_address", - strings.ToLower(p.Data.Sell[0].ContractAddress)}) - q5.AppendSlice(&insertFields, []string{"createtime", q5.ToString(nowTime)}) - f5.GetGoStyleDb().UpsertEx( - constant.BCNFT_DB, - "t_order", - [][]string{ - {"net_id", q5.ToString(netId)}, - {"contract_address", strings.ToLower(p.Data.Sell[0].ContractAddress)}, - {"token_id", p.Data.Sell[0].TokenId}, - }, - updateFields, - insertFields, - func (err error, lastInsertId int64, rowsAffected int64) { - if err != nil { - return - } - }, - func (ds *f5.DataSet) bool { - return p.EventId > ds.GetByName("event_id") - }) + if err != nil { + f5.GetSysLog().Warning("orderUpdate event_id:%s event_data parse error :%s", + ds.GetByName("event_id"), err) + return false } + var itemId int32 + var heroQuality int32 + this.getItemIdHeroQuality(netId, p.Data.Sell[0].ContractAddress, p.Data.Sell[0].TokenId, + &itemId, &heroQuality) + startTime := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.StartAt)) + endTime := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.EndAt)) + createdAt := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.CreatedAt)) + updatedAt := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.UpdatedAt)) + commonFields := [][]string{ + {"order_id", p.Data.Id}, + {"chain", p.Chain}, + {"status", p.Data.Status.Name}, + {"item_id", q5.ToString(itemId)}, + {"hero_quality", q5.ToString(heroQuality)}, + {"start_time", q5.ToString(startTime)}, + {"end_time", q5.ToString(endTime)}, + {"created_at", q5.ToString(createdAt)}, + {"updated_at", q5.ToString(updatedAt)}, + {"event_id", p.EventId}, + {"event_data", rawData}, + {"modifytime", q5.ToString(nowTime)}, + } + updateFields := commonFields[0:] + insertFields := commonFields[0:] + q5.AppendSlice(&insertFields, []string{"net_id", q5.ToString(netId)}) + q5.AppendSlice(&insertFields, []string{"token_id", p.Data.Sell[0].TokenId}) + q5.AppendSlice(&insertFields, []string{"contract_address", + strings.ToLower(p.Data.Sell[0].ContractAddress)}) + q5.AppendSlice(&insertFields, []string{"createtime", q5.ToString(nowTime)}) + f5.GetGoStyleDb().UpsertEx( + constant.BCNFT_DB, + "t_order", + [][]string{ + {"net_id", q5.ToString(netId)}, + {"contract_address", strings.ToLower(p.Data.Sell[0].ContractAddress)}, + {"token_id", p.Data.Sell[0].TokenId}, + }, + updateFields, + insertFields, + func (err error, lastInsertId int64, rowsAffected int64) { + if err != nil { + return + } + }, + func (ds *f5.DataSet) bool { + return p.EventId > ds.GetByName("event_id") + }) return true } func (this* webHook) activitySaleCb(ds *f5.DataSet) bool { + f5.GetSysLog().Info("activitySale event_id:%s start", ds.GetByName("event_id")) nowTime := f5.GetApp().GetRealSeconds() rawData := ds.GetByName("raw_data") p := new(jccommon.ActivitySaleEvent) err := q5.DecodeJson(rawData, &p) netId := mt.Table.Config.GetById(0).GetNetId() - if err == nil { - var itemId int32 - var heroQuality int32 - this.getItemIdHeroQuality(netId, - p.Data.Details.Asset[0].ContractAddress, - p.Data.Details.Asset[0].TokenId, - &itemId, &heroQuality) - indexedAt := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.IndexedAt)) - updateFields := [][]string{ - } - insertFields := [][]string{ - {"order_id", p.Data.Details.OrderId}, - {"chain", p.Chain}, - {"net_id", q5.ToString(netId)}, - {"token_id", p.Data.Details.Asset[0].TokenId}, - {"contract_address", strings.ToLower(p.Data.Details.Asset[0].ContractAddress)}, - {"item_id", q5.ToString(itemId)}, - {"hero_quality", q5.ToString(heroQuality)}, - {"buyer", p.Data.Details.From}, - {"seller", p.Data.Details.To}, - {"indexed_at", q5.ToString(indexedAt)}, - {"event_id", p.EventId}, - {"event_data", rawData}, - {"createtime", q5.ToString(nowTime)}, - {"modifytime", q5.ToString(nowTime)}, - } - f5.GetGoStyleDb().UpsertEx( - constant.BCNFT_DB, - "t_sale", - [][]string{ - {"order_id", p.Data.Details.OrderId}, - }, - updateFields, - insertFields, - func (err error, lastInsertId int64, rowsAffected int64) { - if err != nil { - return - } - }, - func (ds *f5.DataSet) bool { - return p.EventId > ds.GetByName("event_id") - }) + if err != nil { + f5.GetSysLog().Warning("activitySale event_id:%s event_data parse error :%s", + ds.GetByName("event_id"), err) + return false } + var itemId int32 + var heroQuality int32 + this.getItemIdHeroQuality(netId, + p.Data.Details.Asset[0].ContractAddress, + p.Data.Details.Asset[0].TokenId, + &itemId, &heroQuality) + indexedAt := q5.SmartParseTimeToMills(q5.SafeToString(p.Data.IndexedAt)) + updateFields := [][]string{ + } + insertFields := [][]string{ + {"order_id", p.Data.Details.OrderId}, + {"chain", p.Chain}, + {"net_id", q5.ToString(netId)}, + {"token_id", p.Data.Details.Asset[0].TokenId}, + {"contract_address", strings.ToLower(p.Data.Details.Asset[0].ContractAddress)}, + {"item_id", q5.ToString(itemId)}, + {"hero_quality", q5.ToString(heroQuality)}, + {"buyer", p.Data.Details.From}, + {"seller", p.Data.Details.To}, + {"indexed_at", q5.ToString(indexedAt)}, + {"event_id", p.EventId}, + {"event_data", rawData}, + {"createtime", q5.ToString(nowTime)}, + {"modifytime", q5.ToString(nowTime)}, + } + f5.GetGoStyleDb().UpsertEx( + constant.BCNFT_DB, + "t_sale", + [][]string{ + {"order_id", p.Data.Details.OrderId}, + }, + updateFields, + insertFields, + func (err error, lastInsertId int64, rowsAffected int64) { + if err != nil { + return + } + }, + func (ds *f5.DataSet) bool { + return p.EventId > ds.GetByName("event_id") + }) return true }