PublicAnalysisHandler.py 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  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, order)
  45. self.write_json(data=data, total=total, total_data=total_data)
  46. class BookOverview(BaseHandler):
  47. def post(self):
  48. if not self._au:
  49. self.write_fail(msg='auth error')
  50. else:
  51. arg = self.get_args()
  52. print(arg)
  53. start = arg.get("start")
  54. end = arg.get("end", )
  55. book = arg.get("book")
  56. type = arg.get("type")
  57. page = arg.get("page")
  58. date_range = arg.get("date_range")
  59. page_size = arg.get("page_size")
  60. order_by = arg.get("order_by", 'cost')
  61. order = arg.get("order", 'desc')
  62. if date_range:
  63. end = self.get_n_days(0)
  64. start = self.get_n_days(-int(date_range) + 1)
  65. data, total = book_overview(start, end, book, type, page, page_size, order_by, order)
  66. if arg.get("download"):
  67. self.write_download(str(int(time.time())), data)
  68. self.write_json(data=data, total=total)
  69. class PitcherOverview(BaseHandler):
  70. def post(self):
  71. if not self._au:
  72. self.write_fail(msg='auth error')
  73. else:
  74. arg = self.get_args()
  75. print(arg)
  76. user_id = arg.get('user_id')
  77. if user_id:
  78. start = arg.get("start")
  79. end = arg.get("end")
  80. page = arg.get("page")
  81. page_size = arg.get("page_size")
  82. order_by = arg.get("order_by", 'cost')
  83. order = arg.get("order", 'desc')
  84. pitcher = arg.get("pitcher")
  85. data, total = pitcher_overview(user_id, start, end, pitcher, page, page_size, order_by, order)
  86. if arg.get("download"):
  87. self.write_download(str(int(time.time())), data)
  88. self.write_json(data=data, total=total)
  89. else:
  90. self.write_fail(msg='user_id not found')
  91. class BossPanelSummary(BaseHandler):
  92. def post(self):
  93. if not self._au:
  94. self.write_fail(msg='auth error')
  95. else:
  96. arg = self.get_args()
  97. print(arg)
  98. user_id = arg.get("user_id")
  99. start = arg.get("start", self.get_n_days(-30))
  100. end = arg.get("end")
  101. page = arg.get("page")
  102. page_size = arg.get("page_size")
  103. order_by = arg.get("order_by", 'dt')
  104. order = arg.get("order", 'desc')
  105. pitcher = arg.get("pitcher")
  106. type = arg.get("type")
  107. stage = arg.get("stage")
  108. channel = arg.get("channel")
  109. download = arg.get("download")
  110. data, total = boss_panel_summary(user_id, start, end, channel, pitcher, type,
  111. stage, page, page_size, order_by, order)
  112. if download:
  113. self.write_download(str(int(time.time())), data)
  114. self.write_json(data=data, total=total)
  115. class ImageRank(BaseHandler):
  116. def post(self):
  117. if not self._au:
  118. self.write_fail(msg='auth error')
  119. else:
  120. arg = self.get_args()
  121. start = arg.get("start")
  122. end = arg.get("end")
  123. page = arg.get("page", 1)
  124. page_size = arg.get("page_size", 10)
  125. order_by = arg.get("order_by", 'cost')
  126. order = arg.get("order", 'desc')
  127. type = arg.get("type")
  128. book = arg.get('book')
  129. data, total = image_rank(start, end, type, book, page, page_size, order_by, order)
  130. self.write_json(data=data, total=total)
  131. """素材排行榜"""
  132. class AdvertisementRank(BaseHandler):
  133. def post(self):
  134. if not self._au:
  135. self.write_fail(msg='auth error')
  136. else:
  137. du = DateUtils()
  138. arg = self.get_args()
  139. user_id = arg.get('user_id')
  140. start = arg.get("start", du.getNow())
  141. end = arg.get("end")
  142. page = arg.get("page", 1)
  143. page_size = arg.get("page_size")
  144. order_by = arg.get("order_by", 'cost')
  145. order = arg.get("order", 'desc')
  146. type = arg.get("type")
  147. book = arg.get("book")
  148. channel = arg.get('channel')
  149. pitcher = arg.get('pitcher')
  150. has_order = arg.get("has_order")
  151. is_video = arg.get('is_video')
  152. data, total, total_data = advertisement_rank(user_id, start, end, type, page, page_size, order, order_by,
  153. book, channel, pitcher, has_order, is_video)
  154. self.write_json(data=data, total=total, total_data=total_data)