1
This commit is contained in:
parent
ad988d90b6
commit
559e2f2ee2
@ -1,4 +1,6 @@
|
|||||||
{
|
{
|
||||||
"gameapi_url": "https://game2006api-test.kingsome.cn",
|
"gameapi_url": "https://game2006api-test.kingsome.cn",
|
||||||
"net_id": 13473
|
"net_id": 13473,
|
||||||
|
"immutable_base_url": "https://api.sandbox.immutable.com",
|
||||||
|
"chain_name": "imtbl-zkevm-testnet"
|
||||||
}
|
}
|
||||||
|
@ -49,6 +49,8 @@ type BcEventDb struct {
|
|||||||
type Config struct {
|
type Config struct {
|
||||||
gameapi_url string
|
gameapi_url string
|
||||||
net_id int32
|
net_id int32
|
||||||
|
immutable_base_url string
|
||||||
|
chain_name string
|
||||||
|
|
||||||
_flags1_ uint64
|
_flags1_ uint64
|
||||||
_flags2_ uint64
|
_flags2_ uint64
|
||||||
@ -72,15 +74,6 @@ type Language struct {
|
|||||||
_flags2_ uint64
|
_flags2_ uint64
|
||||||
}
|
}
|
||||||
|
|
||||||
type Mail struct {
|
|
||||||
name string
|
|
||||||
subject string
|
|
||||||
content string
|
|
||||||
|
|
||||||
_flags1_ uint64
|
|
||||||
_flags2_ uint64
|
|
||||||
}
|
|
||||||
|
|
||||||
type RankSeason struct {
|
type RankSeason struct {
|
||||||
id int32
|
id int32
|
||||||
name string
|
name string
|
||||||
@ -261,6 +254,22 @@ func (this *Config) HasNetId() bool {
|
|||||||
return (this._flags1_ & (uint64(1) << 2)) > 0
|
return (this._flags1_ & (uint64(1) << 2)) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (this *Config) GetImmutableBaseUrl() string {
|
||||||
|
return this.immutable_base_url
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Config) HasImmutableBaseUrl() bool {
|
||||||
|
return (this._flags1_ & (uint64(1) << 3)) > 0
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Config) GetChainName() string {
|
||||||
|
return this.chain_name
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *Config) HasChainName() bool {
|
||||||
|
return (this._flags1_ & (uint64(1) << 4)) > 0
|
||||||
|
}
|
||||||
|
|
||||||
func (this *Item) GetName() string {
|
func (this *Item) GetName() string {
|
||||||
return this.name
|
return this.name
|
||||||
}
|
}
|
||||||
@ -309,30 +318,6 @@ func (this *Language) HasEn() bool {
|
|||||||
return (this._flags1_ & (uint64(1) << 2)) > 0
|
return (this._flags1_ & (uint64(1) << 2)) > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Mail) GetName() string {
|
|
||||||
return this.name
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Mail) HasName() bool {
|
|
||||||
return (this._flags1_ & (uint64(1) << 1)) > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Mail) GetSubject() string {
|
|
||||||
return this.subject
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Mail) HasSubject() bool {
|
|
||||||
return (this._flags1_ & (uint64(1) << 2)) > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Mail) GetContent() string {
|
|
||||||
return this.content
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *Mail) HasContent() bool {
|
|
||||||
return (this._flags1_ & (uint64(1) << 3)) > 0
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *RankSeason) GetId() int32 {
|
func (this *RankSeason) GetId() int32 {
|
||||||
return this.id
|
return this.id
|
||||||
}
|
}
|
||||||
@ -431,6 +416,8 @@ func (this *BcEventDb) LoadFromKv(kv map[string]interface{}) {
|
|||||||
func (this *Config) LoadFromKv(kv map[string]interface{}) {
|
func (this *Config) LoadFromKv(kv map[string]interface{}) {
|
||||||
f5.ReadMetaTableField(&this.gameapi_url, "gameapi_url", &this._flags1_, 1, kv)
|
f5.ReadMetaTableField(&this.gameapi_url, "gameapi_url", &this._flags1_, 1, kv)
|
||||||
f5.ReadMetaTableField(&this.net_id, "net_id", &this._flags1_, 2, kv)
|
f5.ReadMetaTableField(&this.net_id, "net_id", &this._flags1_, 2, kv)
|
||||||
|
f5.ReadMetaTableField(&this.immutable_base_url, "immutable_base_url", &this._flags1_, 3, kv)
|
||||||
|
f5.ReadMetaTableField(&this.chain_name, "chain_name", &this._flags1_, 4, kv)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Item) LoadFromKv(kv map[string]interface{}) {
|
func (this *Item) LoadFromKv(kv map[string]interface{}) {
|
||||||
@ -445,12 +432,6 @@ func (this *Language) LoadFromKv(kv map[string]interface{}) {
|
|||||||
f5.ReadMetaTableField(&this.en, "en", &this._flags1_, 2, kv)
|
f5.ReadMetaTableField(&this.en, "en", &this._flags1_, 2, kv)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *Mail) LoadFromKv(kv map[string]interface{}) {
|
|
||||||
f5.ReadMetaTableField(&this.name, "name", &this._flags1_, 1, kv)
|
|
||||||
f5.ReadMetaTableField(&this.subject, "subject", &this._flags1_, 2, kv)
|
|
||||||
f5.ReadMetaTableField(&this.content, "content", &this._flags1_, 3, kv)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (this *RankSeason) LoadFromKv(kv map[string]interface{}) {
|
func (this *RankSeason) LoadFromKv(kv map[string]interface{}) {
|
||||||
f5.ReadMetaTableField(&this.id, "id", &this._flags1_, 1, kv)
|
f5.ReadMetaTableField(&this.id, "id", &this._flags1_, 1, kv)
|
||||||
f5.ReadMetaTableField(&this.name, "name", &this._flags1_, 2, kv)
|
f5.ReadMetaTableField(&this.name, "name", &this._flags1_, 2, kv)
|
||||||
|
@ -40,6 +40,8 @@ message Config
|
|||||||
{
|
{
|
||||||
optional string gameapi_url = 1;
|
optional string gameapi_url = 1;
|
||||||
optional int32 net_id = 2;
|
optional int32 net_id = 2;
|
||||||
|
optional string immutable_base_url = 3;
|
||||||
|
optional string chain_name = 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
message Item
|
message Item
|
||||||
|
@ -80,3 +80,70 @@ func OpenGoldBullion(accountId string, accountAddress string, netId int32, token
|
|||||||
result := false
|
result := false
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func ReturnGoldBullion(accountId string, accountAddress string, netId int32, tokenId string) bool {
|
||||||
|
GetTaskMgr().LockOpenGodBullion()
|
||||||
|
defer GetTaskMgr().UnLockOpenGodBullion()
|
||||||
|
|
||||||
|
if !AccountIdExistsAndIgnoreError(accountId) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
var itemId int32
|
||||||
|
if !GetNoOpenGoldBullionItemIdByTokenId(tokenId, &itemId) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
goldNum := jccommon.GetGoldBullionGoldNum(itemId)
|
||||||
|
if goldNum <= 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
var dbErr error
|
||||||
|
nowTime := f5.GetApp().GetRealSeconds()
|
||||||
|
f5.GetGoStyleDb().Update(
|
||||||
|
constant.GAME_DB,
|
||||||
|
"t_gold_bullion",
|
||||||
|
[][]string {
|
||||||
|
{"token_id", tokenId},
|
||||||
|
},
|
||||||
|
[][]string {
|
||||||
|
{"return_status", q5.ToString(1)},
|
||||||
|
{"returned", q5.ToString(1)},
|
||||||
|
{"return_time", q5.ToString(nowTime)},
|
||||||
|
},
|
||||||
|
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||||
|
dbErr = err
|
||||||
|
})
|
||||||
|
if dbErr != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
if !UserAddGold(accountId, goldNum) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
var dbErr error
|
||||||
|
f5.GetGoStyleDb().Update(
|
||||||
|
constant.GAME_DB,
|
||||||
|
"t_gold_bullion",
|
||||||
|
[][]string {
|
||||||
|
{"token_id", tokenId},
|
||||||
|
},
|
||||||
|
[][]string {
|
||||||
|
{"return_status", q5.ToString(2)},
|
||||||
|
},
|
||||||
|
func (err error, lastInsertId int64, rowsAffected int64) {
|
||||||
|
dbErr = err
|
||||||
|
})
|
||||||
|
if dbErr != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
package task
|
package task
|
||||||
|
|
||||||
import (
|
import (
|
||||||
//"q5"
|
"q5"
|
||||||
"f5"
|
"f5"
|
||||||
"time"
|
"time"
|
||||||
|
"mt"
|
||||||
"fmt"
|
"fmt"
|
||||||
"main/constant"
|
"main/constant"
|
||||||
)
|
)
|
||||||
@ -21,12 +22,12 @@ func (this* goldBullionReturn) unInit() {
|
|||||||
|
|
||||||
func (this* goldBullionReturn) loadExpiredGoldBullion() {
|
func (this* goldBullionReturn) loadExpiredGoldBullion() {
|
||||||
f5.GetGoStyleDb().LoopLoad(
|
f5.GetGoStyleDb().LoopLoad(
|
||||||
constant.BCNFT_DB,
|
constant.GAME_DB,
|
||||||
func (lastIdx int64) string {
|
func (lastIdx int64) string {
|
||||||
nowTime := f5.GetApp().GetRealSeconds()
|
nowTime := f5.GetApp().GetRealSeconds()
|
||||||
expiredTime := nowTime - 3600 * 24 - 60 * 5
|
expiredTime := nowTime - 3600 * 24 - 60 * 5
|
||||||
sql := fmt.Sprintf(`
|
sql := fmt.Sprintf(`
|
||||||
SELECT * FROM t_gold_bullion WHERE idx > %d AND activated = 0 AND createtime < %d LIMIT 1000`,
|
SELECT * FROM t_gold_bullion WHERE idx > %d AND activated = 0 AND returned = 0 AND createtime < %d LIMIT 1000`,
|
||||||
lastIdx,
|
lastIdx,
|
||||||
expiredTime)
|
expiredTime)
|
||||||
return sql
|
return sql
|
||||||
@ -43,5 +44,45 @@ SELECT * FROM t_gold_bullion WHERE idx > %d AND activated = 0 AND createtime < %
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (this* goldBullionReturn) returnGold(ds *f5.DataSet) bool {
|
func (this* goldBullionReturn) returnGold(ds *f5.DataSet) bool {
|
||||||
|
contractAddress := ds.GetByName("contract_address")
|
||||||
|
tokenId := ds.GetByName("token_id")
|
||||||
|
{
|
||||||
|
rspObj := struct {
|
||||||
|
Result *struct {
|
||||||
|
TokenId string `json:"token_id"`
|
||||||
|
} `json:"result"`
|
||||||
|
}{}
|
||||||
|
url := fmt.Sprintf("https://%s/v1/chains/%s/collections/%s:/nfts/%s",
|
||||||
|
mt.Table.Config.GetById(0).GetImmutableBaseUrl(),
|
||||||
|
mt.Table.Config.GetById(0).GetChainName(),
|
||||||
|
contractAddress,
|
||||||
|
tokenId)
|
||||||
|
var httpErr error
|
||||||
|
f5.GetHttpCliMgr().SendGoStyleRequest(
|
||||||
|
url,
|
||||||
|
map[string]string{},
|
||||||
|
func (rsp f5.HttpCliResponse) {
|
||||||
|
httpErr = rsp.GetErr()
|
||||||
|
if rsp.GetErr() != nil {
|
||||||
|
f5.GetSysLog().Info("returnGold immutable api:%s request error:%s",
|
||||||
|
url,
|
||||||
|
rsp.GetErr())
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if err := q5.DecodeJson("", &rspObj); err != nil {
|
||||||
|
f5.GetSysLog().Info("returnGold immutable api:%s decodeJson error:%s",
|
||||||
|
url,
|
||||||
|
err)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
if httpErr != nil {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if rspObj.Result.TokenId == tokenId {
|
||||||
|
f5.GetSysLog().Info("returnGold tokenId:%s exists",
|
||||||
|
tokenId)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user