from PDAPI import * import TempLateAPI.GERP.API.FormAPI.FormData as FormData # 处理删除物品请求 def HandleDeleteBackpackItem(table, cleanedData): """处理删除物品请求""" BackpackItemUUID = flask.request.form.get("BackpackItemUUID") Count = flask.request.form.get("Count", 1, type=int) if not BackpackItemUUID: return {"code": 400, "msg": "参数缺失: BackpackItemUUID"} # 检查物品是否存在 Item = GERPBackpack.query.filter( GERPBackpack.BackpackItemUUID == Get16toBytes(BackpackItemUUID) ).first() if not Item: 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: return {"code": 1, "msg": "需求物品数量 大于 实际物品数量"} # 处理删除逻辑 if Count == Item.ItemLength: db.session.delete(Item) elif 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 提交失败"} # 注册函数类型插件 FormData.RegisterFunctionExtension("BackpackItem", "delete", HandleDeleteBackpackItem)