# -*- coding: utf-8 -*- #!/usr/bin/env python import os import sys #: current_dir - 2 from apps.web.common.models import WithdrawRecord PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..') sys.path.insert(0, PROJECT_ROOT) import click from script.base import init_env from apps.web.dealer.models import Dealer from apps.web.device.models import Device, Group from apps.web.user.models import ConsumeRecord, RechargeRecord, MyUser init_env(interactive=True) @click.group() @click.option('--debug/--no-debug', default=False) def cli(debug): click.echo('Debug mode is %s' % ('on' if debug else 'off')) @cli.command() def fixWithdrawRecord(): """提现记录增加字段""" click.echo(u'正在添加缺失字段') for withdrawRecord in WithdrawRecord.objects: dealer = Dealer.objects(id=withdrawRecord.ownerId).first() withdrawRecord.userTel = dealer.username if dealer is not None else u'默认号码' withdrawRecord.subBankName = withdrawRecord.parentBankName withdrawRecord.save() click.echo('ok!') @cli.command() def fixDevWashConfigs(devNoList=None): """套餐保留为整数""" click.echo(u'正在修复设备套餐washconfig信息...') devNoList = [d.devNo for d in Device.objects] if devNoList is None else devNoList for devNo in devNoList: dev = Device.get_dev(devNo) dataList = [] washConfigs = {} for k,v in dev['washConfig'].items(): dataList.append(v) for config in dataList: _ = {'coins': int(config['coins']), 'time': int(config['time']), 'name': config['name']} washConfigs[str(config['coins'])] = _ Device.get_collection().update_one({'devNo': devNo}, {'$set': {'washConfig': washConfigs}}) Device.invalid_device_cache(devNo) click.echo('ok!') @cli.command() def fixGroupRuleDict(): click.echo(u'正在修复地址组优惠信息...') for group in Group.objects: for k, v in group.format_rule_dict.items(): group.ruleDict[k] = float(v) // 10.0 group.save() click.echo('ok!') @cli.command() def fixUserBalance(): click.echo(u'正在修复用户余额...') for user in MyUser.objects: user.balance = float(user.balance) // 1.0 user.save() click.echo('ok!') @cli.command() def fixConsumeRecord(): click.echo(u'正在修复用户消费记录') for record in ConsumeRecord.objects: record.coin = float(record.coin) // 10.0 record.money = float(record.money) // 1.0 record.save() click.echo('ok!') @cli.command() def fixRechargeRecord(): click.echo(u'正在修复提现记录') for record in RechargeRecord.objects: record.coins = float(record.coins) // 10.0 record.money = float(record.money) // 1.0 record.save() click.echo('ok!') if __name__ == '__main__': cli()