async def expiration_warning(ns={}): """ 到期警告 :param ns: :return: """ db = DBPools() async with db.sqlorContext('kboss') as sor: sql = "SELECT d.product_name,DATEDIFF(s.lease_end_time,CURDATE()) AS DAY FROM lease_server_status s LEFT JOIN lease_server_data d ON s.server_id=d.id WHERE s.del_flg=0 AND s.`status`='2' AND DATEDIFF(s.lease_end_time,CURDATE())>=0" data = await sor.sqlExe(sql, {}) if not data: return {"status": True, "data": []} resp ={} for i in data: resp.setdefault(i["product_name"], []).append(i["day"]) return {"status": True, "data": resp} ret = await expiration_warning(params_kw) return ret