update_device_sim_from_jieyang.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. # -*- coding: utf-8 -*-
  2. #!/usr/bin/env python
  3. import threading
  4. import uuid,os
  5. import simplejson as json
  6. import sys,time
  7. import datetime
  8. PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..')
  9. sys.path.insert(0, PROJECT_ROOT)
  10. os.environ.update({"DJANGO_SETTINGS_MODULE": "configs.production"})
  11. import django
  12. django.setup()
  13. from script.base import init_env, get_logger
  14. logger = get_logger(__name__)
  15. from apps.web.device.models import SIMCard,Device
  16. from apilib.utils_datetime import to_datetime
  17. from apps.web.dealer.models import DealerRechargeRecord
  18. from apps.web.constant import Const
  19. #sim卡的全同步脚本
  20. logger.info('start update_device_sim_info_from_jieyang ......... ')
  21. devObjs = Device.objects.filter(iccid = None,ownerId__ne = '',groupId__ne = '',devType__ne = None)
  22. devNos = []
  23. for dev in devObjs:
  24. if not dev.ownerId or not dev.groupId or not dev.devType or dev.logicalCode[0] in ['B','G']:
  25. continue
  26. if not str(dev.logicalCode).isdigit():
  27. continue
  28. if len(dev.logicalCode) < 9 and int(dev.logicalCode) > 30000:
  29. continue
  30. print dev.logicalCode
  31. devNos.append(dev.devNo)
  32. #把这个月充值的设备的状态统一改回来,否则用户充值了,系统还会让别人充值
  33. print 'all is ',len(devNos)
  34. Device.get_collection().update({'devNo':{'$in':devNos}}, {'$set':{'simStatus':'updated','simExpireDate':to_datetime('2021-03-31 00:00:00')}}, multi=True)
  35. Device.invalid_many_device_cache(devNos)
  36. logger.info('finished update_device_sim_info_from_jieyang')