kboss/b/lease_product/update_server.dspy
2025-07-16 14:27:17 +08:00

65 lines
2.4 KiB
Plaintext

async def update_server(ns={}):
"""
修改设备配置
:param ns:
:return:
"""
response = {"status": False}
data = {}
try:
data["id"] = ns["id"]
data["productid"] = ns['productid']
data["price"] = ns['price']
data["stock"] = int(ns['stock'])
data['change_stock'] = int(ns['change_stock'])
data['end_date'] = ns['end_date']
except Exception as e:
response = {"status": False, "msg": f"update server error, please check key:{str(e)}"}
return response
if data["stock"] < 0:
return {"status": False, "msg": "库存不能小于0"}
db = DBPools()
async with db.sqlorContext('kboss') as sor:
data["update_time"] = datetime.datetime.now()
# 修改产品表
await sor.U("lease_server_data", {"id": ns['id'], "price": data["price"], "stock": data["stock"], "update_time": data["update_time"]})
msg = "产品修改成功"
# 库存设备增加
if data['change_stock'] > 0:
# 创建新设备数据
for _ in range(data['change_stock']):
d = {
'id': uuid(),
'productid': data['productid'],
'server_id': data['id'],
'status': 0,
'end_date': data['end_date'],
}
await sor.C("lease_server_status", d)
response = {"status": True, "msg": f"{msg}"}
return response
# 库存设备减少
elif data['change_stock'] < 0:
lease_server_status_data = {
"server_id": ns['id'],
"update_time": data["update_time"],
"num": abs(data['change_stock'])
}
sql = "update lease_server_status set del_flg= 1 where server_id= ${server_id}$ and del_flg=0 limit ${num}$;"
update_num = await sor.sqlExe(sql, lease_server_status_data)
if update_num != abs(data['change_stock']):
raise Exception(f"库存设备减少失败,请检查库存设备数量")
else:
response = {"status": True, "msg": f"{msg}"}
return response
else:
response = {"status": True, "msg": f"{msg}"}
return response
return {"status": False, "msg": f"sql error"}
ret = await update_server(params_kw)
return ret