123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- """
- 广告系统需要做一次稳定性升级
- 1. 将所有的广告记录从redis移动回mongodb
- 1.1 将老的广告记录充实起来
- 2. 离线任务需要完成
- """
- import os
- import sys
- #: current_dir - 2
- PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..')
- sys.path.insert(0, PROJECT_ROOT)
- from script.base import init_env, get_logger
- logger = get_logger(__name__)
- init_env(interactive=True)
- from apps.web.ad.utils import AdRecordProxy, timestamp_to_dt
- from apps.web.ad.models import Advertisement, AdRecord, nullable
- from apps.web.management.models import Manager
- from apps.web.dealer.models import Dealer
- from apps.web.agent.models import Agent
- from apps.web.user.models import MyUser
- from apps.web.device.models import Device, Group
- def move_all_adRecordProxies_to_adRecord():
- for proxy in AdRecordProxy.all():
- if AdRecord.objects(logicalCode=proxy.logicalCode, openId=proxy.openId, adId=proxy.adId):
- continue
- else:
- record = AdRecord()
- def complete_old_ad_record():
- """
- 将老的广告缺省的详细信息填满
- :return:
- """
- for record in AdRecord.objects():
- ad = nullable(Advertisement.get_by_adId(record.adId))
- dev = Device.get_dev(record.devNo)
- group = Group.get_group(record.groupId) or {}
- user = nullable(MyUser.objects(openId=record.openId, groupId=record.groupId).first())
- sexMap = {0: '-', 1: u'男', 2: u'女', '': '-'}
- if record.agentId:
- agent = Agent.objects(id=str(record.agentId)).first()
- agentName = agent.nickname
- else:
- agentName = ''
- if record.dealerId:
- dealerName = Dealer.objects(id=str(record.dealerId)).first().nickname
- else:
- dealerName = ''
- ad_record_payload = {
- 'adId': record.adId,
- 'adName': ad.name,
- 'agentPrice': ad.agentPrice,
- 'dealerPrice': ad.dealerPrice,
- 'price': ad.price,
- 'agentName': agentName,
- 'dealerName': dealerName,
- 'logicalCode': dev['logicalCode'],
- 'nickname': user.nickname,
- 'sex': sexMap[user.sex],
- 'openId': user.openId,
- 'devType': dev['devType'].get('name'),
- 'address': group.get('address', ''),
- 'groupName': group.get('groupName', ''),
- #: filters
- 'groupId': record.groupId,
- 'dealerId': record.dealerId,
- 'agentId': record.agentId,
- 'devNo': record.devNo,
- #: user actions
- 'clicks': record.clicks,
- 'shows': record.shows,
- 'converted': record.converted
- }
- record.update(**ad_record_payload)
|