PublicAnalysisHandler.py 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. from handlers.HandlerBase import BaseHandler
  2. from model.log import logger
  3. from data_manage.public_analysis import *
  4. import time
  5. from model.DateUtils import DateUtils
  6. from data_manage.operate import get_user_name_by_id
  7. log = logger()
  8. class BookRank(BaseHandler):
  9. def post(self):
  10. if not self._au:
  11. self.write_fail(msg='auth error')
  12. else:
  13. arg = self.get_args()
  14. print(arg)
  15. start = arg.get("start", self.thisday)
  16. end = arg.get("end", self.thisday)
  17. book = arg.get("book")
  18. stage = arg.get("stage")
  19. type = arg.get("type")
  20. page = arg.get("page", 1)
  21. page_size = arg.get("page_size", 30)
  22. order_by = arg.get("order_by", 'cost')
  23. order = arg.get("order", 'desc')
  24. data, total = book_rank(start, end, book, stage, type, page, page_size, order_by, order)
  25. self.write_json(data=data, total=total)
  26. class BookTrend(BaseHandler):
  27. def post(self):
  28. if not self._au:
  29. self.write_fail(msg='auth error')
  30. else:
  31. arg = self.get_args()
  32. print(arg)
  33. start = arg.get("start", self.get_n_days(-29))
  34. end = arg.get("end", )
  35. date_range = arg.get("date_range")
  36. book = arg.get("book")
  37. book_type = arg.get("type")
  38. platform = arg.get("platform")
  39. page = arg.get("page", 1)
  40. page_size = arg.get("page_size", 30)
  41. order_by = arg.get("order_by", 'dt')
  42. order = arg.get("order", 'desc')
  43. if date_range:
  44. end = self.get_n_days(0)
  45. start = self.get_n_days(-int(date_range) + 1)
  46. data, total, total_data = book_trend(start, end, book, book_type, platform, page, page_size, order_by,
  47. order)
  48. self.write_json(data=data, total=total, total_data=total_data)
  49. class BookOverview(BaseHandler):
  50. def post(self):
  51. if not self._au:
  52. self.write_fail(msg='auth error')
  53. else:
  54. arg = self.get_args()
  55. print(arg)
  56. start = arg.get("start")
  57. end = arg.get("end", )
  58. book = arg.get("book")
  59. type = arg.get("type")
  60. page = arg.get("page")
  61. date_range = arg.get("date_range")
  62. page_size = arg.get("page_size")
  63. order_by = arg.get("order_by", 'cost')
  64. order = arg.get("order", 'desc')
  65. if date_range:
  66. end = self.get_n_days(0)
  67. start = self.get_n_days(-int(date_range) + 1)
  68. data, total = book_overview(start, end, book, type, page, page_size, order_by, order)
  69. if arg.get("download"):
  70. self.write_download(str(int(time.time())), data)
  71. self.write_json(data=data, total=total)
  72. class PitcherOverview(BaseHandler):
  73. def post(self):
  74. if not self._au:
  75. self.write_fail(msg='auth error')
  76. else:
  77. arg = self.get_args()
  78. print(arg)
  79. user_id = arg.get('user_id')
  80. if user_id:
  81. start = arg.get("start")
  82. end = arg.get("end")
  83. page = arg.get("page")
  84. page_size = arg.get("page_size")
  85. order_by = arg.get("order_by", 'cost')
  86. order = arg.get("order", 'desc')
  87. pitcher = arg.get("pitcher")
  88. data, total = pitcher_overview(user_id, start, end, pitcher, page, page_size, order_by, order)
  89. if arg.get("download"):
  90. self.write_download(str(int(time.time())), data)
  91. self.write_json(data=data, total=total)
  92. else:
  93. self.write_fail(msg='user_id not found')
  94. class BossPanelSummary(BaseHandler):
  95. def post(self):
  96. if not self._au:
  97. self.write_fail(msg='auth error')
  98. else:
  99. arg = self.get_args()
  100. print(arg)
  101. user_id = arg.get("user_id")
  102. start = arg.get("start", self.get_n_days(-30))
  103. end = arg.get("end")
  104. page = arg.get("page")
  105. page_size = arg.get("page_size")
  106. order_by = arg.get("order_by", 'dt')
  107. order = arg.get("order", 'desc')
  108. pitcher = arg.get("pitcher")
  109. type = arg.get("type")
  110. stage = arg.get("stage")
  111. channel = arg.get("channel")
  112. download = arg.get("download")
  113. data, total = boss_panel_summary(user_id, start, end, channel, pitcher, type,
  114. stage, page, page_size, order_by, order)
  115. if download:
  116. self.write_download(str(int(time.time())), data)
  117. self.write_json(data=data, total=total)
  118. class ImageRank(BaseHandler):
  119. def post(self):
  120. if not self._au:
  121. self.write_fail(msg='auth error')
  122. else:
  123. arg = self.get_args()
  124. start = arg.get("start")
  125. end = arg.get("end")
  126. page = arg.get("page", 1)
  127. page_size = arg.get("page_size", 10)
  128. order_by = arg.get("order_by", 'cost')
  129. order = arg.get("order", 'desc')
  130. type = arg.get("type")
  131. book = arg.get('book')
  132. data, total = image_rank(start, end, type, book, page, page_size, order_by, order)
  133. self.write_json(data=data, total=total)
  134. """素材排行榜"""
  135. class AdvertisementRank(BaseHandler):
  136. def post(self):
  137. if not self._au:
  138. self.write_fial(msg='auth error')
  139. else:
  140. du = DateUtils()
  141. arg = self.get_args()
  142. show_type = arg.get('show_type', 'public') # 展示 public private,默认public----public 会展示大于5000以上的数据,超过5天的数据
  143. user_id = arg.get('user_id')
  144. start = arg.get("start", du.getNow())
  145. end = arg.get("end")
  146. page = arg.get("page", 1)
  147. page_size = arg.get("page_size")
  148. order_by = arg.get("order_by", 'cost')
  149. order = arg.get("order", 'desc')
  150. type = arg.get("type")
  151. book = arg.get("book")
  152. channel = arg.get('channel')
  153. pitcher = arg.get('pitcher')
  154. has_order = arg.get("has_order")
  155. is_video = arg.get('is_video')
  156. data, total, total_data = advertisement_rank(user_id, start, end, type, page, page_size, order, order_by,
  157. book, channel, pitcher, has_order, is_video, show_type)
  158. self.write_json(data=data, total=total, total_data=total_data)