65 lines
2.4 KiB
Plaintext
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) |