This commit is contained in:
aozhiwei 2024-06-22 09:22:20 +08:00
parent bd48b17d92
commit 69540b7f21
2 changed files with 117 additions and 90 deletions

View File

@ -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 {

View File

@ -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
}