async def provider_rate(ns={}): """ 供应商-空闲率-租售率 :param ns: :return: """ data = {} try: data["providerid"] = ns['providerid'] 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: data['del_flg'] = 0 sql_data = await sor.R("lease_server_status", data) if not sql_data: return {"status": False, "msg": "no data"} else: lease_server = 0 free_server = 0 for i in sql_data: if i['status'] == 0: # 可租 free_server += 1 if i['status'] == 2: # 租赁中 lease_server += 1 free_rate = round(free_server / len(sql_data) * 100, 2) lease_rate = round(lease_server / len(sql_data) * 100, 2) return {"status": True, "free_rate": free_rate, "lease_rate": lease_rate} return {"status": False, "msg": "sql error"} ret = await provider_rate(params_kw) return ret