PitcherPanelHandler.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. from handlers.HandlerBase import BaseHandler
  2. from model.log import logger
  3. from data_manage.pitcher_panel import *
  4. import time
  5. import pandas as pd
  6. import json
  7. log = logger()
  8. class PitcherPanelChannel(BaseHandler):
  9. def post(self):
  10. if not self._au:
  11. self.write_fail(msg='auth error')
  12. else:
  13. args = self.get_args()
  14. print(args)
  15. pitcher = args.get("pitcher")
  16. channel = args.get("channel")
  17. start = args.get("start", self.get_n_days(0))
  18. end = args.get("end", self.get_n_days(0))
  19. page = args.get("page")
  20. page_size = args.get("page_size")
  21. order_by=args.get("order_by",'cost')
  22. order=args.get("order", 'desc')
  23. data_range=args.get('date_range')
  24. if data_range:
  25. end = self.get_n_days(0)
  26. start = self.get_n_days(-int(args['date_range'])+1)
  27. data,total=get_pitcher_panel_channel(pitcher, channel, start, end, page, page_size, order_by, order)
  28. self.write_json(data=data,total=total)
  29. class PitcherPanelDaily(BaseHandler):
  30. def post(self):
  31. if not self._au:
  32. self.write_fail(msg='auth error')
  33. else:
  34. args=self.get_args()
  35. print(args)
  36. pitcher = args.get("pitcher")
  37. start = args.get("start")
  38. end = args.get("end")
  39. page = args.get("page")
  40. page_size = args.get("page_size")
  41. order_by = args.get("order_by", 'date')
  42. order = args.get("order", 'desc')
  43. if 'date_range' in list(args.keys()):
  44. end = self.get_n_days(0)
  45. start = self.get_n_days(-int(args['date_range'])+1)
  46. data,total,total_data = get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, order)
  47. self.write_json(data=data,total=total,total_data=total_data)
  48. class PitcherPanelOverview(BaseHandler):
  49. def post(self):
  50. if not self._au:
  51. self.write_fail(msg='auth error')
  52. else:
  53. args=self.get_args()
  54. pitcher = args.get("pitcher")
  55. data = get_pitcher_panel_overview(pitcher)
  56. self.write_json(data)
  57. class ChannelOverview(BaseHandler):
  58. def post(self):
  59. du =DateUtils()
  60. if not self._au:
  61. self.write_fail(msg='auth error')
  62. else:
  63. args=self.get_args()
  64. print(args)
  65. user_id =args.get('user_id')
  66. channel=args.get("channel")
  67. pitcher=args.get("pitcher")
  68. start=args.get("start",du.getNow())
  69. end=args.get("end")
  70. stage=args.get("stage")
  71. page = args.get("page", 1)
  72. page_size = args.get("page_size", 10)
  73. order_by = args.get("order_by", 'date')
  74. order = args.get("order", 'desc')
  75. data,total,total_data =get_channel_overview(user_id,channel,pitcher,stage,start,end,page,page_size,order_by,order)
  76. self.write_json(data=data,total=total,total_data=total_data)
  77. class ChannelAgainOrderTrend(BaseHandler):
  78. def post(self):
  79. if not self._au:
  80. self.write_fail(msg='auth error')
  81. else:
  82. args = self.get_args()
  83. print(args)
  84. pitcher=args.get("pitcher",'')
  85. channel = args.get("channel", '')
  86. date = args.get("date",self.get_n_days(-8))
  87. data=get_channel_again_order_trend(channel,date,pitcher)
  88. self.write_json(data)
  89. class ChannelActive(BaseHandler):
  90. def post(self):
  91. if not self._au:
  92. self.write_fail(msg='auth error')
  93. else:
  94. args = self.get_args()
  95. print(args)
  96. pitcher=args.get("pitcher")
  97. channel = args.get("channel")
  98. start = args.get("start",self.get_n_days(-29))
  99. end = args.get("end")
  100. page = args.get("page", 1)
  101. page_size = args.get("page_size", 10)
  102. order_by = args.get("order_by", 'date')
  103. order = args.get("order", 'desc')
  104. if 'date_range' in list(args.keys()):
  105. end = self.get_n_days(0)
  106. start = self.get_n_days(-int(args['date_range'])+1)
  107. data,total=get_channel_active(channel,pitcher,start,end,page,page_size,order_by,order)
  108. self.write_json(data=data,total=total)
  109. class ChannelOrderTrend(BaseHandler):
  110. def post(self):
  111. if not self._au:
  112. self.write_fail(msg='auth error')
  113. else:
  114. arg = self.get_args()
  115. print(arg)
  116. pitcher=arg.get("pitcher")
  117. channel = arg.get("channel")
  118. start = arg.get("start",self.get_n_days(-29))
  119. end = arg.get("end")
  120. page = arg.get("page", 1)
  121. page_size = arg.get("page_size", 10)
  122. order_by = arg.get("order_by", 'date')
  123. order = arg.get("order", 'desc')
  124. if 'date_range' in list(arg.keys()):
  125. end = self.get_n_days(0)
  126. start = self.get_n_days(-int(arg['date_range'])+1)
  127. data,total,total_data=get_channel_order_trend(channel,pitcher,start,end,page,page_size,order_by,order)
  128. self.write_json(data=data,total=total,total_data=total_data)
  129. class ChannelSummary(BaseHandler):
  130. def post(self):
  131. du = DateUtils()
  132. if not self._au:
  133. self.write_fail(msg='auth error')
  134. else:
  135. arg = self.get_args()
  136. print(arg)
  137. user_id = arg.get('user_id')
  138. channel = arg.get('channel')
  139. pitcher = arg.get('pitcher')
  140. page = arg.get("page")
  141. page_size = arg.get("page_size")
  142. location = arg.get('location')
  143. order_by = arg.get("order_by", 'total_cost')
  144. order = arg.get("order", 'desc')
  145. state = arg.get("state")
  146. start = arg.get("start",du.get_n_days(-7))
  147. end = arg.get("end")
  148. data, total, total_data = get_channel_summary(user_id,channel, pitcher, page, page_size, order_by, order, state, location,start,end)
  149. if arg.get("download"):
  150. self.write_download("channel_"+str(int(time.time())), data)
  151. else:
  152. self.write_json(data=data, total=total, total_data=total_data)
  153. class PitcherTrend(BaseHandler):
  154. def post(self):
  155. if not self._au:
  156. self.write_fail(msg='auth error')
  157. else:
  158. arg = self.get_args()
  159. print(arg)
  160. pitcher=arg.get('pitcher')
  161. start=arg.get("start",self.get_n_days(-29))
  162. end=arg.get("end")
  163. date_range=arg.get("date_range")
  164. page = arg.get("page")
  165. page_size = arg.get("page_size")
  166. order_by = arg.get("order_by", 'dt')
  167. order = arg.get("order", 'desc')
  168. if date_range:
  169. end=du.get_n_days(0)
  170. start=du.get_n_days(-int(date_range)+1)
  171. data,total,total_data=get_pitcher_trend(pitcher,start,end,page,page_size,order_by,order)
  172. self.write_json(data=data,total=total,total_data=total_data)