from handlers.HandlerBase import BaseHandler from model.log import logger from data_manage.pitcher_panel import * import time import pandas as pd import json log = logger() class PitcherPanelChannel(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: args = self.get_args() print(args) pitcher = args.get("pitcher") channel = args.get("channel") start = args.get("start", self.get_n_days(0)) end = args.get("end", self.get_n_days(0)) page = args.get("page") page_size = args.get("page_size") order_by=args.get("order_by",'cost') order=args.get("order", 'desc') data_range=args.get('date_range') if data_range: end = self.get_n_days(0) start = self.get_n_days(-int(args['date_range'])+1) data,total=get_pitcher_panel_channel(pitcher, channel, start, end, page, page_size, order_by, order) self.write_json(data=data,total=total) class PitcherPanelDaily(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: args=self.get_args() print(args) pitcher = args.get("pitcher") start = args.get("start") end = args.get("end") page = args.get("page") page_size = args.get("page_size") order_by = args.get("order_by", 'date') order = args.get("order", 'desc') if 'date_range' in list(args.keys()): end = self.get_n_days(0) start = self.get_n_days(-int(args['date_range'])+1) data,total,total_data = get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, order) self.write_json(data=data,total=total,total_data=total_data) class PitcherPanelOverview(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: args=self.get_args() pitcher = args.get("pitcher") data = get_pitcher_panel_overview(pitcher) self.write_json(data) class ChannelOverview(BaseHandler): def post(self): du =DateUtils() if not self._au: self.write_fail(msg='auth error') else: args=self.get_args() print(args) user_id =args.get('user_id') channel=args.get("channel") pitcher=args.get("pitcher") start=args.get("start",self.thisday) end=args.get("end") stage=args.get("stage") page = args.get("page", 1) page_size = args.get("page_size", 10) order_by = args.get("order_by", 'date') order = args.get("order", 'desc') data,total,total_data =get_channel_overview(user_id,channel,pitcher,stage,start,end,page,page_size,order_by,order) self.write_json(data=data,total=total,total_data=total_data) class ChannelAgainOrderTrend(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: args = self.get_args() print(args) channel = args.get("channel") date = args.get("date", self.get_n_days(-8)) if channel: data=get_channel_again_order_trend(channel,date) self.write_json(data) else: self.write_json([]) class ChannelActive(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: args = self.get_args() print(args) user_id = args.get('user_id') pitcher=args.get("pitcher") channel = args.get("channel") start = args.get("start",self.thisday) end = args.get("end") page = args.get("page", 1) page_size = args.get("page_size", 10) order_by = args.get("order_by", 'date') order = args.get("order", 'desc') data,total=get_channel_active(user_id,channel,pitcher,start,end,page,page_size,order_by,order) self.write_json(data=data,total=total) class ChannelOrderTrend(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: arg = self.get_args() print(arg) user_id =arg.get('user_id') pitcher=arg.get("pitcher") channel = arg.get("channel") start = arg.get("start",self.thisday) end = arg.get("end") page = arg.get("page", 1) page_size = arg.get("page_size", 10) order_by = arg.get("order_by", 'date') order = arg.get("order", 'desc') data,total,total_data=get_channel_order_trend(user_id,channel,pitcher,start,end,page,page_size,order_by,order) self.write_json(data=data,total=total,total_data=total_data) class ChannelSummary(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: arg = self.get_args() print(arg) user_id = arg.get('user_id') channel = arg.get('channel') pitcher = arg.get('pitcher') page = arg.get("page") page_size = arg.get("page_size") location = arg.get('location') order_by = arg.get("order_by", 'total_cost') order = arg.get("order", 'desc') state = arg.get("state") start = arg.get("start",self.get_n_days(-7)) end = arg.get("end") data, total, total_data = get_channel_summary(user_id,channel, pitcher, page, page_size, order_by, order, state, location,start,end) if arg.get("download"): self.write_download("channel_"+str(int(time.time())), data) else: self.write_json(data=data, total=total, total_data=total_data) class PitcherTrend(BaseHandler): def post(self): if not self._au: self.write_fail(msg='auth error') else: arg = self.get_args() print(arg) pitcher=arg.get('pitcher') start=arg.get("start",self.get_n_days(-29)) end=arg.get("end") date_range=arg.get("date_range") page = arg.get("page") page_size = arg.get("page_size") order_by = arg.get("order_by", 'dt') order = arg.get("order", 'desc') if date_range: end=du.get_n_days(0) start=du.get_n_days(-int(date_range)+1) data,total,total_data=get_pitcher_trend(pitcher,start,end,page,page_size,order_by,order) self.write_json(data=data,total=total,total_data=total_data)