count_ad_noshow.py 878 B

12345678910111213141516171819202122232425262728293031
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import datetime
  4. import os
  5. from script.base import init_env
  6. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "configs.testing")
  7. init_env(interactive = True)
  8. from apps.web.user.models import ConsumeRecord
  9. from apps.web.dealer.models import Dealer
  10. from apps.web.device.models import Group
  11. startTs = datetime.datetime(2021, 12, 8, 0, 0, 0)
  12. endTs = datetime.datetime(2021, 12, 9, 0, 0, 0)
  13. total = 0
  14. dealers = [dealer for dealer in Dealer.objects(adShow = False).only('id')]
  15. for dealer in dealers:
  16. group_ids = [str(group.id) for group in Group.objects(ownerId = str(dealer.id)).only('id')]
  17. count = ConsumeRecord.objects(groupId__in = group_ids, dateTimeAdded__gte = startTs, dateTimeAdded__lt = endTs).count()
  18. print('{} no show {}.'.format(str(dealer.id), count))
  19. total += count
  20. print 'total: {}'.format(total)