CommonFunction.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import requests
  2. from utils.UrlConfig import headers
  3. import json
  4. import pandas as pd
  5. from utils.DataBaseConfig import *
  6. def get_lower_case_name(name):
  7. lst = []
  8. for index, char in enumerate(name):
  9. if char.isupper() and index != 0:
  10. lst.append("_")
  11. lst.append(char)
  12. return "".join(lst).lower()
  13. def get_history_video_info(account_id, url, start_time, end_time, video_cnt, related_creative_max_cnt):
  14. """
  15. url:http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getHistoryVideoList
  16. 请求方式:POST
  17. remark: 见入参
  18. 入参:accountId 账户id
  19. startDate 开始时间 --(视频的upload_time)
  20. endDate 结束时间 --(视频的upload_time)
  21. createCount 关联创意数 (小于该值)
  22. num 获取数量 (随机num个)
  23. """
  24. request_data = {"accountId": account_id,
  25. "startDate": start_time,
  26. "endDate": end_time,
  27. "num": video_cnt,
  28. "createCount": related_creative_max_cnt}
  29. request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
  30. request = json.loads(request)
  31. return request
  32. def get_new_video_info(account_id, url):
  33. """
  34. url:http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getNewVideoList
  35. 请求方式:POST
  36. remark: 返回 upload_time 在上次调用时间到本次调用时间内的素材(第一次调用返回5分钟前到本次调用时间的素材)
  37. 入参:accountId
  38. """
  39. request_data = {"accountId": account_id}
  40. request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
  41. request = json.loads(request)
  42. return request
  43. def get_missing_video_info(account_id, cnt, url, start_time, end_time):
  44. """
  45. url:"http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getCreateZeroVideoList"
  46. 请求方式:POST
  47. remark: 视频的upload_time 在startTime 和 endTime 之间,创意关联个数为0,order by upload_time asc limit videoCnt
  48. 入参:
  49. accountId: 账户id
  50. videoCnt: 查询数量
  51. startTime: 开始时间
  52. endTime: 结束时间
  53. """
  54. request_data = {"accountId": account_id, "videoCnt": cnt, "startTime": start_time, "endTime": end_time}
  55. request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
  56. request = json.loads(request)
  57. return request
  58. def get_top_video_info(account_id, cnt, start_time, end_time, url):
  59. """
  60. url:http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getHistoryTopVideoList
  61. 请求方式:POST
  62. remark: ctop_kuaishou_report_daily_material
  63. 整个项目维度 stat_date 在 startTime 和 endTime, order by sum(charge) desc limit num
  64. 入参:
  65. accountId: 账户id
  66. startTime: 开始时间
  67. endTime: 结束时间
  68. num: 查询数量
  69. 返回:
  70. {
  71. "code": 0,
  72. "data": [
  73. {
  74. "charge": 40871.123,
  75. "video_url": "&di=811c96e5&bp=13890",
  76. "photo_id": "5254011957394409468",
  77. "signature": "4af22090cddc32773c7707de3c652f77",
  78. "channel_type": 0,
  79. "material_type":1, --1:竖版 2:横版
  80. "imageList": ["09f61ca7174160c12d9a68306049ca82","46996bea84287692b3884686a52903ed"]
  81. }
  82. ],
  83. "message": "SUCCESS"
  84. """
  85. request_data = {"accountId": account_id, "num": cnt, "startTime": start_time, "endTime": end_time}
  86. request = requests.post(url, headers=headers, data=json.JSONEncoder().encode(request_data)).text
  87. request = json.loads(request)
  88. return request
  89. def get_campaign_and_group_name_rule(account_id):
  90. sql = """select campaign_name, group_name
  91. from ctop_ai_kuaishou_advertiser_strategy
  92. where account_id = %s
  93. and status = 1
  94. limit 1
  95. """ % account_id
  96. df = pd.read_sql(sql, engine)
  97. if df.empty:
  98. return None, None
  99. campaign_name = df['campaign_name'].values[0]
  100. group_name = df['group_name'].values[0]
  101. return campaign_name, group_name