فهرست منبع

MOD:素材展示修改

cxyu 3 سال پیش
والد
کامیت
eb1098b741
4فایلهای تغییر یافته به همراه29 افزوده شده و 12 حذف شده
  1. 1 1
      ServerWrapper.py
  2. 21 6
      data_manage/public_analysis.py
  3. 1 1
      handlers/OperateHandler.py
  4. 6 4
      handlers/PublicAnalysisHandler.py

+ 1 - 1
ServerWrapper.py

@@ -25,7 +25,7 @@ class HttpServerWrapper(tornado.web.Application):
     def __init__(self, port=80,debug=True):
         self.port = port
         handlers = urls
-        #默认为开发环境,只有当dev输入时为生产环境
+        #  默认为开发环境,只有当dev输入时为生产环境
         auth = True if 'pro' in OptionParser().parse_command_line() and sys.argv[1] == '8008' else False
         if auth:
             print('生产环境,启动')

+ 21 - 6
data_manage/public_analysis.py

@@ -528,7 +528,8 @@ def image_rank(start, end, type, book, page, page_size, order_by, order):
 
 
 def advertisement_rank(user_id, start, end, type, page, page_size, order, order_by, book, channel, pitcher, has_order,
-                       is_video):
+                       is_video, show_type):
+    # TODO:修改为clickhouse来进行数据访问
     if user_id in super_auth():
         op1 = ''
     else:
@@ -538,18 +539,27 @@ def advertisement_rank(user_id, start, end, type, page, page_size, order, order_
         else:
             op1 = f" and pitcher in {str(user)}"
 
-    op2 = f" and dt>='{start}' " if start else ''
-    op3 = f" and dt<='{end}' " if end else ''
+
     op4 = f" and channel='{channel}'" if channel else ''
     op5 = f" and pitcher ='{pitcher}' " if pitcher else ''
     op8 = f" and type='{type}'" if type else ''
-    op9 = f" order by {order_by} {order}" if order_by and order else ''
     op10 = f" and book='{book}'" if book else ''
     op11 = f" and order_count>0" if has_order else ''
     op12 = f" and is_video" if is_video else ''
+    #公共数据,和素材库一样,个人只显示个人(小组)数据
+    op_or1 = f' or (dt<date_add(now(),interval -5 day) or cost>5000) ' if show_type == 'public' else ''
+    op_order = f" order by {order_by} {order}" if order_by and order else ''
+
+    # 时间为基底限制,必须遵守
+    op_time_bigger = f" and dt>='{start}' " if start else ''
+    op_time_small = f" and dt<='{end}' " if end else ''
+
     db = MysqlUtils().dm
 
-    sql = f"""select 
+    ck = CkUtils()
+
+    sql = f"""
+    select 
     row_number () over() as id,
     dt,stage,platform,book,`type`, cost,channel,pitcher,
     view_count,
@@ -569,9 +579,13 @@ def advertisement_rank(user_id, start, end, type, page, page_size, order, order_
     description,
     image_id,
     is_video,
+    use_times,
     preview_url
     from dw_image_cost_day
-    where replace (preview_url,' ,','') !='' {op1} {op2} {op3} {op4} {op5} {op8} {op10} {op11}  {op12} {op9} 
+    where replace (preview_url,' ,','') !='' 
+    and (1=1 {op1}  {op4} {op5} {op8} {op10} {op11}  {op12}  {op_or1}) 
+    {op_time_bigger} {op_time_small} 
+     {op_order} 
     """
 
     print(sql)
@@ -589,6 +603,7 @@ def advertisement_rank(user_id, start, end, type, page, page_size, order, order_
                       round(sum(order_amount)/sum(order_count),2) unit_price,
                       round(sum(cost)/sum(follow_count),2) follow_cost,
                       round(sum(cost)/sum(order_count),2) order_cost,
+                      sum(use_times) use_times,
                       round(sum(order_amount)/sum(cost),4) ROI
                       from ({sql}) a 
       """

+ 1 - 1
handlers/OperateHandler.py

@@ -16,7 +16,7 @@ class ChannelGroupHandler(BaseHandler):
         "group_del": group_del,
         "group_auth_add": group_auth_add,
         "group_auth_del": group_auth_del,
-        "get_channel" : get_channel,
+        "get_channel": get_channel,
         "get_pitcher": get_pitcher
     }
 

+ 6 - 4
handlers/PublicAnalysisHandler.py

@@ -48,7 +48,8 @@ class BookTrend(BaseHandler):
             if date_range:
                 end = self.get_n_days(0)
                 start = self.get_n_days(-int(date_range) + 1)
-            data, total, total_data = book_trend(start, end, book, book_type, platform, page, page_size, order_by, order)
+            data, total, total_data = book_trend(start, end, book, book_type, platform, page, page_size, order_by,
+                                                 order)
             self.write_json(data=data, total=total, total_data=total_data)
 
 
@@ -158,13 +159,14 @@ class AdvertisementRank(BaseHandler):
         else:
             du = DateUtils()
             arg = self.get_args()
+            show_type = arg.get('show_type', 'public') # 展示 public private,默认public
             user_id = arg.get('user_id')
             start = arg.get("start", du.getNow())
             end = arg.get("end")
             page = arg.get("page", 1)
             page_size = arg.get("page_size")
-            order_by = arg.get("order_by", 'cost')
-            order = arg.get("order", 'desc')
+            order_by = arg.get("order_by", 'cost')  # TODO:进行对应修改
+            order = arg.get("order", 'desc')  # TODO:进行对应修改
             type = arg.get("type")
             book = arg.get("book")
             channel = arg.get('channel')
@@ -172,5 +174,5 @@ class AdvertisementRank(BaseHandler):
             has_order = arg.get("has_order")
             is_video = arg.get('is_video')
             data, total, total_data = advertisement_rank(user_id, start, end, type, page, page_size, order, order_by,
-                                                         book, channel, pitcher, has_order, is_video)
+                                                         book, channel, pitcher, has_order, is_video, show_type)
             self.write_json(data=data, total=total, total_data=total_data)