123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- import os
- import sys
- import datetime
- import click
- #: current_dir - 2
- from apps.web.constant import USER_RECHARGE_TYPE
- 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.dealer.define import DEALER_INCOME_SOURCE
- from apps.web.user.models import RechargeRecord
- from apps.web.device.models import Device, Group
- from apps.web.report.ledger import Ledger
- from apps.web.dealer.proxy import DealerIncomeProxy
- start_time = datetime.datetime(2018, 10, 27, 5, 0, 0)
- end_time = datetime.datetime(2018, 10, 27, 16, 28, 0)
- records = RechargeRecord.objects(isQuickPay=False,
- result='success',
- via='recharge',
- dateTimeAdded__lte=end_time,
- dateTimeAdded__gte=start_time)
- false_set = [ _.ref_id for _ in DealerIncomeProxy.objects(ref_id__in=[ _.id for _ in records ]) ]
- records = [ r for r in records if r.id not in false_set ]
- logger.info('we are going to process %d records' % (len(records),))
- def process(record):
- # type: (RechargeRecord)->None
- dev = Device.get_dev(record.devNo)
- group = Group.get_group(dev['groupId'])
- ledger = Ledger(USER_RECHARGE_TYPE.RECHARGE, record, notify = False)
- ledger.execute(journal=True, stats=True, check=True)
- for record in records: # type: RechargeRecord
- process(record)
|