upgrade_device_annual_cost0228.py 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import threading
  4. import uuid
  5. import simplejson as json
  6. import sys
  7. from script.base import init_env, setup_logger, get_logger
  8. init_env(interactive = False)
  9. if len(sys.argv) < 2:
  10. logger = get_logger(__name__)
  11. else:
  12. logger = setup_logger(filename = sys.argv[1], namespace = __name__)
  13. from django.conf import settings
  14. from apps.web.device.models import Group,Device
  15. from apps.web.user.models import ConsumeRecord
  16. from apps.web.dealer.models import Dealer
  17. from apilib.monetary import RMB
  18. logger.info('start now ...........')
  19. objs = Dealer.objects.all()
  20. costDict = {}
  21. for obj in objs:
  22. key = str(float(obj.annualTrafficCost))
  23. if costDict.has_key(key):
  24. costDict[key].append(str(obj.id))
  25. else:
  26. costDict[key] = [str(obj.id)]
  27. for cost,ownerIds in costDict.items():
  28. try:
  29. Device.get_collection().update({'ownerId':{'$in':ownerIds}},{'$set':{'annualTrafficCost':float(cost)}},upsert=False,multi=True)
  30. except Exception,e:
  31. logger.info('some error =%s ' % e)
  32. continue
  33. logger.info('finish')