Browse Source

创建接口测试通过

liyuyi@c-top.com.cn 4 years ago
parent
commit
3e8475ca8d
4 changed files with 34 additions and 23 deletions
  1. 8 5
      ai_callback_handler.py
  2. 10 2
      ai_strategy_request_func.py
  3. 10 10
      ai_time_task_creative_handler.py
  4. 6 6
      utils/UrlConfig.py

+ 8 - 5
ai_callback_handler.py

@@ -1,6 +1,9 @@
 import json
 import json
 import traceback
 import traceback
 from logging.handlers import TimedRotatingFileHandler
 from logging.handlers import TimedRotatingFileHandler
+
+import pymysql
+
 from utils.BaseClass import *
 from utils.BaseClass import *
 from utils.DataBaseConfig import *
 from utils.DataBaseConfig import *
 from utils.LogConfig import *
 from utils.LogConfig import *
@@ -65,8 +68,8 @@ class AiCallBackAddGroup(tornado.web.RequestHandler):
         data = self.request.body
         data = self.request.body
         data = str(data, 'utf8')
         data = str(data, 'utf8')
         data = json.loads(data, encoding='utf8')
         data = json.loads(data, encoding='utf8')
-        self.logger.info("***************************************  NEW REQUEST ***************************************")
-        self.logger.info("raw data from request is %s" % data)
+        logger.info("***************************************  NEW REQUEST ***************************************")
+        logger.info("raw data from request is %s" % data)
 
 
         try:
         try:
             db_con = pymysql.connect(host=host,
             db_con = pymysql.connect(host=host,
@@ -81,20 +84,20 @@ class AiCallBackAddGroup(tornado.web.RequestHandler):
                     group_uuid = item['group_uuid']
                     group_uuid = item['group_uuid']
                     unit_id = item['unit_id']
                     unit_id = item['unit_id']
                     group_create_time = item['group_create_time']
                     group_create_time = item['group_create_time']
-                    self.logger.info("on single update callback info: %s" % item)
+                    logger.info("on single update callback info: %s" % item)
 
 
                     cursor.execute("""UPDATE ctop_ai_kuaishou_unit_level_operation_record
                     cursor.execute("""UPDATE ctop_ai_kuaishou_unit_level_operation_record
                                     SET unit_id= %s, group_create_time=%s
                                     SET unit_id= %s, group_create_time=%s
                                     WHERE group_uuid = %s""", (unit_id, group_create_time, group_uuid))
                                     WHERE group_uuid = %s""", (unit_id, group_create_time, group_uuid))
                 else:
                 else:
-                    self.logger.error("on single update callback info: %s" % item)
+                    logger.error("on single update callback info: %s" % item)
 
 
             db_con.commit()
             db_con.commit()
             db_con.close()
             db_con.close()
         except Exception:
         except Exception:
             res['code'] = -1
             res['code'] = -1
             res['message'] = 'FAIL'
             res['message'] = 'FAIL'
-            self.logger.error(traceback.format_exc())
+            logger.error(traceback.format_exc())
 
 
         # 返回接口结果
         # 返回接口结果
         self.write(json.dumps(res))
         self.write(json.dumps(res))

+ 10 - 2
ai_strategy_request_func.py

@@ -4,6 +4,7 @@ import traceback
 import uuid
 import uuid
 from logging.handlers import TimedRotatingFileHandler
 from logging.handlers import TimedRotatingFileHandler
 import pandas as pd
 import pandas as pd
+import pymysql
 import requests
 import requests
 from utils.BaseClass import *
 from utils.BaseClass import *
 from utils.DataBaseConfig import *
 from utils.DataBaseConfig import *
@@ -175,7 +176,7 @@ class ParseAddCampaignOrAddGroupRequest(object):
         :return:
         :return:
         """
         """
         # 1、组层级基本信息
         # 1、组层级基本信息
-        drop_cols = ['id', 'account_id', 'status', 'campaign_type', 'campaign_name', 'group_name',
+        drop_cols = ['id', 'account_id', 'status', 'campaign_type', 'campaign_name',
                      'creative_name', 'action_bar_text', 'description', 'short_slogan',
                      'creative_name', 'action_bar_text', 'description', 'short_slogan',
                      'sticker_title', 'overlay_type', 'expose_tag', 'new_expose_tag', 'site_id',
                      'sticker_title', 'overlay_type', 'expose_tag', 'new_expose_tag', 'site_id',
                      'click_track_url', 'impression_url', 'ad_photo_played_t3s_url', 'actionbar_click_url',
                      'click_track_url', 'impression_url', 'ad_photo_played_t3s_url', 'actionbar_click_url',
@@ -195,12 +196,19 @@ class ParseAddCampaignOrAddGroupRequest(object):
             for key, value in self.group_info.items():
             for key, value in self.group_info.items():
                 basic_group_info.update({key: value})
                 basic_group_info.update({key: value})
 
 
+
+
         # 发送的请求,这几个字段需要转为 [] 数组
         # 发送的请求,这几个字段需要转为 [] 数组
         group_info_to_res_data = basic_group_info.copy()
         group_info_to_res_data = basic_group_info.copy()
         for col in group_cols_to_list:
         for col in group_cols_to_list:
             group_info_to_res_data[col] = eval(group_info_to_res_data[col]) \
             group_info_to_res_data[col] = eval(group_info_to_res_data[col]) \
                 if group_info_to_res_data[col] is not None else None
                 if group_info_to_res_data[col] is not None else None
 
 
+        if 'group_name' in group_info_to_res_data.keys():
+            group_info_to_res_data['unit_name'] = group_info_to_res_data['group_name']
+            del group_info_to_res_data['group_name']
+
+
         # 写入组层级操作记录数据表基本信息
         # 写入组层级操作记录数据表基本信息
         group_info_to_db = basic_group_info.copy()
         group_info_to_db = basic_group_info.copy()
         group_info_to_db['ai_strategy_uuid'] = self.ai_strategy_uuid
         group_info_to_db['ai_strategy_uuid'] = self.ai_strategy_uuid
@@ -257,7 +265,7 @@ class ParseAddCampaignOrAddGroupRequest(object):
             # 拼装返回json的组信息
             # 拼装返回json的组信息
             single_group_info_to_res_data = group_info_to_res_data.copy()
             single_group_info_to_res_data = group_info_to_res_data.copy()
             single_group_info_to_res_data['group_uuid'] = group_uuid
             single_group_info_to_res_data['group_uuid'] = group_uuid
-            single_group_info_to_res_data['group_name'] = group_name
+            single_group_info_to_res_data['unit_name'] = group_name
             single_group_info_to_res_data['creative_list'] = []
             single_group_info_to_res_data['creative_list'] = []
             group_cnt += 1
             group_cnt += 1
 
 

+ 10 - 10
ai_time_task_creative_handler.py

@@ -18,7 +18,7 @@ print('id of ai_time_task_creative_logger %s' % id(logger))
 
 
 class AiHistoricalMissingMaterial(tornado.web.RequestHandler):
 class AiHistoricalMissingMaterial(tornado.web.RequestHandler):
     """
     """
-    补充历史遗漏素材(关联创意个数为0个素材)
+    补充历史遗漏素材(关联创意个数为0个素材) -- 测试通过 在AD后台创建成功,检查AD信息和数据库表 没有问题
     """
     """
     def post(self):
     def post(self):
         data = self.request.body
         data = self.request.body
@@ -54,7 +54,7 @@ class AiHistoricalMissingMaterial(tornado.web.RequestHandler):
 
 
 class AiAutoCreative(tornado.web.RequestHandler):
 class AiAutoCreative(tornado.web.RequestHandler):
     """
     """
-    每5分钟,检查一次是否有上新素材,有的话,就自动创建
+    每5分钟,检查一次是否有上新素材,有的话,就自动创建 -- 需要上定时任务测试
     """
     """
     def post(self):
     def post(self):
         data = self.request.body
         data = self.request.body
@@ -90,7 +90,7 @@ class AiAutoCreative(tornado.web.RequestHandler):
 
 
 class AiHighQualityMaterial(tornado.web.RequestHandler):
 class AiHighQualityMaterial(tornado.web.RequestHandler):
     """
     """
-    补充历史跑量素材
+    补充历史高质量素材  -- 测试通过 在AD后台创建成功,检查AD信息和数据库表 没有问题
     """
     """
     def post(self):
     def post(self):
         data = self.request.body
         data = self.request.body
@@ -103,8 +103,8 @@ class AiHighQualityMaterial(tornado.web.RequestHandler):
         campaign_id = data.get('campaign_id')
         campaign_id = data.get('campaign_id')
         try:
         try:
             video_info = get_top_video_info(account_id, high_quality_video_cnt,
             video_info = get_top_video_info(account_id, high_quality_video_cnt,
-                                        (datetime.datetime.now() + datetime.timedelta(days=-high_quality_video_days)).strftime("%Y-%m-%d"),
-                                        str(datetime.date.today()), get_high_quality_video_url)
+                                            (datetime.datetime.now() + datetime.timedelta(days=-high_quality_video_days)).strftime("%Y-%m-%d"),
+                                             str(datetime.date.today()), get_high_quality_video_url)
             if video_info is None:
             if video_info is None:
                 self.write(json.dumps({"message": "没有获取到视频,不发送ai策略请求!"}))
                 self.write(json.dumps({"message": "没有获取到视频,不发送ai策略请求!"}))
                 self.flush()
                 self.flush()
@@ -115,7 +115,7 @@ class AiHighQualityMaterial(tornado.web.RequestHandler):
                     self.flush()
                     self.flush()
                 else:
                 else:
                     request_data = get_request_data(account_id, campaign_id, video_info, campaign_name, group_name,
                     request_data = get_request_data(account_id, campaign_id, video_info, campaign_name, group_name,
-                                                    "跑量素材", "跑量素材")
+                                                    "高质量素材", "高质量素材")
                     request = ai_strategy_request_parse(request_data)
                     request = ai_strategy_request_parse(request_data)
                     logger.info("ai策略的返回信息:%s" % request)
                     logger.info("ai策略的返回信息:%s" % request)
                     self.write(json.dumps(request))
                     self.write(json.dumps(request))
@@ -131,7 +131,7 @@ class AiHighQualityMaterial(tornado.web.RequestHandler):
 
 
 class AiCheckAndUpTOFullCreative(tornado.web.RequestHandler):
 class AiCheckAndUpTOFullCreative(tornado.web.RequestHandler):
     """
     """
-    每天22:00 调用该任务,检查当天创意是否创建达到上限,否则使用历史跑量素材填满
+    每天22:00 调用该任务,检查当天创意是否创建达到上限,否则使用历史高质量素材填满  -- 测试通过 在AD后台创建成功,检查AD信息和数据库表 没有问题
     """
     """
     def post(self):
     def post(self):
         data = self.request.body
         data = self.request.body
@@ -146,7 +146,7 @@ class AiCheckAndUpTOFullCreative(tornado.web.RequestHandler):
             start_time = (datetime.date.today()).strftime('%Y-%m-%d %H:%M:%S')
             start_time = (datetime.date.today()).strftime('%Y-%m-%d %H:%M:%S')
             end_time = (datetime.datetime.now()).strftime('%Y-%m-%d %H:%M:%S')
             end_time = (datetime.datetime.now()).strftime('%Y-%m-%d %H:%M:%S')
 
 
-            # 1-1 获取当天计划中包含“量素材”计划的,计划id
+            # 1-1 获取当天计划中包含“高质量素材”计划的,计划id
             sql = """
             sql = """
                     select campaign_id, campaign_name from ctop_kuaishou_campaign 
                     select campaign_id, campaign_name from ctop_kuaishou_campaign 
                     where account_id = %s
                     where account_id = %s
@@ -155,7 +155,7 @@ class AiCheckAndUpTOFullCreative(tornado.web.RequestHandler):
                     """ % (account_id, start_time, end_time)
                     """ % (account_id, start_time, end_time)
             df = pd.read_sql(sql, engine)
             df = pd.read_sql(sql, engine)
             for row in df.itertuples():
             for row in df.itertuples():
-                if '量素材' in getattr(row, 'campaign_name'):
+                if '高质量素材' in getattr(row, 'campaign_name'):
                     campaign_id = getattr(row, 'campaign_id')
                     campaign_id = getattr(row, 'campaign_id')
                     break
                     break
 
 
@@ -207,7 +207,7 @@ class AiCheckAndUpTOFullCreative(tornado.web.RequestHandler):
                         self.flush()
                         self.flush()
                     else:
                     else:
                         request_data = get_request_data(account_id, campaign_id, video_info, campaign_name, group_name,
                         request_data = get_request_data(account_id, campaign_id, video_info, campaign_name, group_name,
-                                                        "跑量素材", "跑量素材")
+                                                        "高质量素材", "高质量素材")
                         request = ai_strategy_request_parse(request_data)
                         request = ai_strategy_request_parse(request_data)
                         logger.info("ai策略的返回信息:%s" % request)
                         logger.info("ai策略的返回信息:%s" % request)
                         self.write(json.dumps(request))
                         self.write(json.dumps(request))

+ 6 - 6
utils/UrlConfig.py

@@ -46,22 +46,22 @@ import os
 os_env_code_status = os.getenv('LYY_STATUS', 'product')
 os_env_code_status = os.getenv('LYY_STATUS', 'product')
 if os_env_code_status == 'dev':
 if os_env_code_status == 'dev':
     # 创建计划url
     # 创建计划url
-    create_campaign_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/create/campaignCreate"
+    create_campaign_url = "http://192.168.1.8:8080/jeecg-boot/kuaishou/create/campaignCreate"
 
 
     # 获取上新视频url
     # 获取上新视频url
-    get_new_video_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/material/getNewVideoList"
+    get_new_video_url = "http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getNewVideoList"
 
 
     # 获取历史视频url
     # 获取历史视频url
-    get_history_video_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/material/getHistoryVideoList"
+    get_history_video_url = "http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getHistoryVideoList"
 
 
     # 创建组和创意url
     # 创建组和创意url
-    create_group_and_creative_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/create/createUnitAndCreative"
+    create_group_and_creative_url = "http://192.168.1.8:8080/jeecg-boot/kuaishou/create/createUnitAndCreative"
 
 
     # 获取历史遗漏视频url, 没有关联上创意的视频
     # 获取历史遗漏视频url, 没有关联上创意的视频
-    get_missing_video_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/material/getCreateZeroVideoList"
+    get_missing_video_url = "http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getCreateZeroVideoList"
 
 
     # 获取历史高质量视频url
     # 获取历史高质量视频url
-    get_high_quality_video_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/material/getHistoryTopVideoList"
+    get_high_quality_video_url = "http://192.168.1.8:8080/jeecg-boot/kuaishou/material/getHistoryTopVideoList"
 else:
 else:
     # 创建计划url
     # 创建计划url
     create_campaign_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/create/campaignCreate"
     create_campaign_url = "http://api.tjyourong.com.cn/jeecg-boot/kuaishou/create/campaignCreate"