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 提交失败"}