async def unlock_server_by_id(ns={}): """ 故障-自动取消订单,释放设备 :param ns: :return: """ data = {} msg = "sql error" try: data["count"] = int(ns['count']) data['productid'] = ns['productid'] except Exception as e: return {"status": False, "msg": f"get key error, please check key:{str(e)}"} db = DBPools() async with db.sqlorContext('kboss') as sor: # 解锁设备 sql = "UPDATE lease_server_status SET `status` = 0 ,order_id = NULL,lease_start_time=null,lease_end_time=NULL,update_time = ${update_time}$ WHERE `status`=1 AND del_flg=0 and order_id is null AND productid=${productid}$ limit ${count}$" d = await sor.sqlExe(sql, data) if d == data['count']: # 增加库存 sql = "update lease_server_data set stock=stock+${count}$,update_time = ${update_time}$ where productid=${productid}$" await sor.sqlExe(sql, data) return {"status": True, "msg": f"success update number:{d}"} else: msg = f"failure update number:{d}/{data['count']}" raise Exception(msg) return {"status": False, "msg": msg} ret = await unlock_server_by_id(params_kw) return ret