Files
SMANAGE/backup/_api_backup/TempLateAPI/GERP/API/Backpack/Delete.api
T

44 lines
1.5 KiB
Plaintext

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)