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