This commit is contained in:
aozhiwei 2024-07-24 10:47:47 +08:00
parent 68e9fed5cb
commit e023dff83d

View File

@ -89,89 +89,24 @@ func (this* chainActivity) saveToDb(ds *f5.DataSet) bool {
itemId := 0 itemId := 0
quality := 0 quality := 0
if eventName == "Lock" { genWhereKv := func (tokenId string) [][]string {
p := new(lockReturnValues) return [][]string{
if q5.DecodeJson(returnValues, p) == nil {
for _, tokenId := range p.TokenIds {
var dbErr error
f5.GetGoStyleDb().Upsert(
constant.BCEVENT_DB,
"t_chain_activity",
[][]string{
{"txhash", txhash}, {"txhash", txhash},
{"log_index", logIndex}, {"log_index", logIndex},
{"net_id", netId}, {"net_id", netId},
{"event_name", eventName}, {"event_name", eventName},
{"contract_address", contractAddress}, {"contract_address", contractAddress},
{"token_id", tokenId}, {"token_id", tokenId},
}, }
[][]string{ }
}, genInsertKv := func (nftAddress, tokenId string, sender string, to string, isMint int32) [][]string {
[][]string{ return [][]string{
{"txhash", txhash}, {"txhash", txhash},
{"log_index", logIndex}, {"log_index", logIndex},
{"net_id", netId}, {"net_id", netId},
{"event_name", eventName}, {"event_name", eventName},
{"contract_address", contractAddress}, {"contract_address", strings.ToLower(contractAddress)},
{"nft_contract_address", strings.ToLower(p.Nft)}, {"nft_contract_address", strings.ToLower(nftAddress)},
{"token_id", tokenId},
{"src_idx", idx},
{"sender_address", strings.ToLower(p.Sender)},
{"to_address", strings.ToLower(p.To)},
{"item_id", q5.ToString(itemId)},
{"quality", q5.ToString(quality)},
{"createtime", createTime},
{"modifytime", modifyTime},
},
func (err error, lastInsertId int64, rowsAffected int64) {
dbErr = err
})
if dbErr != nil {
return false
}
}
} else {
jccommon.AddDbLog(constant.BCEVENT_DB, "chainActivity", "returnValuesDecodeError",
map[string]string{
"param1": txhash,
"param2": netId,
"param3": eventName,
"param4": idx,
"param5": contractAddress,
})
}
} else if eventName == "UnLock" {
p := new(unLockReturnValues)
sender := q5.SafeToString(p.User)
if q5.DecodeJson(returnValues, p) == nil {
for _, nft := range p.NftList {
tokenId := q5.SafeToString(nft[0])
to := q5.SafeToString(nft[1])
isMint := 0
if nft[2].(bool) {
isMint = 1
}
var dbErr error
f5.GetGoStyleDb().Upsert(
constant.BCEVENT_DB,
"t_chain_activity",
[][]string{
{"txhash", txhash},
{"log_index", logIndex},
{"net_id", netId},
{"event_name", eventName},
{"contract_address", contractAddress},
{"token_id", tokenId},
},
[][]string{
},
[][]string{
{"txhash", txhash},
{"log_index", logIndex},
{"net_id", netId},
{"event_name", eventName},
{"contract_address", contractAddress},
{"nft_contract_address", strings.ToLower(p.Nft)},
{"token_id", tokenId}, {"token_id", tokenId},
{"src_idx", idx}, {"src_idx", idx},
{"sender_address", strings.ToLower(sender)}, {"sender_address", strings.ToLower(sender)},
@ -181,7 +116,21 @@ func (this* chainActivity) saveToDb(ds *f5.DataSet) bool {
{"is_mint", q5.ToString(isMint)}, {"is_mint", q5.ToString(isMint)},
{"createtime", createTime}, {"createtime", createTime},
{"modifytime", modifyTime}, {"modifytime", modifyTime},
}, }
}
decodeJsonOk := false
if eventName == "Lock" {
p := new(lockReturnValues)
if q5.DecodeJson(returnValues, p) == nil {
decodeJsonOk = true
for _, tokenId := range p.TokenIds {
var dbErr error
f5.GetGoStyleDb().Upsert(
constant.BCEVENT_DB,
"t_chain_activity",
genWhereKv(tokenId),
[][]string{},
genInsertKv(p.Nft, tokenId, p.Sender, p.To, 0),
func (err error, lastInsertId int64, rowsAffected int64) { func (err error, lastInsertId int64, rowsAffected int64) {
dbErr = err dbErr = err
}) })
@ -189,8 +138,43 @@ func (this* chainActivity) saveToDb(ds *f5.DataSet) bool {
return false return false
} }
} }
}
} else if eventName == "UnLock" {
p := new(unLockReturnValues)
sender := q5.SafeToString(p.User)
if q5.DecodeJson(returnValues, p) == nil {
decodeJsonOk = true
for _, nft := range p.NftList {
if len(nft) != 3 {
decodeJsonOk = false
break
}
tokenId := q5.SafeToString(nft[0])
to := q5.SafeToString(nft[1])
var isMint int32
if nft[2].(bool) {
isMint = 1
}
var dbErr error
f5.GetGoStyleDb().Upsert(
constant.BCEVENT_DB,
"t_chain_activity",
genWhereKv(tokenId),
[][]string{},
genInsertKv(p.Nft, tokenId, sender, to, isMint),
func (err error, lastInsertId int64, rowsAffected int64) {
dbErr = err
})
if dbErr != nil {
return false
}
}
}
} else { } else {
jccommon.AddDbLog(constant.BCEVENT_DB, "chainActivity", "returnValuesDecodeError", panic(fmt.Sprintf("chainActivity unknow event_name %s", eventName))
}
if !decodeJsonOk {
jccommon.AddDbLog(constant.BCEVENT_DB, "chainActivity", "decodeJsonError",
map[string]string{ map[string]string{
"param1": txhash, "param1": txhash,
"param2": netId, "param2": netId,
@ -199,8 +183,5 @@ func (this* chainActivity) saveToDb(ds *f5.DataSet) bool {
"param5": contractAddress, "param5": contractAddress,
}) })
} }
} else {
panic(fmt.Sprintf("chainActivity unknow event_name %s", eventName))
}
return true return true
} }