test_record_income_and_consumption.py 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. # coding=utf-8
  2. import datetime
  3. import random
  4. from bson import ObjectId
  5. from tqdm import tqdm
  6. from base import init_env
  7. init_env(False)
  8. from apps.web.dealer.proxy import DealerIncomeProxy
  9. from apps.web.user.models import ConsumeRecord
  10. from apilib.monetary import VirtualCoin, RMB
  11. from apps.web.constant import DEALER_CONSUMPTION_AGG_KIND
  12. from apps.web.report.utils import CentralDataProcessor
  13. def consume_records():
  14. """
  15. 复制 数据 修改时间日期
  16. :return:
  17. """
  18. # 创建100单的消费数据
  19. date = datetime.date.today() + datetime.timedelta(days=1)
  20. for _item in range(100):
  21. randomDate = datetime.datetime(
  22. year=date.year,
  23. month=date.month,
  24. day=date.day,
  25. hour=random.randint(0, 23),
  26. minute=random.randint(0, 59),
  27. second=random.randint(0, 59)
  28. )
  29. aggInfoKeys = random.sample(DEALER_CONSUMPTION_AGG_KIND.choices(), 4)
  30. aggInfo = {_key: random.randint(1, 1000) / 100.0 for _key in aggInfoKeys}
  31. ConsumeRecord(
  32. orderNo=ConsumeRecord.make_no(),
  33. time=randomDate.strftime("%Y-%m-%d %H:%M:%S"),
  34. openId="o-VzzwAfpdglJY38Kj7yMvVWlIgw",
  35. nickname=u"桌子",
  36. ownerId="5b9ae99ad89a177846459999",
  37. coin=VirtualCoin(random.randint(0, 100)),
  38. money=RMB(random.randint(0, 100)),
  39. devNo="862167051676942",
  40. devTypeCode='100210',
  41. devTypeName="德力西",
  42. logicalCode="942942",
  43. groupId="5fdc529418e358a57aacf1f4",
  44. isNormal=True,
  45. dateTimeAdded=randomDate,
  46. aggInfo=aggInfo
  47. ).save()
  48. def income_records():
  49. sp = ObjectId("5b9ae99ad89a177846459999")
  50. zjl = ObjectId("5d776da9cdc57a381c9a038d")
  51. date = datetime.date.today() + datetime.timedelta(days=1)
  52. for _item in range(100):
  53. source = random.choice(["recharge", "chargeCard", "chargeVirtualCard"])
  54. totalAmount = RMB(random.randint(1, 10))
  55. randomDate = datetime.datetime(
  56. year=date.year,
  57. month=date.month,
  58. day=date.day,
  59. hour=random.randint(0, 23),
  60. minute=random.randint(0, 59),
  61. second=random.randint(0, 59)
  62. )
  63. DealerIncomeProxy(
  64. ref_id=ObjectId.from_datetime(randomDate),
  65. source=source,
  66. title="",
  67. totalAmount=totalAmount,
  68. dealerIds=[sp, zjl],
  69. actualAmountMap={
  70. str(sp): (totalAmount*0.9).mongo_amount,
  71. str(zjl): (totalAmount*0.1).mongo_amount
  72. },
  73. groupId=ObjectId("5fdc529418e358a57aacf1f4"),
  74. logicalCode="942942",
  75. dateTimeAdded=randomDate,
  76. date=randomDate.strftime("%Y-%m-%d")
  77. ).save()
  78. def consumption_statistic():
  79. date = datetime.date.today() + datetime.timedelta(days=1)
  80. records = ConsumeRecord.objects.filter(
  81. dateTimeAdded__gte=date
  82. )
  83. for record in tqdm(records):
  84. CentralDataProcessor(
  85. record,
  86. True
  87. ).process()
  88. def income_statistic():
  89. date = datetime.date.today() + datetime.timedelta(days=1)
  90. records = DealerIncomeProxy.objects.filter(
  91. dateTimeAdded__gte=date
  92. )
  93. for record in tqdm(records):
  94. CentralDataProcessor(
  95. record,
  96. True
  97. ).process()
  98. income_statistic()
  99. consumption_statistic()