PublicAnalysisHandler.py 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  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. page = arg.get('pageNum', 1)
  169. page_size = arg.get('pageSize', 20)
  170. order = 'desc' if arg.get('upOrder') else 'asc' #
  171. order_by = arg.get('sortRule') # clicktimes,view_times,consume_amount,click_rate---------数据进行一一对应
  172. start = arg.get('beginDate', du.getNow())
  173. end = arg.get('endDate')
  174. book = arg.get('novels')
  175. is_video = arg.get('type')
  176. is_singleimg = arg.get('singleImg', True) # 是否是组图-----默认是没有
  177. user_id = arg.get('userId')
  178. campaign_ids = arg.get('campaignIds')
  179. data = idea_rank(user_id, start, end, page, page_size, order, order_by,
  180. book, channel, is_singleimg, is_video, data_type, campaign_ids)
  181. self.write_json_tmp_java(data=data)
  182. class AdvertisementMedia(BaseHandler):
  183. def post(self):
  184. if not self._au:
  185. self.write_fail(msg='auth error')
  186. else:
  187. du = DateUtils()
  188. arg = self.get_args()
  189. data_type = arg.get('dataType', 'all') # 数据是否是个人,个人是private,共有是all
  190. channel = arg.get('channel') # 渠道-----朋友圈信息流,抖音,广点通等等,,,,,,选项朋友圈信息流,公众平台流量,先#TODO:先暂时放置
  191. page = arg.get('pageNum', 1)
  192. page_size = arg.get('pageSize', 20)
  193. order = 'desc' if arg.get('upOrder') else 'asc' #
  194. order_by = arg.get('sortRule') # clicktimes,view_times,consume_amount,click_rate---------数据进行一一对应
  195. start = arg.get('beginDate', du.getNow())
  196. end = arg.get('endDate')
  197. book = arg.get('novels')
  198. is_video = arg.get('type')
  199. is_singleimg = arg.get('singleImg', True) # 是否是组图-----默认是没有
  200. user_id = arg.get('userId')
  201. campaign_ids = arg.get('campaignIds')
  202. data = media_rank(user_id, start, end, page, page_size, order, order_by,
  203. book, channel, is_singleimg, is_video, data_type, campaign_ids)
  204. self.write_json_tmp_java(data=data)
  205. class AdvertisementContent(BaseHandler):
  206. def post(self):
  207. if not self._au:
  208. self.write_fail(msg='auth error')
  209. else:
  210. du = DateUtils()
  211. arg = self.get_args()
  212. data_type = arg.get('dataType', 'all') # 数据是否是个人,个人是private,共有是all
  213. channel = arg.get('channel') # 渠道-----朋友圈信息流,抖音,广点通等等,,,,,,选项朋友圈信息流,公众平台流量,先#TODO:先暂时放置
  214. page = arg.get('pageNum', 1)
  215. page_size = arg.get('pageSize', 20)
  216. order = 'desc' if arg.get('upOrder') else 'asc' #
  217. order_by = arg.get('sortRule') # clicktimes,view_times,consume_amount,click_rate---------数据进行一一对应
  218. start = arg.get('beginDate', du.getNow())
  219. end = arg.get('endDate')
  220. book = arg.get('novels')
  221. is_video = arg.get('type')
  222. is_singleimg = arg.get('singleImg', True) # 是否是组图-----默认是没有
  223. user_id = arg.get('userId')
  224. campaign_ids = arg.get('campaignIds')
  225. data = content_rank(user_id, start, end, page, page_size, order, order_by,
  226. book, channel, is_singleimg, is_video, data_type, campaign_ids)
  227. self.write_json_tmp_java(data=data)
  228. class LabelList(BaseHandler):
  229. def get(self):
  230. page = 1
  231. page_size = 1000
  232. data = label_list(page, page_size)
  233. self.write_json_tmp_java(data=data)
  234. class LabelAdd(BaseHandler):
  235. def post(self):
  236. arg = self.get_args()
  237. label = arg.get('label')
  238. user_id = arg.get('userId')
  239. data = label_add(label, user_id)
  240. self.write_json_tmp_java(data=data)
  241. class LabelUpdate(BaseHandler):
  242. def post(self):
  243. pass
  244. class LabelDel(BaseHandler):
  245. def post(self):
  246. arg = self.get_args()
  247. label_id = arg.get('id')
  248. user_id = arg.get('userId')
  249. data = label_del(label_id, user_id)
  250. self.write_json_tmp_java(data=data)