Files

48 lines
2.8 KiB
Plaintext

from PDAPI import *
__metadata__ = {
"methods": ["POST"],
"blueprint": "3CRB",
"permission": 1.0,
"attributes": [],
"rate_limit": "1 per seconds",
"form": [
{"Name": "EnterpriseUUID", "Type": "UUID"},
{"Name": "UserName", "Type": "str", "MaxLen": 256, "Required": False},
{"Name": "UserUUID", "Type": "UUID", "Required": False},
{"Name": "EnterpriseUserType", "Type": "int", "AllowList": [1, 2]},
]
}
def HandleRequest():
CMEBalances: CmeWalletBalances
Me: EnterpriseUser
ELTUser: GERPUser = flask.g.ELTUser
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}
EnterpriseUUID = Get16toBytes(flask.request.form.get("EnterpriseUUID"))
UserName = flask.request.form.get("UserName")
UserUUID = flask.request.form.get("UserUUID")
EnterpriseUserType = flask.request.form.get("EnterpriseUserType", type = int)
if not (Me := EnterpriseUser.query.filter(sqlalchemy.and_(EnterpriseUser.UserUUID == ELTUser.UserUUID, EnterpriseUser.EnterpriseUUID == EnterpriseUUID, EnterpriseUser.EnterpriseUserType.in_([0, 1, 2]))).first()): return {"status": 1, "msg": "You are not the legal person"}
if Me.EnterpriseUserType >= EnterpriseUserType: return {"status": 1, "error": 0, "msg": "U Can't Edit He To This EnterpriseUserType"}
if not UserName and not UserUUID: return {"status": 1, "msg": "UserUUID is empty"}
if not (UserUUID := Get16toBytes(UserUUID, True)) and not (UserUUID := (User.UserUUID if (User := GetUserDataByUserName(UserName)) else None)): return {"status": 1, "msg": "Not Found User"}
if not (ru := CmeWalletBalances.query.filter(sqlalchemy.and_(CmeWalletBalances.player_uuid == GetGVSDSUserToMCPlayerUUID(UserUUID), CmeWalletBalances.currency_id == "GC")).first()): return {"status": 1, "error": 0, "msg": "No Wallet"}
if (_ := EnterpriseUser.query.filter(sqlalchemy.and_(EnterpriseUser.EnterpriseUUID == EnterpriseUUID, EnterpriseUser.UserUUID == UserUUID)).first()):
if _.UserUUID == ELTUser.UserUUID: return {"status": 1, "error": 0, "msg": "U Can't Edit Yourself"}
if _.EnterpriseUserType <= Me.EnterpriseUserType: return {"status": 1, "error": 0, "msg": "U Can't Edit EnterpriseUserType Than U More"}
else:
_ = EnterpriseUser()
_.EnterpriseSMTMUUID = NewBUUID()
_.EnterpriseUUID = EnterpriseUUID
_.UserUUID = UserUUID
_.EnterpriseUserType = EnterpriseUserType
try:
db.session.add(_)
db.session.commit()
return {"status": 0}
except:
db.session.rollback()
return {"status": 1, "msg": "SQL 提交失败"}