36 lines
1.3 KiB
Plaintext
36 lines
1.3 KiB
Plaintext
from PDAPI import *
|
|
|
|
|
|
__metadata__ = {
|
|
"methods": ["POST"],
|
|
"blueprint": "GERP",
|
|
"permission": 1.0,
|
|
"attributes": [],
|
|
"limit": "1 per second",
|
|
"form": [
|
|
{"Name": "BackpackItemUUID", "Type": "UUID"},
|
|
{"Name": "Count", "Type": "int", "MinLen": 1}
|
|
]
|
|
}
|
|
def HandleRequest():
|
|
Item: GERPBackpack
|
|
ELTUser: GERPUser = flask.g.ELTUser
|
|
BackpackItemUUID = Get16toBytes(flask.request.form.get("BackpackItemUUID"))
|
|
Count = int(flask.request.form.get("Count"))
|
|
if not (Item := GERPBackpack.query.filter(GERPBackpack.BackpackItemUUID == BackpackItemUUID).first()):
|
|
return {"code": 1, "msg": "未找到"}
|
|
if Count > Item.ItemLength:
|
|
return {"code": 1, "msg": "需求物品数量 大于 实际物品数量"}
|
|
if Item.ItemMetaData and "AllowDiscard" in Item.ItemMetaData and not Item.ItemMetaData["AllowDiscard"]:
|
|
return {"code": 1, "msg": "此物品不允许丢弃"}
|
|
if Count == Item.ItemLength:
|
|
db.session.delete(Item)
|
|
if Count < Item.ItemLength:
|
|
Item.ItemLength = Item.ItemLength - Count
|
|
db.session.add(Item)
|
|
try:
|
|
db.session.commit()
|
|
return {"code": 0, "msg": "丢弃成功"}
|
|
except:
|
|
db.session.rollback()
|
|
return {"code": 1, "msg": "SQL 提交失败"} |