|
@@ -47,8 +47,7 @@ class AiTargetCombine(tornado.web.RequestHandler):
|
|
|
and campaign_name like '%s'""" % (ins.account_id, '%%优质定向%%')
|
|
|
df = pd.read_sql(sql, ins.engine)
|
|
|
if df.empty:
|
|
|
- # ins.add_campaign()
|
|
|
- ins.campaign_id = 123123
|
|
|
+ ins.add_campaign()
|
|
|
else:
|
|
|
ins.campaign_id = df['campaign_id'].values[0]
|
|
|
|
|
@@ -59,21 +58,20 @@ class AiTargetCombine(tornado.web.RequestHandler):
|
|
|
ins.write_intelligence_strategy_table()
|
|
|
|
|
|
# 5、发送创建组和创意的请求
|
|
|
- # request = requests.post(create_group_and_creative_url,
|
|
|
- # headers=headers,
|
|
|
- # data=json.dumps(ins.request_data, cls=NpEncoder))
|
|
|
- # response_data = json.loads(request.text)
|
|
|
+ request = requests.post(create_group_and_creative_url,
|
|
|
+ headers=headers,
|
|
|
+ data=json.dumps(ins.request_data, cls=NpEncoder))
|
|
|
+ response_data = json.loads(request.text)
|
|
|
|
|
|
# 6、接口的返回信息更新到数据库表
|
|
|
- # ins.update_intelligence_strategy_table(message=response_data)
|
|
|
- ins.update_intelligence_strategy_table(message="异步执行")
|
|
|
+ ins.update_intelligence_strategy_table(message=response_data)
|
|
|
|
|
|
- logger.info("account_id = %s, 策略uuid = %s 的请求返回信息:%s" % (ins.account_id, ins.ai_strategy_uuid, "异步执行"))
|
|
|
- self.write(json.dumps({"account_id": account_id, "message": "异步执行", "code": 1}))
|
|
|
+ logger.info("account_id = %s, 策略uuid = %s 的请求返回信息:%s" % (ins.account_id, ins.ai_strategy_uuid, response_data))
|
|
|
+ self.write(json.dumps({"account_id": account_id, "message": str(response_data), "code": 1}))
|
|
|
self.flush()
|
|
|
except:
|
|
|
logger.error("account_id = %s, traceback is %s" % (account_id, traceback.format_exc()))
|
|
|
- self.write(json.dumps({"account_id": account_id, "message": traceback.format_exc(), "code": -1}))
|
|
|
+ self.write(json.dumps({"account_id": account_id, "message": str(traceback.format_exc()), "code": -1}))
|
|
|
self.flush()
|
|
|
|
|
|
|
|
@@ -99,7 +97,7 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
|
|
|
def get_database_engine(self):
|
|
|
# 数据库连接引擎,依据开发环境/生产环境 进行切换
|
|
|
- if os.getenv('environment', 'unknown') == 'dev':
|
|
|
+ if os.getenv('LYY_DEV', 'unknown') == 'dev':
|
|
|
self.engine = get_db_engine(config['devDB'])
|
|
|
self.db_config = config['devDB']
|
|
|
else:
|
|
@@ -111,7 +109,7 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
|
|
|
def get_advertiser_strategy_info(self):
|
|
|
"""
|
|
|
- 获取指定账户下客户的策略信息
|
|
|
+ 获取指定账户下客户的策略信息(不管是开发环境还是生产环境,该表都读取生产数据库)
|
|
|
为后续的写入库表,校验一致性做准备
|
|
|
"""
|
|
|
sql = """
|
|
@@ -120,7 +118,7 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
where account_id = %d
|
|
|
limit 1
|
|
|
""" % self.account_id
|
|
|
- advertiser_strategy_df = pd.read_sql(sql, self.engine)
|
|
|
+ advertiser_strategy_df = pd.read_sql(sql, self.product_engine)
|
|
|
self.advertiser_strategy_id = int(advertiser_strategy_df['id'].values[0])
|
|
|
self.advertiser_strategy = advertiser_strategy_df.T.to_dict()[0]
|
|
|
|
|
@@ -137,8 +135,10 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
"message": "SUCCESS"}
|
|
|
"""
|
|
|
# 1、请求创建广告计划的接口
|
|
|
- self.advertiser_strategy['campaign_name'] = self.advertiser_strategy['campaign_name'].replace('{{自定义}}', '')
|
|
|
- campaign_name = self.advertiser_strategy['campaign_name'] + '_优质定向'
|
|
|
+ campaign_name = self.advertiser_strategy['campaign_name']
|
|
|
+ campaign_name = campaign_name.replace('{{自定义}}', '')
|
|
|
+ campaign_name += '_优质定向_'
|
|
|
+ campaign_name += str(datetime.datetime.now().date())
|
|
|
create_campaign_request_data = {'account_id': self.account_id,
|
|
|
'campaign_name': campaign_name,
|
|
|
'type': self.advertiser_strategy['campaign_type'],
|
|
@@ -149,7 +149,7 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
|
|
|
request = requests.post(url=create_campaign_url,
|
|
|
headers=headers,
|
|
|
- data=json.JSONEncoder().encode(create_campaign_request_data))
|
|
|
+ data=json.dumps(create_campaign_request_data, cls=NpEncoder))
|
|
|
response_data = json.loads(request.text)
|
|
|
|
|
|
# 2、对接口返回的结果处理
|
|
@@ -391,7 +391,8 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
'deep_conversion_bid': self.advertiser_strategy.get('deep_conversion_bid'),
|
|
|
'scene_id': self.advertiser_strategy.get('scene_id'),
|
|
|
'unit_type': self.advertiser_strategy.get('unit_type'),
|
|
|
- 'begin_time': self.advertiser_strategy.get('begin_time'),
|
|
|
+ 'begin_time': self.advertiser_strategy.get('begin_time') if self.advertiser_strategy.get('begin_time')
|
|
|
+ else str(datetime.datetime.now().date()),
|
|
|
'end_time': self.advertiser_strategy.get('end_time'),
|
|
|
'schedule_time': self.advertiser_strategy.get('schedule_time'),
|
|
|
'day_budget': self.advertiser_strategy.get('unit_day_budget'),
|
|
@@ -490,7 +491,7 @@ class GetTargetAndAssemblyParameters(object):
|
|
|
replace('{{广告位置}}', scene_id)
|
|
|
|
|
|
# 3-5 日期, 在拼装广告组和创意层级函数中获取
|
|
|
- now_date = str(datetime.datetime.now().date())
|
|
|
+ now_date = str(datetime.datetime.now())
|
|
|
if '日期' in group_params['unit_name']:
|
|
|
unit_name = unit_name.replace('{{日期}}', now_date)
|
|
|
else:
|