from app.api_data.order_util import * from model.DataBaseUtils import MysqlUtils from concurrent.futures import ThreadPoolExecutor from model.DingTalkUtils import DingTalkDecorators from app.api_data.platform_order.audio_qiyue import AudioQiyue from app.api_data.platform_order.youshuge import get_youshuge_order_task from app.api_data.platform_order.yuewen import get_yuewen_order_task from app.api_data.platform_order.yangguang import yangguang db = MysqlUtils() def get_account(plactform, id=None): op = f" and id={id} " if id else '' data = db.quchen_text.getData(f"select text from order_account_text where platform='{plactform}' {op}") new_data = [] for i in data: new_data.append(i[0].replace('\n', '').split(",")) return new_data def get_new_account(plactform): data = db.quchen_text.getData( f"select text from order_account_text where platform='{plactform}' and create_time>='{du.get_n_days(-1)}'") new_data = [] for i in data: new_data.append(i[0].replace('\n', '').split(",")) return new_data @DingTalkDecorators("花生") def huasheng(start=None, end=None): if start is None: start = end = du.getNow() executor = ThreadPoolExecutor(max_workers=5) accounts = get_account("花生") if len(accounts) == 0: return else: print(f'花生有账号{len(accounts)}个') for account in accounts: executor.submit(get_hs_order_task, start, end, account) executor.shutdown() @DingTalkDecorators("七悦") def qiyue(start=None, end=None, new=None): if start is None: start = end = du.getNow() accounts = get_account("七悦") if new is None else get_new_account('七悦') if len(accounts) == 0: return else: print(f'七悦有账号{len(accounts)}个') for account in accounts: get_qiyue_order_task(start, end, account) @DingTalkDecorators("文鼎") def wending(start=None, end=None, new=None): if start is None: start = end = du.getNow() accounts = get_account("文鼎") if new is None else get_new_account('文鼎') if len(accounts) == 0: return else: print(f'文鼎有账号{len(accounts)}个') for account in accounts: get_wd_order_task(start, end, account) @DingTalkDecorators("掌读") def zhangdu(start=None, end=None, new=None): if start is None: start = end = du.getNow() accounts = get_account("掌读") if len(accounts) == 0: return else: print(f'掌读有账号{len(accounts)}个') for account in accounts: get_zd_order_task(start, end, account) @DingTalkDecorators("掌中云") def zhangzhongyun(start=None, end=None, new=None): if start is None: start = du.getNow() end = du.get_n_days(1) executor = ThreadPoolExecutor(max_workers=5) accounts = get_account("掌中云") if len(accounts) == 0: return else: print(f'掌中云有账号{len(accounts)}个') for account in accounts: executor.submit(get_zzy_order_task, start, end, account) executor.shutdown() @DingTalkDecorators("阅文") def yueweng(start=None, end=None): if start is None: start = end = du.getNow() executor = ThreadPoolExecutor(max_workers=5) accounts = get_account("阅文") if len(accounts) == 0: return else: print(f'阅文有账号{len(accounts)}个') for account in accounts: executor.submit(get_yuewen_order_task, start, end, account) executor.shutdown() @DingTalkDecorators("七悦有声") def qiyueyousheng(start=None, end=None): if start is None: start = end = du.getNow() accounts = get_account("七悦有声") if len(accounts) == 0: return else: print(f'七悦有声有账号{len(accounts)}个') for account in accounts: AudioQiyue().get_order(start, end, account) @DingTalkDecorators("悠书阁") def youshuge(start=None, end=None): if start is None: start = end = du.getNow() executor = ThreadPoolExecutor(max_workers=5) accounts = get_account("悠书阁") if len(accounts) == 0: return else: print(f'悠书阁有账号{len(accounts)}个') for account in accounts: executor.submit(get_youshuge_order_task, start, end, account) executor.shutdown() def hourly(): huasheng() qiyue() qiyueyousheng() wending() zhangdu() zhangzhongyun() yueweng() youshuge() # yangguang() # 阳光接口采用回调的形式,所以单独调度 def daily(): st = du.get_n_days(-10) et = du.get_n_days(-1) huasheng(st, et) qiyue(st, et) qiyueyousheng(st, et) wending(st, et) zhangdu(st, et) zhangzhongyun(st, et) yueweng(st, et) youshuge(st, et) yangguang(st, et) if __name__ == '__main__': # zhangzhongyun() yangguang()