ck 4 anos atrás
pai
commit
cbcae33213
4 arquivos alterados com 46 adições e 4 exclusões
  1. 2 1
      config/config.py
  2. 21 2
      data_manage/public_analysis.py
  3. 18 1
      handlers/PublicAnalysisHandler.py
  4. 5 0
      urls.py

+ 2 - 1
config/config.py

@@ -1 +1,2 @@
-port = 8008
+port = 8008
+auth = False

+ 21 - 2
data_manage/public_analysis.py

@@ -385,9 +385,28 @@ def boss_panel_summary(start,end,pitcher, type, stage, page, page_size, order_by
 
     dm = MysqlUtils().dm
 
-    sql=f"""select sum(order_amount) order_amount,sum(cost) cost,dt from dw_channel 
+    sql=f"""select sum(order_amount) order_amount,sum(cost) cost,dt from dw_channel                                                                                                                                                                                                                                                                                                                                             
     where 1=1 {op1} {op2} {op3} {op4} {op5}
     GROUP BY dt HAVING order_amount+cost>0 {op6} """
     # print(sql)
 
-    return getLimitData(dm, sql, page, page_size)
+    return getLimitData(dm, sql, page, page_size)
+
+
+def image_rank(start, end, type,book, page, page_size, order_by, order):
+    op1 = f" and book='{book}' " if book else ''
+    op2 = f" and dt>='{start}' " if start else ''
+    op3 = f" and dt<='{end}' " if end else ''
+    op4 = f" and type='{type}' " if type else ''
+    op5 = f" order by {order_by} {order}" if order_by and order else 'order by dt desc'
+
+    db = MysqlUtils().quchen_text
+
+    sql =f"""select image_id,preview_url,
+            sum(cost),
+            round(sum(click_count)/sum(view_count),4) ctr,
+            round(sum(cost)/sum(click_count),2) cpc
+            from dm_image_cost_day where 1=1 {op1} {op2} {op3} {op4} GROUP BY image_id,preview_url 
+            {op5} """
+
+    return getLimitData(db, sql, page, page_size)

+ 18 - 1
handlers/PublicAnalysisHandler.py

@@ -129,4 +129,21 @@ class BossPanelSummary(BaseHandler):
                                              stage, page, page_size, order_by, order)
             if download:
                 self.write_download(str(int(time.time())), data)
-            self.write_json(data=data, total=total)
+            self.write_json(data=data, total=total)
+
+class ImageRank(BaseHandler):
+    def post(self):
+        if not self._au:
+            self.write_fail(msg='auth error')
+        else:
+            arg = self.get_args()
+            start = arg.get("start")
+            end = arg.get("end")
+            page = arg.get("page",1)
+            page_size = arg.get("page_size",10)
+            order_by = arg.get("order_by",'cost')
+            order = arg.get("order",'desc')
+            type = arg.get("type")
+            book = arg.get('book')
+            data, total = image_rank(start, end, type,book, page, page_size, order_by, order)
+            self.write_json(data=data, total=total)

+ 5 - 0
urls.py

@@ -21,10 +21,15 @@ urls = [
     (r'/data/book/overview', BookOverview),  # 小说总数据
     (r'/data/pitcher/overview', PitcherOverview),  # 投手总数据
 
+    (r'/data/image/rank', ImageRank),  # 图片消耗排行
+
+
     # 整体分析
     (r'/data/boss_panel/summary', BossPanelSummary),  # 整体概况图
 
 
+
+
     # 主动刷新任务
     (r'/task/src_book_info', SrcBookInfo),  # 刷新书籍卡点