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

65 lines
2.4 KiB
Plaintext

from PDAPI import *
import TempLateAPI.GERP.API.FormAPI.FormData as FormData
# 处理添加物品请求
def HandleAddBackpackItem(table, cleanedData):
"""处理添加物品请求"""
UserUUID = flask.request.form.get("UserUUID")
ItemTemplateUUID = flask.request.form.get("ItemTemplateUUID")
ItemName = flask.request.form.get("ItemName")
ItemLength = flask.request.form.get("ItemLength", 1, type=int)
ItemIcon = flask.request.form.get("ItemIcon")
ItemIconColor = flask.request.form.get("ItemIconColor")
ItemTags = flask.request.form.get("ItemTags")
ItemDescription = flask.request.form.get("ItemDescription")
ItemMetaData = flask.request.form.get("ItemMetaData")
if not UserUUID:
return {"code": 400, "msg": "参数缺失: UserUUID"}
if not ItemTemplateUUID:
return {"code": 400, "msg": "参数缺失: ItemTemplateUUID"}
if not ItemName:
return {"code": 400, "msg": "参数缺失: ItemName"}
# 检查用户是否存在
if not GERPUser.query.filter(
GERPUser.UserUUID == Get16toBytes(UserUUID)
).first():
return {"code": 1, "msg": "用户不存在"}
# 检查是否已存在相同物品
ExistingItem = GERPBackpack.query.filter(
GERPBackpack.UserUUID == Get16toBytes(UserUUID),
GERPBackpack.ItemTemplateUUID == Get16toBytes(ItemTemplateUUID)
).first()
if ExistingItem:
# 如果物品已存在,增加数量
ExistingItem.ItemLength += ItemLength
db.session.add(ExistingItem)
else:
# 创建新物品
NewItem = GERPBackpack(
UserUUID=Get16toBytes(UserUUID),
BackpackItemUUID=GetBytesTo16(GenerateUUID()),
ItemTemplateUUID=Get16toBytes(ItemTemplateUUID),
ItemName=ItemName,
ItemIcon=ItemIcon,
ItemIconColor=ItemIconColor,
ItemTags=ItemTags,
ItemDescription=ItemDescription,
ItemMetaData=ItemMetaData,
ItemLength=ItemLength
)
db.session.add(NewItem)
try:
db.session.commit()
return {"code": 0, "msg": "成功添加物品"}
except:
print(traceback.print_exc())
db.session.rollback()
return {"code": 1, "msg": "SQL 提交失败"}
# 注册函数类型插件
FormData.RegisterFunctionExtension("BackpackItem", "add", HandleAddBackpackItem)