123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- # -*- encoding=utf8 -*-
- import time
- import datetime
- import pandas as pd
- import pymysql
- from DBUtils.PooledDB import PooledDB
- #创建数据库连接池
- def createPool(db_config):
- spool = PooledDB(pymysql, 5, **db_config)
- return spool
- #查询数据
- def getData(sql,db):
- df = pd.read_sql(sql,con=db)
- db.close
- #print(df)
- return df
- def saveData():
- timestamp = time.time()
- ins_sql = """ INSERT INTO balance_monitoring VALUES(0,%s,%s,1,%s) """
- msg = '昨日还在充值中的订单总数量为:{},手机号为:\n {}'
- try:
- #print(111)
- ord_cursor = ord_conn.cursor()
- if(df.empty is False):
- #print(22)
- #print(df.values.tolist())
- total_num = df.shape[0]
- phone_list = []
- if total_num >10:
- phone_list = df['used_mobile'].head(10).tolist()
- else:
- phone_list = df['used_mobile'].values.tolist()
- #print(total_num)
- #print(phone_list)
- ord_msg = msg.format(total_num,phone_list)
- #print(ord_msg)
- ord_cursor.execute(ins_sql, (ord_msg,'超时订单监控群',int(timestamp)))
- except:
- ord_conn.rollback()
- print('数据回滚')
- finally:
- ord_cursor.close
- ord_conn.close
- if __name__ == '__main__':
- #数据库连接信息
- chanel_db_config = {
- 'host' : '47.95.217.180',
- 'port' : 3306,
- 'user' : 'root',
- 'password' : '93DkChZMgZRyCbWh',
- 'db' : 'fmp',
- 'charset' : 'utf8',
- 'autocommit' : 1
- }
- #监控消息数据库连接信息
- mon_db_config = {
- 'host' : '127.0.0.1',
- 'port' : 9001,
- 'user' : 'root',
- 'password' : 'nibuzhidaowozhidao',
- 'db' : 'monitoring',
- 'charset' : 'utf8',
- 'autocommit' : 1
- }
- #数据库连接
- conn = createPool(chanel_db_config).connection()
- ord_conn = createPool(mon_db_config).connection()
- #获取时间
- today = datetime.date.today()
- yesterday = today - datetime.timedelta(days=1)
- yesterdayStart = yesterday.strftime("%Y-%m-%d") + ' 00:00:00'
- yesterdayEnd = yesterday.strftime("%Y-%m-%d") + ' 23:59:59'
- sql = """ SELECT used_mobile,apply_date
- FROM
- flow_order_info
- WHERE
- apply_date BETWEEN ' """ + yesterdayStart +""" ' AND ' """+ yesterdayEnd + """ '
- AND status NOT IN (4,6)
- """
-
- df = getData(sql,conn)
- #df = pd.DataFrame([['159','8.1']])
- saveData()
|