123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- __author__ = 'Administrator'
- """
- 用于升级发布需要执行的脚本
- """
- import os
- import sys
- import json
- #: 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
- init_env(interactive=True)
- logger = get_logger(__name__)
- from apps.web.dealer.models import Dealer
- from apps.web.device.models import Device, DeviceType
- from apps.web.user.models import RechargeRecord, MyUser
- logger.info('start excute script ......')
- #: 升级设备报错属性
- result = Device.get_collection().update({},{'$set':{'isFault':'no'}},upsert=True,multi=True)
- logger.info('update device isFault result= %s' % result)
- #: 添加设备套餐price字段
- logger.info('start update devtype ......')
- types = DeviceType.objects.all()
- for devType in types:
- newPackages = []
- for package in devType.package:
- if 'price' in package:
- continue
- newPackages.append(
- {'coins':package['coins'], 'price': package['coins'], 'name':package['name'],'time':package['time']})
- if newPackages:
- devType.package = newPackages
- devType.save()
- logger.info('update devtype OK!')
- logger.info('start update dealer default washconfig ......')
- dealers = Dealer.objects.all()
- for dealer in dealers:
- logger.info('modifying dealer(%s)' % (dealer.nickname,))
- newDefaultPackages = {}
- if not dealer.defaultWashConfig:
- continue
- for devType, packages in dealer.defaultWashConfig.items():
- newPackages = []
- for package in packages:
- print package
- newPackages.append({
- 'coins': package['coins'],
- 'price': package['coins'],
- 'name':package['name'],
- 'time':package['time']
- })
- newDefaultPackages[devType] = newPackages
- if newDefaultPackages:
- dealer.update(defaultWashConfig=newDefaultPackages)
- logger.info('update dealer default washconfig OK!')
- logger.info('update devices\'s washconfigs')
- for device in Device.objects(ownerId__exists=True):
- if device.washConfig != {}:
- washConfig = {}
- for packageId, rule in device.washConfig.items():
- if 'price' in rule:
- continue
- _ = {
- 'coins': rule['coins'],
- 'price': rule['coins'],
- 'name': rule['name'],
- 'time': rule['time']
- }
- washConfig[packageId] = _
- if washConfig:
- logger.info('washconfig changed to %s' % (json.dumps(washConfig),))
- device.update(washConfig=washConfig)
- logger.info('update dealer default config OK!')
- #: 升级部分支付宝用户的头像问题
- logger.info('change avatar info')
- for user in MyUser.objects(gateway='alipay'):
- if user.extra.get('avatar'):
- logger.info('operate on user(nickname=%s)' % user.nickname )
- user.update(avatar=user.extra['avatar'])
- #: 升级充值记录
- for record in RechargeRecord.objects(wxOrderNo__ne=u'老板退币', result='success'):
- logger.info('operating recharge Record %s' % (record.wxOrderNo,))
- record.update(via='recharge')
|