game2006go/server/backtask/service/spec_transfer.go
aozhiwei 22a679c7f0 1
2024-07-10 14:55:04 +08:00

215 lines
4.3 KiB
Go

package service
import (
"q5"
"f5"
"jccommon"
"main/constant"
. "main/global"
)
func UpdateSpecTransferStatus(dbIdx int64, status int32) bool {
var dbErr error
f5.GetGoStyleDb().Update(
constant.BCEVENT_DB,
"t_721nft_spec_transfer",
[][]string {
{"idx", q5.ToString(dbIdx)},
},
[][]string {
{"status", q5.ToString(status)},
},
func (err error, lastInsertId int64, rowsAffected int64) {
dbErr = err
})
return dbErr == nil
}
func OpenGoldBullion(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},
{"status", q5.ToString(jccommon.GOLD_BULLION_NO_OPEN)},
},
[][]string {
{"status", q5.ToString(jccommon.GOLD_BULLION_OPENED)},
{"open_status", q5.ToString(jccommon.GOLD_BULLION_OPEN_STATUS_SENT)},
{"open_address", accountAddress},
{"open_time", q5.ToString(nowTime)},
{"open_account_id", accountId},
},
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},
{"status", q5.ToString(jccommon.GOLD_BULLION_OPENED)},
},
[][]string {
{"open_status", q5.ToString(jccommon.GOLD_BULLION_OPEN_STATUS_RECEIVED)},
},
func (err error, lastInsertId int64, rowsAffected int64) {
dbErr = err
})
if dbErr != nil {
return false
}
}
return true
}
func ReturnGoldBullion(accountId 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
returned := false
f5.GetGoStyleDb().OrmSelectOne(
constant.GAME_DB,
"t_gold_bullion_return",
[][]string {
{"net_id", q5.ToString(netId)},
{"token_id", tokenId},
},
func (err error, ds *f5.DataSet) {
dbErr = err
if err != nil {
return
}
if ds.Next() {
returned = true
}
})
if dbErr != nil {
return false
}
if returned {
return true
}
}
{
var dbErr error
nowTime := f5.GetApp().GetRealSeconds()
f5.GetGoStyleDb().Upsert(
constant.GAME_DB,
"t_gold_bullion_return",
[][]string {
{"token_id", tokenId},
},
[][]string {},
[][]string {
{"account_id", accountId},
{"token_id", tokenId},
{"net_id", q5.ToString(netId)},
{"item_id", q5.ToString(itemId)},
{"gold", q5.ToString(goldNum)},
{"createtime", q5.ToString(nowTime)},
{"modifytime", q5.ToString(nowTime)},
},
func (err error, lastInsertId int64, rowsAffected int64) {
dbErr = err
})
if dbErr != nil {
return false
}
}
return true
{
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
}