# coding=utf-8 import datetime import random from bson import ObjectId from tqdm import tqdm from base import init_env init_env(False) from apps.web.dealer.proxy import DealerIncomeProxy from apps.web.user.models import ConsumeRecord from apilib.monetary import VirtualCoin, RMB from apps.web.constant import DEALER_CONSUMPTION_AGG_KIND from apps.web.report.utils import CentralDataProcessor def consume_records(): """ 复制 数据 修改时间日期 :return: """ # 创建100单的消费数据 date = datetime.date.today() + datetime.timedelta(days=1) for _item in range(100): randomDate = datetime.datetime( year=date.year, month=date.month, day=date.day, hour=random.randint(0, 23), minute=random.randint(0, 59), second=random.randint(0, 59) ) aggInfoKeys = random.sample(DEALER_CONSUMPTION_AGG_KIND.choices(), 4) aggInfo = {_key: random.randint(1, 1000) / 100.0 for _key in aggInfoKeys} ConsumeRecord( orderNo=ConsumeRecord.make_no(), time=randomDate.strftime("%Y-%m-%d %H:%M:%S"), openId="o-VzzwAfpdglJY38Kj7yMvVWlIgw", nickname=u"桌子", ownerId="5b9ae99ad89a177846459999", coin=VirtualCoin(random.randint(0, 100)), money=RMB(random.randint(0, 100)), devNo="862167051676942", devTypeCode='100210', devTypeName="德力西", logicalCode="942942", groupId="5fdc529418e358a57aacf1f4", isNormal=True, dateTimeAdded=randomDate, aggInfo=aggInfo ).save() def income_records(): sp = ObjectId("5b9ae99ad89a177846459999") zjl = ObjectId("5d776da9cdc57a381c9a038d") date = datetime.date.today() + datetime.timedelta(days=1) for _item in range(100): source = random.choice(["recharge", "chargeCard", "chargeVirtualCard"]) totalAmount = RMB(random.randint(1, 10)) randomDate = datetime.datetime( year=date.year, month=date.month, day=date.day, hour=random.randint(0, 23), minute=random.randint(0, 59), second=random.randint(0, 59) ) DealerIncomeProxy( ref_id=ObjectId.from_datetime(randomDate), source=source, title="", totalAmount=totalAmount, dealerIds=[sp, zjl], actualAmountMap={ str(sp): (totalAmount*0.9).mongo_amount, str(zjl): (totalAmount*0.1).mongo_amount }, groupId=ObjectId("5fdc529418e358a57aacf1f4"), logicalCode="942942", dateTimeAdded=randomDate, date=randomDate.strftime("%Y-%m-%d") ).save() def consumption_statistic(): date = datetime.date.today() + datetime.timedelta(days=1) records = ConsumeRecord.objects.filter( dateTimeAdded__gte=date ) for record in tqdm(records): CentralDataProcessor( record, True ).process() def income_statistic(): date = datetime.date.today() + datetime.timedelta(days=1) records = DealerIncomeProxy.objects.filter( dateTimeAdded__gte=date ) for record in tqdm(records): CentralDataProcessor( record, True ).process() income_statistic() consumption_statistic()