35 lines
1.9 KiB
Plaintext
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 提交失败"} |