recallPQVideos.py 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. """
  2. @author: luojunhui
  3. 召回票圈的视频
  4. """
  5. from config import daily_video
  6. async def recallPQVideos(db_client, params, request_id):
  7. """
  8. :param request_id:
  9. :param db_client:
  10. :param params:
  11. :return:
  12. """
  13. try:
  14. start_dt = params['startDate']
  15. end_dt = params['endDate']
  16. base_return = params.get('baseReturn', 0)
  17. base_view = params.get('baseView', 0)
  18. base_share = params.get('baseShare', 0)
  19. base_rov = params.get('baseRov', 0)
  20. base_ros = params.get('baseRos', 0)
  21. except Exception as e:
  22. response = {
  23. "error": str(e),
  24. "message": "params error",
  25. "requestId": request_id
  26. }
  27. return response
  28. select_sql = f"""
  29. SELECT *
  30. FROM {daily_video}
  31. WHERE date_time >= '{start_dt}'
  32. and date_time <= '{end_dt}'
  33. and return_cnt >= {base_return}
  34. and view_cnt >= {base_view}
  35. and share_cnt >= {base_share}
  36. and rov >= {base_rov}
  37. and ros >= {base_ros}
  38. """
  39. result_tuple = await db_client.asyncSelect(
  40. sql=select_sql
  41. )
  42. if result_tuple:
  43. result_list = [
  44. {
  45. "videoId": i[0],
  46. "uid": i[1],
  47. "videoTitle": i[2],
  48. "returnCnt": i[3],
  49. "viewCnt": i[4],
  50. "shareCnt": i[5],
  51. "category": i[6],
  52. "rov": i[7],
  53. "ros": i[8],
  54. "dt": i[10]
  55. }
  56. for i in result_tuple
  57. ]
  58. response = {
  59. "info": "success",
  60. "data": result_list,
  61. "requestId": request_id
  62. }
  63. else:
  64. response = {
  65. "error": "Did not find satisfied videos",
  66. "requestId": request_id
  67. }
  68. return response