Explorar el Código

新增recallPQVideos接口

罗俊辉 hace 8 meses
padre
commit
4fd86882ae
Se han modificado 2 ficheros con 91 adiciones y 0 borrados
  1. 17 0
      routes/__init__.py
  2. 74 0
      routes/recallPQVideos.py

+ 17 - 0
routes/__init__.py

@@ -8,6 +8,8 @@ from quart import Blueprint, jsonify, request
 
 from .insertVideoRoute import insert
 from .sourceIdRoute import saveSourceToDB
+from .recallPQVideos import recallPQVideos
+
 
 TL_blueprint = Blueprint("TouLiu", __name__)
 
@@ -56,5 +58,20 @@ def Routes(db_client):
         )
         return jsonify(response)
 
+    @TL_blueprint.route("/recallPQVideos", methods=['POST'])
+    async def recallVideos():
+        """
+        搜索视频信息
+        :return:
+        """
+        request_id = "recallPQVideos_{}_{}".format(uuid.uuid4(), int(time.time()))
+        data = await request.get_json()
+        response = await recallPQVideos(
+            db_client=db_client,
+            params=data,
+            request_id=request_id
+        )
+        return jsonify(response)
+
     return TL_blueprint
 

+ 74 - 0
routes/recallPQVideos.py

@@ -0,0 +1,74 @@
+"""
+@author: luojunhui
+召回票圈的视频
+"""
+from config import daily_video
+
+
+async def recallPQVideos(db_client, params, request_id):
+    """
+
+    :param request_id:
+    :param db_client:
+    :param params:
+    :return:
+    """
+    try:
+        start_dt = params['startDate']
+        end_dt = params['endDate']
+        base_return = params.get('baseReturn', 0)
+        base_view = params.get('baseView', 0)
+        base_share = params.get('baseShare', 0)
+        base_rov = params.get('baseRov', 0)
+        base_ros = params.get('baseRos', 0)
+    except Exception as e:
+        response = {
+            "error": str(e),
+            "message": "params error",
+            "requestId": request_id
+        }
+        return response
+    select_sql = f"""
+        SELECT * 
+        FROM {daily_video}
+        WHERE date_time >= '{start_dt}'
+            and date_time <= '{end_dt}'
+            and return_cnt >= {base_return}
+            and view_cnt >= {base_view}
+            and share_cnt >= {base_share}
+            and rov >= {base_rov}
+            and ros >= {base_ros}
+    """
+    result_tuple = await db_client.asyncSelect(
+        sql=select_sql
+    )
+    if result_tuple:
+        result_list = [
+            {
+                "videoId": i[0],
+                "uid": i[1],
+                "videoTitle": i[2],
+                "returnCnt": i[3],
+                "viewCnt": i[4],
+                "shareCnt": i[5],
+                "category": i[6],
+                "rov": i[7],
+                "ros": i[8],
+                "dt": i[10]
+            }
+            for i in result_tuple
+        ]
+        response = {
+            "info": "success",
+            "data": result_list,
+            "requestId": request_id
+        }
+    else:
+        response = {
+            "error": "Did not find satisfied videos",
+            "requestId": request_id
+        }
+    return response
+
+
+