check_order_new.py 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. """
  4. __title__ = '每日凌晨空闲时检查本地数据库中的订单数据是否和平台昨天总订单一致'
  5. @Time : 2020/9/26 19:44
  6. @Author : Kenny-PC
  7. @Software: PyCharm
  8. # code is far away from bugs with the god animal protecting
  9. I love animals. They taste delicious.
  10. ┏┓ ┏┓
  11. ┏┛┻━━━┛┻┓
  12. ┃ ☃ ┃
  13. ┃ ┳┛ ┗┳ ┃
  14. ┃ ┻ ┃
  15. ┗━┓ ┏━┛
  16. ┃ ┗━━━┓
  17. ┃ 神兽保佑 ┣┓
  18. ┃ 永无BUG! ┏┛
  19. ┗┓┓┏━┳┓┏┛
  20. ┃┫┫ ┃┫┫
  21. ┗┻┛ ┗┻┛
  22. """
  23. from util import date_util
  24. from util import db_order_util
  25. from util import platform_order_api_util
  26. def start_all_job():
  27. start_exec_seconds = date_util.getCurrentSecondTime()
  28. st_unix = date_util.getYesterdayStartTime()
  29. et_unix = date_util.getTodayStartTime()
  30. # st_unix = 1601136000 # 2020/9/27 0:0:0
  31. # et_unix = 1601308800 # 2020/9/29 0:0:0
  32. print('查询开始时间:', st_unix, date_util.getSecondsToDatetime(st_unix))
  33. print('查询结束时间:', et_unix, date_util.getSecondsToDatetime(et_unix))
  34. # order_list = platform_order_api_util.get_youshuge_order(st_unix, et_unix)
  35. # db_order_util.batch_save_order(order_list)
  36. # print(platform_order_api_util.nor())
  37. # platform_order_api_util.throw_exception()
  38. # print(platform_order_api_util.nor())
  39. ########################################## 测试开关 ##########################################
  40. # exit_flag = True
  41. ########################################## 测试开关 ##########################################
  42. # if exit_flag:
  43. # exit() #这里是为了测试,不让代码继续执行
  44. platform_order_num_list = db_order_util.get_platform_order_count(date_util.getYesterdayStartTime())
  45. if len(platform_order_num_list) == 0:
  46. print('本地库中没有任何数据,现在全平台补全')
  47. db_order_util.batch_save_order(platform_order_api_util.get_zhangzhongyun_order(st_unix, et_unix))
  48. db_order_util.batch_save_order(platform_order_api_util.get_yuewen_order(st_unix, et_unix))
  49. db_order_util.batch_save_order(platform_order_api_util.get_huasheng_order(st_unix, et_unix))
  50. db_order_util.batch_save_order(platform_order_api_util.get_youshuge_order(st_unix, et_unix))
  51. db_order_util.batch_save_order(platform_order_api_util.get_zhangdu_order(st_unix, et_unix))
  52. else:
  53. platform_list = ['阅文', '悠书阁', '掌读', '掌中云', '花生']
  54. for platform_order_num in platform_order_num_list:
  55. platform = str(platform_order_num['platform'])
  56. num = int(platform_order_num['num'])
  57. platform_list.remove(platform)
  58. if platform == '阅文':
  59. order_list = platform_order_api_util.get_yuewen_order(st_unix, et_unix)
  60. if len(order_list) != num:
  61. print('阅文数据实际订单和已经入库数据差异:', len(order_list) - num)
  62. db_order_util.batch_save_order(order_list)
  63. elif platform == '悠书阁':
  64. order_list = platform_order_api_util.get_youshuge_order(st_unix, et_unix)
  65. if len(order_list) != num:
  66. print('悠书阁数据实际订单和已经入库数据差异:', len(order_list) - num)
  67. db_order_util.batch_save_order(order_list)
  68. elif platform == '掌读':
  69. order_list = platform_order_api_util.get_zhangdu_order(st_unix, et_unix)
  70. if len(order_list) != num:
  71. print('掌读数据实际订单和已经入库数据差异:', len(order_list) - num)
  72. db_order_util.batch_save_order(order_list)
  73. elif platform == '掌中云':
  74. order_list = platform_order_api_util.get_zhangzhongyun_order(st_unix, et_unix)
  75. if len(order_list) != num:
  76. print('掌中云数据实际订单和已经入库数据差异:', len(order_list) - num)
  77. db_order_util.batch_save_order(order_list)
  78. elif platform == '花生':
  79. order_list = platform_order_api_util.get_huasheng_order(st_unix, et_unix)
  80. if len(order_list) != num:
  81. print('花生数据实际订单和已经入库数据差异:', len(order_list) - num)
  82. db_order_util.batch_save_order(order_list)
  83. else:
  84. print('发现未知平台数据!', platform_order_num)
  85. for platform in platform_list:
  86. if platform == '阅文':
  87. print('阅文没有数据')
  88. db_order_util.batch_save_order(platform_order_api_util.get_yuewen_order(st_unix, et_unix))
  89. elif platform == '悠书阁':
  90. print('悠书阁没有数据')
  91. db_order_util.batch_save_order(platform_order_api_util.get_youshuge_order(st_unix, et_unix))
  92. elif platform == '掌读':
  93. print('掌读没有数据')
  94. db_order_util.batch_save_order(platform_order_api_util.get_zhangdu_order(st_unix, et_unix))
  95. elif platform == '掌中云':
  96. print('掌中云没有数据')
  97. db_order_util.batch_save_order(platform_order_api_util.get_zhangzhongyun_order(st_unix, et_unix))
  98. elif platform == '花生':
  99. print('花生没有数据')
  100. db_order_util.batch_save_order(platform_order_api_util.get_huasheng_order(st_unix, et_unix))
  101. else:
  102. print('什么鬼平台:', platform)
  103. print('订单检查执行时间(秒):', date_util.getCurrentSecondTime() - start_exec_seconds)
  104. if __name__ == '__main__':
  105. start_all_job()
  106. # scheduler = BlockingScheduler()
  107. # #每天凌晨3点到4点的30分钟都执行一次
  108. # scheduler.add_job(start_all_job, 'cron', hour='3-4', minute='35')
  109. # scheduler.start()