PublicAnalysisHandler.py 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. from handlers.HandlerBase import BaseHandler
  2. from data_manage.public_analysis import *
  3. import time
  4. import json
  5. from model.DateUtils import DateUtils
  6. log = logger()
  7. class BookRank(BaseHandler):
  8. def post(self):
  9. if not self._au:
  10. self.write_fail(msg='auth error')
  11. else:
  12. arg = self.get_args()
  13. print(arg)
  14. start = arg.get("start", self.thisday)
  15. end = arg.get("end", self.thisday)
  16. book = arg.get("book")
  17. stage = arg.get("stage")
  18. type = arg.get("type")
  19. page = arg.get("page", 1)
  20. page_size = arg.get("page_size", 30)
  21. order_by = arg.get("order_by", 'cost')
  22. order = arg.get("order", 'desc')
  23. data, total = book_rank(start, end, book, stage, type, page, page_size, order_by, order)
  24. self.write_json(data=data, total=total)
  25. class BookTrend(BaseHandler):
  26. def post(self):
  27. if not self._au:
  28. self.write_fail(msg='auth error')
  29. else:
  30. arg = self.get_args()
  31. print(arg)
  32. start = arg.get("start", self.get_n_days(-29))
  33. end = arg.get("end", )
  34. date_range = arg.get("date_range")
  35. book = arg.get("book")
  36. book_type = arg.get("type")
  37. platform = arg.get("platform")
  38. page = arg.get("page", 1)
  39. page_size = arg.get("page_size", 30)
  40. order_by = arg.get("order_by", 'dt')
  41. order = arg.get("order", 'desc')
  42. if date_range:
  43. end = self.get_n_days(0)
  44. start = self.get_n_days(-int(date_range) + 1)
  45. data, total, total_data = book_trend(start, end, book, book_type, platform, page, page_size, order_by,
  46. order)
  47. self.write_json(data=data, total=total, total_data=total_data)
  48. class BookOverview(BaseHandler):
  49. def post(self):
  50. if not self._au:
  51. self.write_fail(msg='auth error')
  52. else:
  53. arg = self.get_args()
  54. print(arg)
  55. start = arg.get("start")
  56. end = arg.get("end", )
  57. book = arg.get("book")
  58. type = arg.get("type")
  59. page = arg.get("page")
  60. date_range = arg.get("date_range")
  61. page_size = arg.get("page_size")
  62. order_by = arg.get("order_by", 'cost')
  63. order = arg.get("order", 'desc')
  64. if date_range:
  65. end = self.get_n_days(0)
  66. start = self.get_n_days(-int(date_range) + 1)
  67. data, total = book_overview(start, end, book, type, page, page_size, order_by, order)
  68. if arg.get("download"):
  69. self.write_download(str(int(time.time())), data)
  70. self.write_json(data=data, total=total)
  71. class PitcherOverview(BaseHandler):
  72. def post(self):
  73. if not self._au:
  74. self.write_fail(msg='auth error')
  75. else:
  76. arg = self.get_args()
  77. print(arg)
  78. user_id = arg.get('user_id')
  79. if user_id:
  80. start = arg.get("start")
  81. end = arg.get("end")
  82. page = arg.get("page")
  83. page_size = arg.get("page_size")
  84. order_by = arg.get("order_by", 'cost')
  85. order = arg.get("order", 'desc')
  86. pitcher = arg.get("pitcher")
  87. data, total = pitcher_overview(user_id, start, end, pitcher, page, page_size, order_by, order)
  88. if arg.get("download"):
  89. self.write_download(str(int(time.time())), data)
  90. self.write_json(data=data, total=total)
  91. else:
  92. self.write_fail(msg='user_id not found')
  93. class BossPanelSummary(BaseHandler):
  94. def post(self):
  95. if not self._au:
  96. self.write_fail(msg='auth error')
  97. else:
  98. arg = self.get_args()
  99. print(arg)
  100. user_id = arg.get("user_id")
  101. start = arg.get("start", self.get_n_days(-30))
  102. end = arg.get("end")
  103. page = arg.get("page")
  104. page_size = arg.get("page_size")
  105. order_by = arg.get("order_by", 'dt')
  106. order = arg.get("order", 'desc')
  107. pitcher = arg.get("pitcher")
  108. type = arg.get("type")
  109. stage = arg.get("stage")
  110. channel = arg.get("channel")
  111. download = arg.get("download")
  112. data, total = boss_panel_summary(user_id, start, end, channel, pitcher, type,
  113. stage, page, page_size, order_by, order)
  114. if download:
  115. self.write_download(str(int(time.time())), data)
  116. self.write_json(data=data, total=total)
  117. class ImageRank(BaseHandler):
  118. def post(self):
  119. if not self._au:
  120. self.write_fail(msg='auth error')
  121. else:
  122. arg = self.get_args()
  123. start = arg.get("start")
  124. end = arg.get("end")
  125. page = arg.get("page", 1)
  126. page_size = arg.get("page_size", 10)
  127. order_by = arg.get("order_by", 'cost')
  128. order = arg.get("order", 'desc')
  129. type = arg.get("type")
  130. book = arg.get('book')
  131. data, total = image_rank(start, end, type, book, page, page_size, order_by, order)
  132. self.write_json(data=data, total=total)
  133. """素材排行榜"""
  134. class AdvertisementRank(BaseHandler):
  135. def post(self):
  136. if not self._au:
  137. self.write_fail(msg='auth error')
  138. else:
  139. du = DateUtils()
  140. arg = self.get_args()
  141. show_type = arg.get('show_type', 'public') # 展示 public private,默认public----public 会展示大于5000以上的数据,超过5天的数据
  142. user_id = arg.get('user_id')
  143. start = arg.get("start", du.getNow())
  144. end = arg.get("end")
  145. page = arg.get("page", 1)
  146. page_size = arg.get("page_size")
  147. order_by = arg.get("order_by", 'cost')
  148. order = arg.get("order", 'desc')
  149. type = arg.get("type")
  150. book = arg.get("book")
  151. channel = arg.get('channel')
  152. pitcher = arg.get('pitcher')
  153. has_order = arg.get("has_order")
  154. is_video = arg.get('is_video')
  155. data, total, total_data = advertisement_rank(user_id, start, end, type, page, page_size, order, order_by,
  156. book, channel, pitcher, has_order, is_video, show_type)
  157. self.write_json(data=data, total=total, total_data=total_data)
  158. """素材创意"""
  159. class AdvertisementIdea(BaseHandler):
  160. def post(self):
  161. if not self._au:
  162. self.write_fail(msg='auth error')
  163. else:
  164. du = DateUtils()
  165. arg = self.get_args()
  166. data_type = arg.get('dataType', 'all') # 数据是否是个人,个人是private,共有是all
  167. channel = arg.get('channel') # 渠道-----朋友圈信息流,抖音,广点通等等,,,,,,选项朋友圈信息流,公众平台流量,先#TODO:先暂时放置
  168. labels = arg.get('labels') # 标签
  169. collect = arg.get('collect') # 是否用标签的数据
  170. page = arg.get('pageNum',1)
  171. page_size = arg.get('pageSize',20)
  172. order = 'desc' if arg.get('upOrder') else 'asc' #
  173. order_by = arg.get('sortRule') # clicktimes,view_times,consume_amount,click_rate---------数据进行一一对应
  174. start = arg.get('beginDate', du.getNow())
  175. end = arg.get('endDate')
  176. book = arg.get('novels')
  177. is_video = arg.get('type')
  178. is_singleimg = arg.get('singleImg') # 是否是组图-----默认是没有
  179. user_id = arg.get('userId', '192') # TODO:测试默认192
  180. data= idea_rank(user_id, start, end, page, page_size, order, order_by,
  181. book, channel, is_singleimg, is_video, labels, collect, data_type)
  182. self.write_json_tmp_java(data=data)