src_book_info.py 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. from model.DingTalkUtils import DingTalkUtils
  2. from model.DateUtils import DateUtils
  3. from model.DataBaseUtils import MysqlUtils, CkUtils
  4. import logging
  5. du = DateUtils()
  6. db = MysqlUtils()
  7. ck = CkUtils()
  8. def src_book_info():
  9. logging.info('书籍卡点信息,开始')
  10. logging.info("run> src_book_info")
  11. sql = """
  12. SELECT date_format(a.effect_day,'%Y-%m-%d'),
  13. case a.type when 'mp' then 'MP' when 'gdt' then 'GDT' end type,
  14. b.book_name,c.platform_name,a.node_price from t_zx_book_ratio a
  15. left join t_zx_book b on a.zx_book_id=b.id
  16. left join t_platform_info c on b.platform_id=c.id
  17. """
  18. data = db.zx_platform.getData(sql)
  19. di = {}
  20. for i in data:
  21. thedate = i[0]
  22. while True:
  23. if thedate > du.get_n_days(0):
  24. break
  25. else:
  26. di[thedate + ',' + i[1] + ',' + i[2] + ',' + i[3]] = i[4]
  27. thedate = du.add_days(thedate, 1)
  28. li = []
  29. for i, j in di.items():
  30. li.append(i.split(',') + [j])
  31. # db.dm.execute("truncate table src_book_info")
  32. db.dm.executeMany("replace into src_book_info(dt,type,book,platform,node) values (%s,%s,%s,%s,%s)", li)
  33. logging.info('src_book_info success')
  34. logging.info('书籍卡点信息,结束')
  35. if __name__ == '__main__':
  36. try:
  37. src_book_info()
  38. except Exception as e:
  39. DingTalkUtils().send(str(e))