yesterday_top_order.py 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. # -*- encoding=utf8 -*-
  2. import time
  3. import datetime
  4. import pandas as pd
  5. import pymysql
  6. from DBUtils.PooledDB import PooledDB
  7. #创建数据库连接池
  8. def createPool(db_config):
  9. spool = PooledDB(pymysql, 5, **db_config)
  10. return spool
  11. #查询数据
  12. def getData(sql,db):
  13. df = pd.read_sql(sql,con=db)
  14. db.close
  15. #print(df)
  16. return df
  17. def saveData():
  18. timestamp = time.time()
  19. ins_sql = """ INSERT INTO balance_monitoring VALUES(0,%s,%s,1,%s) """
  20. msg = '昨日还在充值中的订单总数量为:{},手机号为:\n {}'
  21. try:
  22. #print(111)
  23. ord_cursor = ord_conn.cursor()
  24. if(df.empty is False):
  25. #print(22)
  26. #print(df.values.tolist())
  27. total_num = df.shape[0]
  28. phone_list = []
  29. if total_num >10:
  30. phone_list = df['used_mobile'].head(10).tolist()
  31. else:
  32. phone_list = df['used_mobile'].values.tolist()
  33. #print(total_num)
  34. #print(phone_list)
  35. ord_msg = msg.format(total_num,phone_list)
  36. #print(ord_msg)
  37. ord_cursor.execute(ins_sql, (ord_msg,'超时订单监控群',int(timestamp)))
  38. except:
  39. ord_conn.rollback()
  40. print('数据回滚')
  41. finally:
  42. ord_cursor.close
  43. ord_conn.close
  44. if __name__ == '__main__':
  45. #数据库连接信息
  46. chanel_db_config = {
  47. 'host' : '47.95.217.180',
  48. 'port' : 3306,
  49. 'user' : 'root',
  50. 'password' : '93DkChZMgZRyCbWh',
  51. 'db' : 'fmp',
  52. 'charset' : 'utf8',
  53. 'autocommit' : 1
  54. }
  55. #监控消息数据库连接信息
  56. mon_db_config = {
  57. 'host' : '127.0.0.1',
  58. 'port' : 9001,
  59. 'user' : 'root',
  60. 'password' : 'nibuzhidaowozhidao',
  61. 'db' : 'monitoring',
  62. 'charset' : 'utf8',
  63. 'autocommit' : 1
  64. }
  65. #数据库连接
  66. conn = createPool(chanel_db_config).connection()
  67. ord_conn = createPool(mon_db_config).connection()
  68. #获取时间
  69. today = datetime.date.today()
  70. yesterday = today - datetime.timedelta(days=1)
  71. yesterdayStart = yesterday.strftime("%Y-%m-%d") + ' 00:00:00'
  72. yesterdayEnd = yesterday.strftime("%Y-%m-%d") + ' 23:59:59'
  73. sql = """ SELECT used_mobile,apply_date
  74. FROM
  75. flow_order_info
  76. WHERE
  77. apply_date BETWEEN ' """ + yesterdayStart +""" ' AND ' """+ yesterdayEnd + """ '
  78. AND status NOT IN (4,6)
  79. """
  80. df = getData(sql,conn)
  81. #df = pd.DataFrame([['159','8.1']])
  82. saveData()