Selaa lähdekoodia

MOD:添加任务列表接口

cxyu 3 vuotta sitten
vanhempi
commit
2b75252652
3 muutettua tiedostoa jossa 68 lisäystä ja 42 poistoa
  1. 14 4
      web_module/tornado_api.py
  2. 47 36
      web_module/user_action.py
  3. 7 2
      wechat_action/sql_tools.py

+ 14 - 4
web_module/tornado_api.py

@@ -104,9 +104,12 @@ class create_ad_plan(BaseHandler):
             return
         # 2.1存计划数据
         for _ in ad_plan_list:
-            ad_plan_name = _['title']
+            ad_plan_name = _['title'].replace(' ', '')[:29]
             ad_plan_typesetting_info = {'user_id': user_id, 'name': ad_plan_name,
                                         'typesetting': json.dumps(_, ensure_ascii=False)}
+            print('typesetting_info')
+            print(_)
+            print(ad_plan_typesetting_info)
             ad_plan_typesetting_inserte = sql_tools.save_ad_plan_typesetting_info(
                 ad_plan_typesetting_info=ad_plan_typesetting_info,
                 table_ad_plan_typesetting=ad_plan_typesetting_table)
@@ -537,8 +540,13 @@ class get_all_ad_task(BaseHandler):
         result = sql_tools.get_ad_task(sql_session=sql_session, user_id=user_id)
         task_dict = {}
 
+        localtion = ['微信', '']
         for _ in result:
-            task_name, status, task_status_num, create_time = _
+            task_name, status, task_status_num, create_time, typesetting = _
+            print(typesetting)
+            typesetting = json.loads(typesetting)
+            if typesetting['plan_base'][1] == 'pyq':
+                localtion[1] = '朋友圈'
             create_time = create_time.strftime("%Y-%m-%d %H:%M:%S")
             if task_name not in task_dict.keys():
                 task_dict[task_name] = {}
@@ -556,10 +564,12 @@ class get_all_ad_task(BaseHandler):
                 task_status_num, create_time = v_
                 sum_num = sum_num + task_status_num
                 new_dict[k_] = task_status_num
-
+            status = 'todo' if 'todo' in new_dict.keys() else 'done'
             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})
+            result_.append(
+                {'task_name': k, 'task_info': new_dict, 'create_time': create_time, 'channel': localtion[0],
+                 'localtion': localtion[1], 'id': num, 'status': status})
             num = num + 1
         print(json.dumps(task_dict))
 

+ 47 - 36
web_module/user_action.py

@@ -63,43 +63,54 @@ def carry_plan(user_id, ad_plan_list, log_ad, db, cookie_canuse):
 
     # cookies保存
     cookie_acion(db, log_ad, cookie_canuse, user_id)
-
-    for _ in ad_plan_list:
-        service_name = _['service_name']
-        wechat_name = _['wechat_name']
-        # 1.检查1.落地页是否创建过了
-        log_ad.select_ad_master(service_name, wechat_name)
-        create_ad_layout = CreateAd(login_ad=log_ad, service_name=service_name, wechat_name=wechat_name)
-        create_ad_layout.check_sucess_ready()
-        # TODO:现在默认layout_name在30个字符以内
-        layout_name = _['idea']['jump_type_page_type']['layout_name'].replace(' ', '')[:29]
-        if create_ad_layout.check_sucess(layout_name=layout_name):
-            res = {'sucess': True, 'result_info': '已经创建过对应落地页'}
-            sql_tools.action_record(res, sql_session, layout_create_action, user_id, layout_name, action_record_table,
+    try:
+        for _ in ad_plan_list:
+            service_name = _['service_name']
+            wechat_name = _['wechat_name']
+            # 1.检查1.落地页是否创建过了
+            log_ad.select_ad_master(service_name, wechat_name)
+            create_ad_layout = CreateAd(login_ad=log_ad, service_name=service_name, wechat_name=wechat_name)
+            create_ad_layout.check_sucess_ready()
+            # TODO:现在默认layout_name在30个字符以内
+            layout_name = _['idea']['jump_type_page_type']['layout_name'].replace(' ', '')[:29]
+            if create_ad_layout.check_sucess(layout_name=layout_name):
+                res = {'sucess': True, 'result_info': '已经创建过对应落地页'}
+                sql_tools.action_record(res, sql_session, layout_create_action, user_id, layout_name,
+                                        action_record_table,
+                                        service_name, wechat_name)
+
+            else:
+                # 1.5无则创建落地页
+                create_ad_layout.get_into_create_page()
+                layout_typesetting_dict = sql_tools.get_layout_typesetting(sql_session, user_id,
+                                                                           typesetting_name=layout_name)
+                layout_typesetting_dict = json.loads(layout_typesetting_dict)
+                res = create_ad_layout.create_layout(layout_typesetting_dict)
+                sql_tools.action_record(res, sql_session, layout_create_action, user_id, layout_name,
+                                        action_record_table,
+                                        service_name, wechat_name)
+            log_ad.refresh_driver()
+            # 3.创建计划
+            # TODO:添加计划是否创建检查,现默认计划没有重复
+            log_ad.select_ad_master(service_name, wechat_name)
+            plan_name = _['title'].replace(' ', '')[:29]
+            # plan_typesetting_dict = sql_tools.get_ad_plan_typesetting(sql_session=sql_session, user_id=user_id,
+            #                                                           typesetting_name=plan_name)
+            create_ad_plan = CreateAdPlan(login_ad=log_ad, task=_)
+            res = create_ad_plan.run()
+            # 4.更新action_record相关计划信息
+            sql_tools.action_record(res, sql_session, ad_plan_create_action, user_id, plan_name, action_record_table,
                                     service_name, wechat_name)
-
-        else:
-            # 1.5无则创建落地页
-            create_ad_layout.get_into_create_page()
-            layout_typesetting_dict = sql_tools.get_layout_typesetting(sql_session, user_id,
-                                                                       typesetting_name=layout_name)
-            layout_typesetting_dict = json.loads(layout_typesetting_dict)
-            res = create_ad_layout.create_layout(layout_typesetting_dict)
-            sql_tools.action_record(res, sql_session, layout_create_action, user_id, layout_name, action_record_table,
-                                    service_name, wechat_name)
-        log_ad.refresh_driver()
-        # 3.创建计划
-        # TODO:添加计划是否创建检查,现默认计划没有重复
-        log_ad.select_ad_master(service_name, wechat_name)
-        plan_name = _['title'].replace(' ', '')[:29]
-        # plan_typesetting_dict = sql_tools.get_ad_plan_typesetting(sql_session=sql_session, user_id=user_id,
-        #                                                           typesetting_name=plan_name)
-        create_ad_plan = CreateAdPlan(login_ad=log_ad, task=_)
-        res = create_ad_plan.run()
-        # 4.更新action_record相关计划信息
-        sql_tools.action_record(res, sql_session, ad_plan_create_action, user_id, plan_name, action_record_table,
-                                service_name, wechat_name)
-        #TODO:添加final ,来关闭chrome
+            log_ad.refresh_driver()
+            # TODO:添加final ,来关闭chrome
+    except Exception as e:
+        print(e)
+    finally:
+        try:
+            print('任务结束')
+            log_ad.driver.quit()
+        except:
+            pass
 
 
 # TODO:这里都是线程调度的函数,设定线程生命周期最长60分钟

+ 7 - 2
wechat_action/sql_tools.py

@@ -42,6 +42,8 @@ def save_layout_typesetting_info(layout_typesetting_info, table_layout_typesetti
 
 def save_ad_plan_typesetting_info(ad_plan_typesetting_info, table_ad_plan_typesetting):
     # TODO:正常action_record  返回plan_name layout_name有问题
+    for k,v in ad_plan_typesetting_info.items():
+        print(k,v)
     insert_ad_plan_typesetting = table_ad_plan_typesetting.insert()
     insert_ad_plan_typesetting = insert_ad_plan_typesetting.values \
         (typesetting=ad_plan_typesetting_info['typesetting'],
@@ -220,10 +222,13 @@ def get_undo_action(sql_session, user_id):
 
 def get_ad_task(sql_session, user_id):
     sql = '''
-    select task_name,status,count(*),min(create_time) from action_record ar
-        where user_id='{}'
+    select task_name,status,count(*),min(ar.create_time),apt.typesetting from action_record ar
+        join ad_plan_typesetting apt on ar.object_name =apt.name
+		where ar.user_id='{}'
+        and action_type ='create_ad_plan'
         group by task_name ,status ; 
     '''.format(user_id)
+
     cursor = sql_session.execute(sql)
     lines = cursor.fetchall()
     result_list = [line for line in lines]