def mnt_quick_oper_log(shop_id, campaign_id, adg_id_list, stgy_name, opter = 1, opter_name = ''): if adg_id_list: # 重点托管加大减小投入针对宝贝 adg_list = Adgroup.objects.filter(shop_id = shop_id, campaign_id = campaign_id, adgroup_id__in = adg_id_list) record_list = [] for adg in adg_list: item_name = adg.item.title detail_list = ['对托管的宝贝"%s"' % stgy_name] record_list.append({'shop_id':shop_id, 'campaign_id':campaign_id, 'adgroup_id':adg.adgroup_id, 'item_name': item_name, 'detail_list': detail_list, 'op_type':2, 'data_type':207, 'opter':opter, 'opter_name':opter_name}) rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) else: # 长尾托管加大减小投入针对创意 detail_list = ['对计划"%s"' % stgy_name] up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'detail_list': detail_list, 'op_type':1, 'data_type':109, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def add_custom_creative(tapi, shop_id, campaign_id, adgroup_id, num_iid, title, image, opter = 1, opter_name = ''): if not tapi: tapi = get_tapi(shop_id = shop_id) result, record_list = CustomCreative.add_creative(tapi, shop_id, campaign_id, adgroup_id, num_iid, title, image, opter, opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result
def update_campaign(shop_id, campaign_id, tapi = None, record_flag = True, opter = 1, opter_name = '', **para): if not tapi: tapi = get_tapi(shop_id = shop_id) result_list, msg_list, record_list = Campaign.update_campaign_inner(shop_id = int(shop_id), campaign_id = campaign_id, tapi = tapi, opter = opter, opter_name = opter_name, **para) if record_list and record_flag: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result_list, msg_list
def update_adgroups(shop_id, adg_arg_dict, record_flag = True, tapi = None, opter = 1, opter_name = ''): # adg_dict形如{123456:{'online_status':'online'},231654:{'online_status':'offline'}} if not tapi: tapi = get_tapi(shop_id = shop_id) updated_id_list, del_id_list, record_list = Adgroup.update_adgroups_inner(shop_id = int(shop_id), adg_arg_dict = adg_arg_dict, tapi = tapi, opter = opter, opter_name = opter_name) if record_list and record_flag: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return updated_id_list, del_id_list
def update_creative(tapi, shop_id, adgroup_id, creative_id, title, img_url, opter = 1, opter_name = ''): if not tapi: tapi = get_tapi(shop_id = shop_id) result, msg, record_list = Creative.update_creative_inner(tapi = tapi, shop_id = int(shop_id), adgroup_id = adgroup_id, creative_id = creative_id, title = title, img_url = img_url, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result, msg
def delete_adgroups(shop_id, adgroup_id_list, record_flag = True, tapi = None, opter = 1, opter_name = ''): if not tapi: tapi = get_tapi(shop_id = shop_id) deleted_id_list, cant_del_list, ztc_del_count, record_list, error_msg = Adgroup.delete_adgroups_inner(shop_id = int(shop_id), adgroup_id_list = adgroup_id_list, tapi = tapi, opter = opter, opter_name = opter_name) if record_list and record_flag: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return deleted_id_list, cant_del_list, ztc_del_count, error_msg
def change_rt_engine_log(shop_id, campaign_id, opt_desc, opter = 1, opter_name = ''): try: up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'detail_list': [opt_desc], 'op_type':1, 'data_type':114, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj]) return True except Exception, e: return False
def update_keywords(shop_id, kw_arg_list, tapi = None, opter = 1, opter_name = ''): # kw_arg_list = [(campaign_id, adgroup_id, keyword_id, word, new_price, match_scope, old_price),] if not tapi: tapi = get_tapi(shop_id = shop_id) updated_id_list, deleted_id_list, record_list = Keyword.update_keywords_inner(shop_id = int(shop_id), kw_arg_list = kw_arg_list, tapi = tapi, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return updated_id_list, deleted_id_list
def add_adgroups(shop_id, campaign_id, item_arg_list, tapi = None, opter = 1, opter_name = ''): # 这里的item_arg_list每个item是个字典,包含了标准的item键值,还有额外的adg_title这个键 if not tapi: tapi = get_tapi(shop_id = shop_id) added_id_list, error_msg_dict, record_list = Adgroup.add_adgroups_inner(shop_id = int(shop_id), campaign_id = campaign_id, item_arg_list = item_arg_list, tapi = tapi, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return added_id_list, error_msg_dict
def modify_cmp_adg_log(shop_id, campaign_id, adg_id_list, opt_desc = '', opter = 1, opter_name = ''): adg_list = Adgroup.objects.filter(shop_id = shop_id, campaign_id = campaign_id, adgroup_id__in = adg_id_list) detail_list = [] for adg in adg_list: detail_list.append('%s,%s' % (adg.item.title, opt_desc)) up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'item_name': '', 'detail_list': detail_list, 'op_type':2, 'data_type':206, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def add_keywords(shop_id, adgroup_id, kw_arg_list, tapi = None, opter = 1, opter_name = ''): if not tapi: tapi = get_tapi(shop_id = shop_id) result_mesg, added_keyword_list, repeat_word_list, record_list = Keyword.add_keywords_inner(shop_id = int(shop_id), adgroup_id = adgroup_id, kw_arg_list = kw_arg_list, tapi = tapi, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result_mesg, added_keyword_list, repeat_word_list
def delete_keywords(shop_id, campaign_id, kw_arg_list, tapi = None, data_type = 402, opter = 1, opter_name = ''): # kw_arg_list = [[adgroup_id, keyword_id, word, word_type, word_from, op_reason]] if not tapi: tapi = get_tapi(shop_id = shop_id) deleted_id_list, record_list = Keyword.delete_keywords_inner(shop_id = int(shop_id), campaign_id = campaign_id, kw_arg_list = kw_arg_list, tapi = tapi, data_type = data_type, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return deleted_id_list
def update_custom_creative(tapi, shop_id, campaign_id, adgroup_id, item_id, creative_id, title, file_item, opter = 1, opter_name = ''): if not tapi: tapi = get_tapi(shop_id = shop_id) result, msg, record_list = CustomCreative.update_creative(tapi = tapi, shop_id = int(shop_id), campaign_id = campaign_id, adgroup_id = adgroup_id, num_iid = item_id, creative_id = creative_id, title = title, file_item = file_item, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result, msg
def delete_creative(tapi, shop_id, creative_id, opter = 1, opter_name = ''): if not tapi: tapi = get_tapi(shop_id = shop_id) result, record_list = Creative.delete_creative_inner(tapi = tapi, shop_id = int(shop_id), creative_id = creative_id, opter = opter, opter_name = opter_name) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result
def set_adg_bword_log(shop_id, campaign_id, adgroup_id, item_id, word_list, opter = 1, opter_name = ''): try: item = Item.objects.get(shop_id = shop_id, item_id = item_id) up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'adgroup_id':adgroup_id, 'item_name':item.title, 'detail_list':word_list, 'op_type':2, 'data_type':211, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj]) return True except Exception, e: return False
def onekey_optimize_log(shop_id, adgroup_id, opt_desc, opter = 5, opter_name = ''): try: adgroup = Adgroup.objects.get(shop_id = shop_id, adgroup_id = adgroup_id) title = adgroup.item.title up_rec = {'shop_id':adgroup.shop_id, 'campaign_id':adgroup.campaign_id, 'adgroup_id':adgroup.adgroup_id, 'item_name': title, 'detail_list': [opt_desc], 'op_type':2, 'data_type':212, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj]) return True except Exception, e: return False
def delete_custom_creative(shop_id, adgroup_id, creative_id, opter = 1, opter_name = ''): try: creative = CustomCreative.objects.get(shop_id = shop_id, id = creative_id) opt_desc = '删除创意:%s' % creative.title creative.delete(); adgroup = Adgroup.objects.get(shop_id = shop_id, adgroup_id = adgroup_id) up_rec = {'shop_id':shop_id, 'campaign_id':adgroup.campaign_id, 'adgroup_id':adgroup.adgroup_id, 'item_name':adgroup.item.title, 'detail_list': [opt_desc], 'op_type':3, 'data_type':302, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj]) return False, '' except Exception, e: return True, '删除创意失败'
def remove_outdated(): last_date = datetime.date.today() - datetime.timedelta(30) default_deadline = date_2datetime(last_date) from django.contrib.sessions.models import Session Session.objects.filter(expire_date__lte=default_deadline).delete() from apps.subway.models_report import AccountRpt, CampaignRpt, AdgroupRpt, CreativeRpt, KeywordRpt AccountRpt.clean_outdated() CampaignRpt.clean_outdated() AdgroupRpt.clean_outdated() CreativeRpt.clean_outdated() KeywordRpt.clean_outdated() from apps.subway.models_upload import UploadRecord UploadRecord.clean_outdated() from apps.alg.models import OptimizeRecord OptimizeRecord.clean_outdated() # 删除冻结超过30天的积分数据 from apps.web.models import PointActivity PointActivity.clean_outdated()
def update_adg_mobdisct_log(shop_id, campaign_id, adg_id_list, discount, opter = 1, opter_name = ''): try: record_list = [] adg_list = Adgroup.objects.filter(shop_id = shop_id, adgroup_id__in = adg_id_list) if adg_list: for adg in adg_list: item_name = adg.item.title detail_list = ['移动端折扣设置为%s%%' % discount] record_list.append({'shop_id':shop_id, 'campaign_id':campaign_id, 'adgroup_id':adg.adgroup_id, 'item_name': item_name, 'detail_list': detail_list, 'op_type':2, 'data_type':205, 'opter':opter, 'opter_name':opter_name}) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return True except Exception, e: return False
def set_adg_follow_log(shop_id, campaign_id, adg_id, is_follow = 0, opter = 1, opter_name = ''): try: record_list = [] adg_list = Adgroup.objects.filter(shop_id = shop_id, adgroup_id = adg_id) if adg_list: for adg in adg_list: item_name = adg.item.title detail_list = ['添加关注'] if is_follow else ['取消关注'] data_type = 115 if is_follow else 116 record_list.append({'shop_id':shop_id, 'campaign_id':campaign_id, 'adgroup_id':adg.adgroup_id, 'item_name': item_name, 'detail_list': detail_list, 'op_type':2, 'data_type':data_type, 'opter':opter, 'opter_name':opter_name}) if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return True except Exception, e: return False
def update_waiting_creative(cls, id, shop_id, title, file_item, opter, opter_name): """更新排队中的创意""" from apilib.binder import FileItem from bson.objectid import ObjectId try: # 将图片上传到图片空间 tapi = get_tapi(shop_id=shop_id) _, picture_path = cls.upload_picture(tapi, shop_id, file_item) ccrt = ccrt_coll.find_one({"_id": ObjectId(id)}) ccrt_coll.update( {'_id': ObjectId(id)}, {'$set': { 'title': title, 'img_url': picture_path }}) if ccrt['title'] != title: detail_list = ['修改创意:%s --> %s' % (ccrt['title'], title)] else: detail_list = ['修改创意:%s' % (title)] adgroup = Adgroup.objects.get(shop_id=ccrt['shop_id'], adgroup_id=ccrt['adgroup_id']) record_list = [{ 'shop_id': ccrt['shop_id'], 'campaign_id': ccrt['campaign_id'], 'adgroup_id': ccrt['adgroup_id'], 'item_name': adgroup.item.title, 'detail_list': detail_list, 'op_type': 3, 'data_type': 303, 'opter': opter, 'opter_name': opter_name }] if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return True except Exception, e: log.exception(e) return False
def __create_waiting_creative(cls, **args): try: field_list = [ 'shop_id', 'campaign_id', 'num_iid', 'adgroup_id', 'title', 'img_url' ] args_dict = { item: args[item] for item in field_list if item in args } args_dict['status'] = 0 args_dict['create_time'] = datetime.datetime.now() custom_creative = cls.objects.create(**args_dict) adg_coll.update( { 'shop_id': args['shop_id'], '_id': args['adgroup_id'] }, {'$set': { 'creative_test_switch': True }}) adgroup = Adgroup.objects.get(shop_id=args['shop_id'], adgroup_id=args['adgroup_id']) detail_list = ['添加创意:%s' % custom_creative.title] record_list = [{ 'shop_id': args['shop_id'], 'campaign_id': args['campaign_id'], 'adgroup_id': args['adgroup_id'], 'item_name': adgroup.item.title, 'detail_list': detail_list, 'op_type': 3, 'data_type': 301, 'opter': args['opter'], 'opter_name': args['opter_name'] }] if record_list: rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return custom_creative except Exception, e: log.exception(e) return False
def add_creative(self, creative): """添加等待的创意 #fixed 3953 zhongjinfeng 20170321 这边直接把远程的图片读取下来,因为发现直接用图片地址会报图片正在审核不能修改的问题""" # return CustomCreative.add_creative_inner(self.tapi, shop_id = creative.shop_id, campaign_id = creative.campaign_id, adgroup_id = creative.adgroup_id, num_iid = creative.num_iid, title = creative.title, file_item = creative.img_url.replace('_sum.jpg', '')) req = requests.get(creative.img_url.replace('_sum.jpg', '')) if req.status_code: img = FileItem('item_pic.jpg', req.content) result, record_list = CustomCreative.add_creative_inner( self.tapi, creative.shop_id, creative.campaign_id, creative.adgroup_id, creative.num_iid, creative.title, img, opter=9, opter_name='') if record_list: # 此处不能直接调用upload 接口,因为这边的的图片链接需要特殊处理上传,调用upload接口会直接调用creative的add_creative 不能添加创意 rcd_list = [UploadRecord(**record) for record in record_list] UploadRecord.objects.insert(rcd_list) return result log.error('获取远程图片失败 shop_id = %s num_iid = %s' % (creative.shop_id, creative.num_iid)) return False
def del_cmp_kw_log(shop_id, campaign_id, opt_desc, opter = 1, opter_name = ''): up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'detail_list': [opt_desc], 'op_type':4, 'data_type':402, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def change_cmp_maxprice_log(shop_id, campaign_id, max_price, mobile_max_price, opter = 1, opter_name = ''): detail_list = ['设置PC端限价为:%.2f元,移动端限价为:%.2f元' % (max_price / 100.0, mobile_max_price / 100.0)] up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'detail_list': detail_list, 'op_type':1, 'data_type':110, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def set_cmp_mnt_status_log(shop_id, campaign_id, opt_desc, data_type, opter = 1, opter_name = ''): up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'detail_list': [opt_desc], 'op_type':1, 'data_type':data_type, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def del_adg_mobdisct_log(shop_id, campaign_id, adgroup_id, discount, opter = 1, opter_name = ''): detail_list = ['使用计划折扣%s%%' % discount] adg = Adgroup.objects.get(shop_id = shop_id, adgroup_id = adgroup_id) up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'adgroup_id':adg.adgroup_id, 'item_name': adg.item.title, 'detail_list': detail_list, 'op_type':2, 'data_type':205, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def change_adg_mnt_log(shop_id, campaign_id, adgroup_id, item_name, opt_desc, opter = 1, opter_name = ''): up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'adgroup_id':adgroup_id, 'item_name':item_name, 'detail_list': [opt_desc], 'op_type':2, 'data_type':206, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def change_mntcfg_type_log(shop_id, campaign_id, opt_desc, opter = 1, opter_name = ''): up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'detail_list': [opt_desc], 'op_type':1, 'data_type':112, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])
def set_prod_word_log(shop_id, campaign_id , adgroup_id, title, word_list, opter = 1, opter_name = ''): words = '、'.join([str(word[0]) for word in word_list]) detail_list = ['配置产品词:%s' % words] up_rec = {'shop_id':shop_id, 'campaign_id':campaign_id, 'item_name':title, 'detail_list': detail_list, 'op_type':2, 'data_type':209, 'opter':opter, 'opter_name':opter_name} up_obj = UploadRecord(**up_rec) UploadRecord.objects.insert([up_obj])