from handlers.HandlerBase import BaseHandler from model.log import logger from data_manage.pitcher_panel import * import time import pandas as pd import json from data_manage.operate import get_user_name_by_id 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) user_id = args.get('user_id') pitcher = args.get("pitcher",get_user_name_by_id(user_id)) start = args.get("start",self.get_n_days(-7)) 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') 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() user_id = args.get("user_id") pitcher = args.get("pitcher",get_user_name_by_id(user_id)) 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) user_id = arg.get('user_id') if user_id: pitcher=arg.get('pitcher',get_user_name_by_id(user_id)) start=arg.get("start",self.thisday) end=arg.get("end") page = arg.get("page") page_size = arg.get("page_size") order_by = arg.get("order_by", 'dt') order = arg.get("order", 'desc') 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) else: self.write_fail(msg='user_id not found')