aozhiwei f26b67b106 1
2024-07-11 16:01:27 +08:00

180 lines
3.8 KiB
Go

package service
import (
"q5"
"f5"
"jccommon"
"main/constant"
)
func GetItemIdHeroQuality(netId int32, contractAddress string, tokenId string,
itemId *int32, heroQuality *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"))
tokenType := q5.ToInt32(ds.GetByName("token_type"))
if tokenType == jccommon.NFT_TYPE_CFHERO {
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() {
*heroQuality = q5.ToInt32(ds.GetByName("quality"))
}
})
}
}
})
}
func GetHeroByTokenId(tokenId string, itemId *int32, heroQuality *int32) bool {
result := false
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() {
*itemId = q5.ToInt32(ds.GetByName("hero_id"))
*heroQuality = q5.ToInt32(ds.GetByName("quality"))
result = true
}
})
return result
}
func GetGoldBullionByNetIdTokenId(netId int32, tokenId string, itemId *int32) bool {
result := false
f5.GetGoStyleDb().OrmSelectOne(
constant.GAME_DB,
"t_gold_bullion",
[][]string {
{"net_id", q5.ToString(netId)},
{"token_id", tokenId},
},
func (err error, ds *f5.DataSet) {
if err != nil {
return
}
if ds.Next() {
*itemId = q5.ToInt32(ds.GetByName("item_id"))
result = true
}
})
return result
}
func GetGoldBullionItemIdByTokenId(tokenId string, itemId *int32) bool {
result := false
f5.GetGoStyleDb().OrmSelectOne(
constant.GAME_DB,
"t_gold_bullion",
[][]string {
{"token_id", tokenId},
},
func (err error, ds *f5.DataSet) {
if err != nil {
return
}
if ds.Next() {
*itemId = q5.ToInt32(ds.GetByName("item_id"))
result = true
}
})
return result
}
func GetNoOpenGoldBullionItemIdByTokenId(tokenId string, itemId *int32) bool {
result := false
f5.GetGoStyleDb().OrmSelectOne(
constant.GAME_DB,
"t_gold_bullion",
[][]string {
{"token_id", tokenId},
{"status", q5.ToString(jccommon.GOLD_BULLION_NO_OPEN)},
},
func (err error, ds *f5.DataSet) {
if err != nil {
return
}
if ds.Next() {
*itemId = q5.ToInt32(ds.GetByName("item_id"))
result = true
}
})
return result
}
func NftExists(netId int32, contractAddress string, tokenId string) bool {
result := false
f5.GetGoStyleDb().OrmSelectOne(
constant.BCNFT_DB,
"t_nft",
[][]string {
{"net_id", q5.ToString(netId)},
{"token_id", tokenId},
{"contract_address", contractAddress},
},
func (err error, ds *f5.DataSet) {
if err != nil {
return
}
if ds.Next() {
result = true
}
})
return result
}
func NftUpdateLock(netId int32, contractAddress string, tokenId string,
lockIdx int64, lockAddress string) bool {
nowTime := f5.GetApp().GetRealSeconds()
result := false
f5.GetGoStyleDb().UpsertEx(
constant.BCNFT_DB,
"t_nft",
[][]string {
{"net_id", q5.ToString(netId)},
{"token_id", tokenId},
{"contract_address", contractAddress},
},
[][]string {
{"last_lock_idx", q5.ToString(lockIdx)},
{"last_lock_address", lockAddress},
{"last_lock_time", q5.ToString(nowTime)},
},
[][]string {},
func (err error, lastInsertId int64, rowsAffected int64) {
if err != nil {
return
}
result = true
},
func (ds *f5.DataSet) bool {
return lockIdx > q5.ToInt64(ds.GetByName("last_lock_idx"))
})
return result
}