1
This commit is contained in:
parent
a2fb17a9fa
commit
66e5392b13
@ -45,6 +45,45 @@ func GetItemIdHeroQuality(netId int32, contractAddress string, tokenId string,
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetNftItemIdQuality(netId int32, contractAddress string, tokenId string,
|
||||||
|
itemId *int32, quality *int32) {
|
||||||
|
f5.GetGoStyleDb().OrmSelectOne(
|
||||||
|
constant.BCNFT_DB,
|
||||||
|
"t_nft",
|
||||||
|
[][]string {
|
||||||
|
{"net_id", q5.ToString(netId)},
|
||||||
|
{"contract_address", contractAddress},
|
||||||
|
{"token_id", tokenId},
|
||||||
|
},
|
||||||
|
func (err error, ds *f5.DataSet) {
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if ds.Next() {
|
||||||
|
*itemId = q5.ToInt32(ds.GetByName("item_id"))
|
||||||
|
*quality = q5.ToInt32(ds.GetByName("quality"))
|
||||||
|
tokenType := q5.ToInt32(ds.GetByName("token_type"))
|
||||||
|
if tokenType == jccommon.NFT_TYPE_CFHERO ||
|
||||||
|
tokenType == jccommon.NFT_TYPE_CFHERO_NORMAL {
|
||||||
|
f5.GetGoStyleDb().OrmSelectOne(
|
||||||
|
constant.GAME_DB,
|
||||||
|
"t_hero",
|
||||||
|
[][]string {
|
||||||
|
{"token_id", tokenId},
|
||||||
|
},
|
||||||
|
func (err error, ds *f5.DataSet) {
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if ds.Next() {
|
||||||
|
*quality = q5.ToInt32(ds.GetByName("quality"))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func GetHeroByTokenId(tokenId string, itemId *int32, heroQuality *int32) bool {
|
func GetHeroByTokenId(tokenId string, itemId *int32, heroQuality *int32) bool {
|
||||||
result := false
|
result := false
|
||||||
f5.GetGoStyleDb().OrmSelectOne(
|
f5.GetGoStyleDb().OrmSelectOne(
|
||||||
|
@ -98,10 +98,10 @@ func (this* chainActivity) saveToDb(ds *f5.DataSet) bool {
|
|||||||
{"token_id", tokenId},
|
{"token_id", tokenId},
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
genInsertKv := func (nftAddress ,tokenId ,sender, to string, isMint int32) [][]string {
|
genInsertKv := func (nftAddress, tokenId, sender, to string, isMint int32) [][]string {
|
||||||
var itemId int32
|
var itemId int32
|
||||||
var quality int32
|
var quality int32
|
||||||
service.GetItemIdHeroQuality(q5.ToInt32(netId), contractAddress, tokenId, &itemId, &quality)
|
service.GetNftItemIdQuality(q5.ToInt32(netId), contractAddress, tokenId, &itemId, &quality)
|
||||||
return [][]string{
|
return [][]string{
|
||||||
{"txhash", txhash},
|
{"txhash", txhash},
|
||||||
{"log_index", logIndex},
|
{"log_index", logIndex},
|
||||||
|
@ -18,6 +18,7 @@ func (this* repairNft) init() {
|
|||||||
go this.processNft()
|
go this.processNft()
|
||||||
go this.processOrder()
|
go this.processOrder()
|
||||||
go this.processSale()
|
go this.processSale()
|
||||||
|
go this.processChainActivity()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this* repairNft) unInit() {
|
func (this* repairNft) unInit() {
|
||||||
@ -102,6 +103,32 @@ SELECT * FROM t_sale WHERE idx > %d AND item_id = 0 LIMIT 1000`,
|
|||||||
this.repairSale)
|
this.repairSale)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this* repairNft) processChainActivity() {
|
||||||
|
f5.GetGoStyleDb().LoopLoad(
|
||||||
|
constant.BCEVENT_DB,
|
||||||
|
"repairNft.chainActivity",
|
||||||
|
"t_chain_activity",
|
||||||
|
func () int64 {
|
||||||
|
return 60 + q5.ToInt64(rand.Intn(2))
|
||||||
|
},
|
||||||
|
func (lastIdx int64) string {
|
||||||
|
sql := fmt.Sprintf(`
|
||||||
|
SELECT * FROM t_chain_activity WHERE idx > %d AND item_id = 0 AND quality = 0 LIMIT 100`,
|
||||||
|
lastIdx,
|
||||||
|
)
|
||||||
|
return sql
|
||||||
|
},
|
||||||
|
[]string{
|
||||||
|
},
|
||||||
|
func () int64 {
|
||||||
|
return 10
|
||||||
|
},
|
||||||
|
func () int64 {
|
||||||
|
return 60 * 5
|
||||||
|
},
|
||||||
|
this.repairChainActivity)
|
||||||
|
}
|
||||||
|
|
||||||
func (this* repairNft) repairNft(ds *f5.DataSet) bool {
|
func (this* repairNft) repairNft(ds *f5.DataSet) bool {
|
||||||
netId := q5.ToInt32(ds.GetByName("net_id"))
|
netId := q5.ToInt32(ds.GetByName("net_id"))
|
||||||
contractAddress := ds.GetByName("contract_address")
|
contractAddress := ds.GetByName("contract_address")
|
||||||
@ -233,3 +260,28 @@ func (this* repairNft) updateSale(netId int32, contractAddress string, tokenId s
|
|||||||
func (err error, lastInsertId int64, rowsAffected int64) {
|
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this* repairNft) repairChainActivity(ds *f5.DataSet) bool {
|
||||||
|
netId := q5.ToInt32(ds.GetByName("net_id"))
|
||||||
|
contractAddress := ds.GetByName("contract_address")
|
||||||
|
tokenId := ds.GetByName("token_id")
|
||||||
|
switch q5.ToInt32(ds.GetByName("token_type")) {
|
||||||
|
case jccommon.NFT_TYPE_CFHERO:
|
||||||
|
case jccommon.NFT_TYPE_CFHERO_NORMAL:
|
||||||
|
{
|
||||||
|
var itemId int32
|
||||||
|
var quality int32
|
||||||
|
if service.GetHeroByTokenId(tokenId, &itemId, &quality) {
|
||||||
|
this.updateSale(netId, contractAddress, tokenId, itemId, quality)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case jccommon.NFT_TYPE_GOLD_BULLION:
|
||||||
|
{
|
||||||
|
var itemId int32
|
||||||
|
if service.GetGoldBullionByNetIdTokenId(netId, tokenId, &itemId) {
|
||||||
|
this.updateSale(netId, contractAddress, tokenId, itemId, 0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user