215 lines
4.3 KiB
Go
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
|
|
}
|