repair_order_daily.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. #!/usr/bin/env python3
  2. # -*- coding: utf-8 -*-
  3. """
  4. Created on Wed Aug 5 10:32:28 2020
  5. @author: chencong
  6. """
  7. import datetime
  8. import time
  9. import math
  10. import pandas as pd
  11. import numpy as np
  12. import hashlib
  13. import requests
  14. from apscheduler.schedulers.blocking import BlockingScheduler
  15. import pymysql
  16. import get_data_hourly
  17. def order_check():
  18. db = pymysql.connect('rm-bp1c9cj79872tx3aaro.mysql.rds.aliyuncs.com','superc','Cc719199895','quchen_text')
  19. cursor = db.cursor()
  20. sql1 = 'select platform,count(1) from quchen_text.order where date=%s and platform!=%s group by platform'
  21. sql2 = 'select platform,count(1) from quchen_text.order_daily where date=%s and platform!=%s group by platform'
  22. t = int((time.time()+8*3600)//86400*86400-8*3600-86400)
  23. data = (t,'阳光')
  24. case1=0
  25. case2=0
  26. try:
  27. cursor.execute(sql1,data)
  28. db.commit()
  29. x=cursor.fetchall()
  30. print('access',x)
  31. except:
  32. db.rollback()
  33. print('defeat order')
  34. try:
  35. cursor.execute(sql2,data)
  36. db.commit()
  37. y=cursor.fetchall()
  38. print('access',y)
  39. except:
  40. db.rollback()
  41. print('defeat order_daily')
  42. if len(x)==len(y) :
  43. for i in range(len(x)):
  44. if x[i][1]<y[i][1]:
  45. case1=1
  46. elif x[i][1]>y[i][1]:
  47. case2=1
  48. elif len(x)>len(y) :
  49. case2=1
  50. else:
  51. case1=1
  52. return(case1,case2)
  53. def mysql_insert_order_daily(data):
  54. db = pymysql.connect('rm-bp1c9cj79872tx3aaro.mysql.rds.aliyuncs.com','superc','Cc719199895','quchen_text')
  55. cursor = db.cursor()
  56. time1 = time.time()
  57. sql = 'insert ignore into quchen_text.order_daily (amount,channel,channel_id,date,from_novel,order_id,order_time,platform,reg_time,stage,user_id) values (%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);'
  58. try:
  59. cursor.executemany(sql,data)
  60. db.commit()
  61. cost_time =round((time.time()-time1)/60,1)
  62. print('insert_order access',len(data),'cost_minutes:',cost_time)
  63. except:
  64. db.rollback()
  65. print('insert_order defeat')
  66. def repair_order():
  67. repair_unix_time = time.time()
  68. st_unix = int((repair_unix_time+8*3600)//86400*86400-8*3600-86400)
  69. et_unix = int((repair_unix_time+8*3600)//86400*86400-8*3600)
  70. #et_unix = et_unix - 1
  71. st_dt = time.strftime("%Y-%m-%dT%H:%M:%S",time.localtime(st_unix))+'+08:00'
  72. et_dt = time.strftime("%Y-%m-%dT%H:%M:%S",time.localtime(et_unix))+'+08:00'
  73. (a,b)=order_check()
  74. print(a,b)
  75. if a==1 :
  76. get_data_hourly.mysql_insert_order(get_data_hourly.get_zhangdu_order(st_unix,et_unix))
  77. get_data_hourly.mysql_insert_order(get_data_hourly.get_ysg_order(st_unix,et_unix))
  78. get_data_hourly.mysql_insert_order(get_data_hourly.get_zzy_order(st_dt,et_dt))
  79. get_data_hourly.mysql_insert_order(get_data_hourly.get_yuewen_order(st_unix,et_unix))
  80. ##get_data_hourly.mysql_insert_order(get_data_hourly.get_yuewen_order(st_unix,et_unix-1))
  81. get_data_hourly.mysql_insert_order(get_data_hourly.get_huasheng_order(st_unix,et_unix))
  82. if b==1 :
  83. mysql_insert_order_daily(get_data_hourly.get_zhangdu_order(st_unix,et_unix))
  84. mysql_insert_order_daily(get_data_hourly.get_ysg_order(st_unix,et_unix))
  85. mysql_insert_order_daily(get_data_hourly.get_zzy_order(st_dt,et_dt))
  86. mysql_insert_order_daily(get_data_hourly.get_yuewen_order(st_unix,et_unix))
  87. #mysql_insert_order_daily(get_data_hourly.get_yuewen_order(st_unix,et_unix-1))
  88. mysql_insert_order_daily(get_data_hourly.get_huasheng_order(st_unix,et_unix))
  89. start_job_time = '2020-09-30 03:40:00'
  90. if __name__ == '__main__':
  91. scheduler = BlockingScheduler()
  92. scheduler.add_job(repair_order, 'interval',days=1,start_date=start_job_time)
  93. scheduler.start()