make_rpt_from_order_into_mem.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. from mongoengine import Q
  4. from apilib.utils_datetime import to_datetime
  5. from base import init_env, get_logger
  6. init_env(interactive = True)
  7. from apps import reportCache
  8. logger = get_logger(__name__)
  9. from apps.web.core.accounting import groupCountNetPayTmpl
  10. from apps.web.device.models import Group
  11. from apps.web.user.models import ConsumeRecord
  12. # 获取所有的设备ID
  13. todayDate = '2018-10-06'
  14. beginTime = todayDate + ' 00:00:00'
  15. endTime = todayDate + ' 23:59:59'
  16. # 恢复组数据统计数据
  17. groups = Group.get_collection().find(spec = {}, fields = {'_id': 1})
  18. for group in groups:
  19. groupId = str(group['_id'])
  20. consume_filter = Q(__raw__ = {'groupId': groupId})
  21. consume_filter &= Q(__raw__ = {'dateTimeAdded': {'$gte': to_datetime(beginTime)}})
  22. consume_filter &= Q(__raw__ = {'dateTimeAdded': {'$lte': to_datetime(endTime)}})
  23. count = ConsumeRecord.get_collection().find(spec = consume_filter.to_query(ConsumeRecord),
  24. fields = {'_id': 1}).count()
  25. key = groupCountNetPayTmpl(str(groupId), todayDate)
  26. reportCache.set(key, str(count))
  27. logger.info('finish groups!')
  28. # 恢复线上投币次数数据
  29. logger.info('finish all!')