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