Files
SMANAGE/_api_backup/TempLateAPI/3CRB/API/StoredValue/Cash.api
T
2026-06-16 11:55:14 +08:00

35 lines
1.9 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "3CRB",
"permission": 1.0,
"attributes": [],
"rate_limit": "1 per seconds",
"form": [
{"Name": "StoreValueUUID", "Type": "UUID"}
]
}
def HandleRequest():
CMEBalances: CmeWalletBalances
CMEStoreValue: CmeStoreValue
ELTUser: GERPUser = flask.g.ELTUser
StoreValueUUID = flask.request.form.get("StoreValueUUID")
if not (PlayerUUID := GetGVSDSUserToMCPlayerUUID(ELTUser.UserUUID)) or not (CMEBalances := CmeWalletBalances.query.filter(sqlalchemy.and_(CmeWalletBalances.player_uuid == PlayerUUID, CmeWalletBalances.currency_id == "GC")).first()): return {"GC": -1}
if not flask.request.form.get("StoreValueUUID"): return {"status": 1, "msg": "StoreValueUUID is empty"}
if not Get16toBytes(flask.request.form.get("StoreValueUUID"), True): return {"status": 1, "msg": "StoreValueUUID not is UUID"}
if not (CMEStoreValue := CmeStoreValue.query.filter(sqlalchemy.and_(CmeStoreValue.StoreValueUUID == Get16toBytes(StoreValueUUID), CmeStoreValue.UserUUID == ELTUser.UserUUID)).first()): return {"status": 1, "error": 0, "msg": "No StoreValue"}
try:
Seconds=(datetime.datetime.strptime(TimeFormatInt(), "%Y-%m-%d %H:%M:%S") - CMEStoreValue.StoreValueCreateDateTime).total_seconds()
GameDays = round(Seconds / (20*60), 2)
AccruedInterestAndAmount = CMEStoreValue.StoreValueAmount * (GameDays if GameDays <= CMEStoreValue.StoreValueExpirationGameDate else CMEStoreValue.StoreValueExpirationGameDate) * (CMEStoreValue.StoreValueDayInterestRate / 100000) + CMEStoreValue.StoreValueAmount
except:
return {"status": 1, "msg": "error"}
CMEBalances.balance = CMEBalances.balance + AccruedInterestAndAmount
try:
db.session.delete(CMEStoreValue)
db.session.commit()
return {"status": 0}
except:
return {"status": 1, "msg": "SQL 提交失败"}