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)