from model.DingTalkUtils import DingTalkUtils from model.DateUtils import DateUtils from model.DataBaseUtils import MysqlUtils, CkUtils import logging du = DateUtils() db = MysqlUtils() ck = CkUtils() def src_book_info(): logging.info('书籍卡点信息,开始') logging.info("run> src_book_info") sql = """ SELECT date_format(a.effect_day,'%Y-%m-%d'), case a.type when 'mp' then 'MP' when 'gdt' then 'GDT' end type, b.book_name,c.platform_name,a.node_price from t_zx_book_ratio a left join t_zx_book b on a.zx_book_id=b.id left join t_platform_info c on b.platform_id=c.id """ data = db.zx_platform.getData(sql) di = {} for i in data: thedate = i[0] while True: if thedate > du.get_n_days(0): break else: di[thedate + ',' + i[1] + ',' + i[2] + ',' + i[3]] = i[4] thedate = du.add_days(thedate, 1) li = [] for i, j in di.items(): li.append(i.split(',') + [j]) # db.dm.execute("truncate table src_book_info") db.dm.executeMany("replace into src_book_info(dt,type,book,platform,node) values (%s,%s,%s,%s,%s)", li) logging.info('src_book_info success') logging.info('书籍卡点信息,结束') if __name__ == '__main__': try: src_book_info() except Exception as e: DingTalkUtils().send(str(e))