PublicAnalysisHandler.py 6.5 KB

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