calculate_expiration_time.py 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import os
  2. import sys
  3. import apilib.utils_mongo
  4. PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."))
  5. sys.path.insert(0, PROJECT_ROOT)
  6. from base import init_env
  7. init_env(interactive=True)
  8. import datetime
  9. from apps.web.device.models import Device
  10. from apps.web.core import db
  11. from apps.web.dealer.models import Dealer
  12. from apps.web.agent.models import Agent
  13. # Dealer and Agent : 18->20
  14. dealers = Dealer.get_collection().find({'annualTrafficCost': 18})
  15. for dealer in dealers:
  16. Dealer.get_collection().update({'_id': dealer['_id']}, {'$set':{'annualTrafficCost': 20}})
  17. agents = Agent.get_collection().find({'annualTrafficCost': 18})
  18. for agent in agents:
  19. Agent.get_collection().update({'_id': agent['_id']}, {'$set':{'annualTrafficCost': 20}})
  20. print('1/3')
  21. # no expireDate, have dateTimeAdded
  22. devices1 = Device.get_collection().find({'dateTimeAdded': {'$ne': None}})
  23. for device in devices1:
  24. if len(device['dateTimeAdded']) > 10:
  25. dateTimeAdded = datetime.datetime.strptime(device['dateTimeAdded'], "%Y-%m-%d %H:%M:%S")
  26. else:
  27. dateTimeAdded = datetime.datetime.strptime(device['dateTimeAdded'], "%Y-%m-%d")
  28. expireTime = dateTimeAdded + datetime.timedelta(days=365)
  29. deltaDay = (expireTime - datetime.datetime.now()).days
  30. if deltaDay < 7:
  31. expireTime = datetime.datetime.strptime('2018-10-15 00:00:00', '%Y-%m-%d %H:%M:%S')
  32. Device.get_collection().update(
  33. {'_id': device['_id']},
  34. {
  35. '$set': {'expireDate': expireTime}
  36. }
  37. )
  38. print('2/3')
  39. # no expireDate, no dateTimeAdded
  40. bulk = apilib.utils_mongo.BulkHandler(collection=Device.get_collection())
  41. bulk.update(
  42. {'dateTimeAdded': None},
  43. {'$set': {
  44. 'dateTimeAdded': '2017-11-01 00:00:00',
  45. 'expireDate': datetime.datetime.strptime('2018-11-01 00:00:00', '%Y-%m-%d %H:%M:%S')
  46. }}
  47. )
  48. bulk.execute()
  49. print('done!')