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