diff --git a/server/marketserver/common/types.go b/server/marketserver/common/types.go index 06d469e9..6020261b 100644 --- a/server/marketserver/common/types.go +++ b/server/marketserver/common/types.go @@ -11,6 +11,27 @@ type NftHomeMeta struct { ExternalLink string `json:"external_link"` } +type OrderUpdatedEvent struct { + EventName string `json:"event_name"` + EventId string `json:"event_id"` + Chain string `json:"chain"` + Data struct { + Id string `json:"id"` + } `json:"data"` + Sell [] struct { + TokenId string `json:"token_id"` + ItemType string `json:"item_type"` + EndAmount string `json:"end_amount"` + StartAmount string `json:"start_amount"` + ContractAddress string `json:"contract_address"` + } `json:"sell"` + Status string `json:"status"` + StartTime int32 `json:"start_time"` + EndTime int32 `json:"end_time"` + CreatedAt int32 `json:"created_at"` + UpdatedAt int32 `json:"updated_at"` +} + type App interface { Run(func(), func()) } diff --git a/server/marketserver/initialize/enter.go b/server/marketserver/initialize/enter.go index 4fd12d19..276931c8 100644 --- a/server/marketserver/initialize/enter.go +++ b/server/marketserver/initialize/enter.go @@ -4,6 +4,7 @@ import ( _ "main/app" . "main/global" _ "main/router" + _ "main/task" ) func Init() { diff --git a/server/marketserver/task/taskmgr.go b/server/marketserver/task/taskmgr.go index e7cbc4f2..58159b4f 100644 --- a/server/marketserver/task/taskmgr.go +++ b/server/marketserver/task/taskmgr.go @@ -4,6 +4,7 @@ import ( "q5" "f5" "main/constant" + "main/common" "time" ) @@ -104,5 +105,55 @@ func (this* taskMgr) saveLastIdx(eventName string, lastIdx int64) bool { } func (this* taskMgr) orderUpdatedCb(ds *f5.DataSet) bool { + nowTime := f5.GetApp().GetRealSeconds() + //eventId := ds.GetByName("event_id") + rawData := ds.GetByName("raw_data") + p := new(common.OrderUpdatedEvent) + err := q5.DecodeJson(rawData, &p) + if err == nil { + updateFields := [][]string{ + {"order_id", p.Data.Id}, + {"chain", p.Chain}, + {"status", p.Status}, + {"start_time", q5.ToString(p.StartTime)}, + {"end_time", q5.ToString(p.EndTime)}, + {"created_at", q5.ToString(p.CreatedAt)}, + {"updated_at", q5.ToString(p.UpdatedAt)}, + {"event_id", p.EventId}, + {"event_data", rawData}, + {"modifytime", q5.ToString(nowTime)}, + } + insertFields := [][]string{ + {"order_id", p.Data.Id}, + {"chain", p.Chain}, + {"status", p.Status}, + {"net_id", "100"}, + {"token_id", p.Sell[0].TokenId}, + {"contract_address", p.Sell[0].ContractAddress}, + {"start_time", q5.ToString(p.StartTime)}, + {"end_time", q5.ToString(p.EndTime)}, + {"created_at", q5.ToString(p.CreatedAt)}, + {"updated_at", q5.ToString(p.UpdatedAt)}, + {"event_id", p.EventId}, + {"event_data", rawData}, + {"createtime", q5.ToString(nowTime)}, + {"modifytime", q5.ToString(nowTime)}, + } + f5.GetGoStyleDb().Upsert( + constant.BCNFT_DB, + "t_order", + [][]string{ + {"net_id", "100"}, + {"contract_address", p.Sell[0].ContractAddress}, + {"token_id", p.Sell[0].TokenId}, + }, + updateFields, + insertFields, + func (err error, lastInsertId int64, rowsAffected int64) { + if err != nil { + return + } + }) + } return true }