|
@@ -90,7 +90,7 @@ class create_ad_plan(BaseHandler):
|
|
|
request_dict = json.loads(self.request.body, encoding='utf-8')
|
|
|
print(request_dict)
|
|
|
user_id = request_dict['user_id']
|
|
|
- #TODO:task_name设置全局唯一
|
|
|
+ # TODO:task_name设置全局唯一
|
|
|
ad_plan_list = request_dict['plan_list']
|
|
|
|
|
|
# 1.查看是否cookie可用
|
|
@@ -113,7 +113,7 @@ class create_ad_plan(BaseHandler):
|
|
|
sql_session.execute(ad_plan_typesetting_inserte)
|
|
|
|
|
|
# 2.2存行为历史记录
|
|
|
- task_name='{user_id}_{time_sign}'.format(user_id=user_id,time_sign=time.time())
|
|
|
+ task_name = '{user_id}_{time_sign}'.format(user_id=user_id, time_sign=time.time())
|
|
|
for _ in ad_plan_list:
|
|
|
# 1.查看历史中有无对应落地页
|
|
|
|
|
@@ -267,6 +267,8 @@ class ad_human_info(BaseHandler):
|
|
|
|
|
|
@staticmethod
|
|
|
def refresh_wechat_cookies(tornado_web, user_id):
|
|
|
+ # TODO:添加互动接口,添加状态字段,打开selenium就变换
|
|
|
+
|
|
|
# 1.返回二维码链接
|
|
|
# ----1.查看cookie是否可用
|
|
|
sql_session = db.DBSession()
|
|
@@ -418,27 +420,59 @@ class delete_ad_plan(BaseHandler):
|
|
|
|
|
|
|
|
|
class get_ad_wechat_service_name(BaseHandler):
|
|
|
- # TODO:得到服务商名
|
|
|
def get(self):
|
|
|
- pass
|
|
|
+ user_id = self.get_argument('user_id', None)
|
|
|
+ sql_session = db.DBSession()
|
|
|
+ if user_id is None:
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
+ return
|
|
|
+
|
|
|
+ result = sql_tools.get_wechat_info_service_name(sql_session=sql_session, user_id=user_id)
|
|
|
+ result_list = []
|
|
|
+ for _ in result:
|
|
|
+ service_name = _
|
|
|
+ result_list.append({'service_name': service_name})
|
|
|
+ print(result_list)
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'wechat_info': result_list})
|
|
|
|
|
|
|
|
|
class get_ad_wechat_wechat_name(BaseHandler):
|
|
|
- # TODO:得到公众号名
|
|
|
def get(self):
|
|
|
- pass
|
|
|
+ user_id = self.get_argument('user_id', None)
|
|
|
+ service_name = self.get_argument('service_name', None)
|
|
|
+ sql_session = db.DBSession()
|
|
|
+ if user_id is None or service_name is None:
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
+ return
|
|
|
+
|
|
|
+ result = sql_tools.get_wechat_info_wechat_name(sql_session=sql_session, user_id=user_id,
|
|
|
+ service_name=service_name)
|
|
|
+ result_list = []
|
|
|
+ for _ in result:
|
|
|
+ service_name, wechat_name = _
|
|
|
+ result_list.append({'service_name': service_name, 'wechat_name': wechat_name})
|
|
|
+ print(result_list)
|
|
|
+ self.write({'status': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'wechat_info': result_list})
|
|
|
|
|
|
|
|
|
class get_plan_action_record(BaseHandler):
|
|
|
def get(self):
|
|
|
user_id = self.get_argument('user_id', None)
|
|
|
+ service_name = self.get_argument('service_name', None)
|
|
|
+ wechat_name = self.get_argument('wechat_name', None)
|
|
|
+ status = self.get_argument('status', None)
|
|
|
+ plan_name = self.get_argument('plan_name', None)
|
|
|
sql_session = db.DBSession()
|
|
|
if user_id is None:
|
|
|
self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
return
|
|
|
# 落地页名字精确到毫秒,默认是全局唯一
|
|
|
|
|
|
- result = sql_tools.get_plan_record(sql_session=sql_session, user_id=user_id)
|
|
|
+ result = sql_tools.get_plan_record(sql_session=sql_session, user_id=user_id,
|
|
|
+ service_name=service_name, wechat_name=wechat_name,
|
|
|
+ status=status, plan_name=plan_name)
|
|
|
result_ = []
|
|
|
for i in range(len(result)):
|
|
|
print(result[i])
|
|
@@ -485,8 +519,51 @@ class get_task_list(BaseHandler):
|
|
|
'local_ad_plan_info': result_})
|
|
|
|
|
|
|
|
|
+class create_ad_task(BaseHandler):
|
|
|
+ def get(self):
|
|
|
+ user_id = self.get_argument('user_id', None)
|
|
|
+ sql_session = db.DBSession()
|
|
|
+ if user_id is None:
|
|
|
+ self.write({'status': {'msg': 'url parameter error', "RetCode": 400}})
|
|
|
+ return
|
|
|
+ # 落地页名字精确到毫秒,默认是全局唯一
|
|
|
+
|
|
|
+ result = sql_tools.get_ad_task(sql_session=sql_session, user_id=user_id)
|
|
|
+ task_dict = {}
|
|
|
+
|
|
|
+ for _ in result:
|
|
|
+ task_name, status, task_status_num, create_time = _
|
|
|
+ create_time = create_time.strftime("%Y-%m-%d %H:%M:%S")
|
|
|
+ if task_name not in task_dict.keys():
|
|
|
+ task_dict[task_name] = {}
|
|
|
+ task_dict[task_name][status] = (task_status_num, create_time)
|
|
|
+
|
|
|
+ result_ = []
|
|
|
+ num = 0
|
|
|
+ for k, v in task_dict.items():
|
|
|
+ # TODO:修改为dict的sort
|
|
|
+ sum_num = 0
|
|
|
+ print(k, v)
|
|
|
+ new_dict = {}
|
|
|
+ create_time = None
|
|
|
+ for k_, v_ in v.items():
|
|
|
+ task_status_num, create_time = v_
|
|
|
+ sum_num = sum_num + task_status_num
|
|
|
+ new_dict[k_] = task_status_num
|
|
|
+
|
|
|
+ task_dict[k]['sum_num'] = sum_num
|
|
|
+ new_dict['sum_num'] = sum_num
|
|
|
+ result_.append({'task_name': k, 'task_info': new_dict, 'create_time': create_time, 'id': num})
|
|
|
+ num = num + 1
|
|
|
+ print(json.dumps(task_dict))
|
|
|
+
|
|
|
+ self.write({'statu': {'msg': 'success', "RetCode": 200},
|
|
|
+ 'local_ad_plan_info': result_})
|
|
|
+
|
|
|
+
|
|
|
def make_app():
|
|
|
return tornado.web.Application([
|
|
|
+ ("/create_ad_task", create_ad_task),
|
|
|
("/create_ad_plan", create_ad_plan),
|
|
|
# ("/create_ad_plan_local", create_ad_plan_local),
|
|
|
# ("/create_ad_layout_local", create_ad_layout_local),
|