PitcherPanelHandler.py 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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. from data_manage.operate import get_user_name_by_id
  8. log = logger()
  9. class PitcherPanelChannel(BaseHandler):
  10. def post(self):
  11. if not self._au:
  12. self.write_fail(msg='auth error')
  13. else:
  14. args = self.get_args()
  15. print(args)
  16. pitcher = args.get("pitcher")
  17. channel = args.get("channel")
  18. start = args.get("start", self.get_n_days(0))
  19. end = args.get("end", self.get_n_days(0))
  20. page = args.get("page")
  21. page_size = args.get("page_size")
  22. order_by = args.get("order_by", 'cost')
  23. order = args.get("order", 'desc')
  24. data_range = args.get('date_range')
  25. if data_range:
  26. end = self.get_n_days(0)
  27. start = self.get_n_days(-int(args['date_range']) + 1)
  28. data, total = get_pitcher_panel_channel(pitcher, channel, start, end, page, page_size, order_by, order)
  29. self.write_json(data=data, total=total)
  30. class PitcherPanelDaily(BaseHandler):
  31. def post(self):
  32. if not self._au:
  33. self.write_fail(msg='auth error')
  34. else:
  35. args = self.get_args()
  36. print(args)
  37. user_id = args.get('user_id')
  38. pitcher = args.get("pitcher", get_user_name_by_id(user_id))
  39. start = args.get("start", self.get_n_days(-7))
  40. end = args.get("end")
  41. page = args.get("page")
  42. page_size = args.get("page_size")
  43. order_by = args.get("order_by", 'date')
  44. order = args.get("order", 'desc')
  45. data, total, total_data = get_pitcher_panel_daily(pitcher, start, end, page, page_size, order_by, order)
  46. self.write_json(data=data, total=total, total_data=total_data)
  47. class PitcherPanelOverview(BaseHandler):
  48. def post(self):
  49. if not self._au:
  50. self.write_fail(msg='auth error')
  51. else:
  52. args = self.get_args()
  53. user_id = args.get("user_id")
  54. pitcher = args.get("pitcher", get_user_name_by_id(user_id))
  55. data = get_pitcher_panel_overview(pitcher)
  56. self.write_json(data)
  57. class ChannelOverview(BaseHandler):
  58. def post(self):
  59. if not self._au:
  60. self.write_fail(msg='auth error')
  61. else:
  62. args = self.get_args()
  63. user_id = args.get('user_id')
  64. channel = args.get("channel")
  65. pitcher = args.get("pitcher")
  66. start = args.get("start", self.thisday)
  67. end = args.get("end")
  68. stage = args.get("stage")
  69. page = args.get("page")
  70. book = args.get('book')
  71. page_size = args.get("page_size")
  72. order_by = args.get("order_by", 'date')
  73. order = args.get("order", 'desc')
  74. data, total, total_data = get_channel_overview(user_id, channel, pitcher, stage, book, start, end, page,
  75. page_size, order_by, order)
  76. if args.get("download"):
  77. self.write_download(str(int(time.time())), data)
  78. else:
  79. self.write_json(data=data, total=total, total_data=total_data)
  80. class ChannelAgainOrderTrend(BaseHandler):
  81. def post(self):
  82. if not self._au:
  83. self.write_fail(msg='auth error')
  84. else:
  85. args = self.get_args()
  86. print(args)
  87. channel = args.get("channel")
  88. date = args.get("date", self.get_n_days(-8))
  89. if channel:
  90. data = get_channel_again_order_trend(channel, date)
  91. self.write_json(data)
  92. else:
  93. self.write_json([])
  94. class ChannelActive(BaseHandler):
  95. def post(self):
  96. if not self._au:
  97. self.write_fail(msg='auth error')
  98. else:
  99. args = self.get_args()
  100. print(args)
  101. user_id = args.get('user_id')
  102. pitcher = args.get("pitcher")
  103. channel = args.get("channel")
  104. start = args.get("start", self.thisday)
  105. end = args.get("end")
  106. page = args.get("page", 1)
  107. page_size = args.get("page_size", 10)
  108. order_by = args.get("order_by", 'date')
  109. order = args.get("order", 'desc')
  110. data, total = get_channel_active(user_id, channel, pitcher, start, end, page, page_size, order_by, order)
  111. self.write_json(data=data, total=total)
  112. class ChannelOrderTrend(BaseHandler):
  113. def post(self):
  114. if not self._au:
  115. self.write_fail(msg='auth error')
  116. else:
  117. arg = self.get_args()
  118. print(arg)
  119. user_id = arg.get('user_id')
  120. pitcher = arg.get("pitcher")
  121. channel = arg.get("channel")
  122. start = arg.get("start", self.get_n_days(-30)) if channel else arg.get("start", self.thisday)
  123. end = arg.get("end")
  124. page = arg.get("page")
  125. page_size = arg.get("page_size")
  126. order_by = arg.get("order_by", 'date')
  127. order = arg.get("order", 'desc')
  128. data, total, total_data = get_channel_order_trend(user_id, channel, pitcher, start, end, page, page_size,
  129. order_by, order)
  130. if arg.get("download"):
  131. self.write_download("channelTrend_" + str(int(time.time())), data)
  132. else:
  133. self.write_json(data=data, total=total, total_data=total_data)
  134. class ChannelSummary(BaseHandler):
  135. def post(self):
  136. if not self._au:
  137. self.write_fail(msg='auth error')
  138. else:
  139. arg = self.get_args()
  140. print(arg)
  141. user_id = arg.get('user_id')
  142. channel = arg.get('channel')
  143. pitcher = arg.get('pitcher')
  144. page = arg.get("page")
  145. page_size = arg.get("page_size")
  146. location = arg.get('location')
  147. order_by = arg.get("order_by", 'total_cost')
  148. order = arg.get("order", 'desc')
  149. state = arg.get("state")
  150. start = arg.get("start")
  151. end = arg.get("end")
  152. data, total, total_data = get_channel_summary(user_id, channel, pitcher, page, page_size, order_by, order,
  153. state, location, start, end)
  154. if arg.get("download"):
  155. self.write_download("channel_" + str(int(time.time())), data)
  156. else:
  157. self.write_json(data=data, total=total, total_data=total_data)
  158. class ChannelPitcherSummary(BaseHandler):
  159. def post(self):
  160. if not self._au:
  161. self.write_fail(msg='auth error')
  162. else:
  163. arg = self.get_args()
  164. print(arg)
  165. user_id = arg.get('user_id')
  166. channel = arg.get('channel')
  167. pitcher = arg.get('pitcher')
  168. page = arg.get("page")
  169. page_size = arg.get("page_size")
  170. location = arg.get('location')
  171. order_by = arg.get("order_by", 'total_cost')
  172. order = arg.get("order", 'desc')
  173. state = arg.get("state")
  174. start = arg.get("start")
  175. end = arg.get("end")
  176. data, total, total_data = get_pitcher_channel_summary(user_id, channel, pitcher, page, page_size, order_by,
  177. order, state, location, start, end)
  178. if arg.get("download"):
  179. self.write_download("channel_" + str(int(time.time())), data)
  180. else:
  181. self.write_json(data=data, total=total, total_data=total_data)
  182. class PitcherTrend(BaseHandler):
  183. def post(self):
  184. if not self._au:
  185. self.write_fail(msg='auth error')
  186. else:
  187. arg = self.get_args()
  188. print(arg)
  189. user_id = arg.get('user_id')
  190. if user_id:
  191. pitcher = arg.get('pitcher', get_user_name_by_id(user_id))
  192. start = arg.get("start", self.thisday)
  193. end = arg.get("end")
  194. page = arg.get("page")
  195. page_size = arg.get("page_size")
  196. order_by = arg.get("order_by", 'dt')
  197. order = arg.get("order", 'desc')
  198. data, total, total_data = get_pitcher_trend(pitcher, start, end, page, page_size, order_by, order)
  199. self.write_json(data=data, total=total, total_data=total_data)
  200. else:
  201. self.write_fail(msg='user_id not found')