1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- # -*- coding: utf-8 -*-
- #!/usr/bin/env python
- """
- 将重复的用户按组归并
- """
- import os
- import sys
- PROJECT_ROOT = os.path.join(os.path.abspath(os.path.split(os.path.realpath(__file__))[0] + "/.."), '..')
- sys.path.insert(0, PROJECT_ROOT)
- os.environ.update({"DJANGO_SETTINGS_MODULE": "configs.testing"})
- import django
- django.setup()
- from apps.web.dealer.models import DealerRechargeRecord
- from apps.web.device.models import Device,SIMCard
- from apps.web.constant import Const
- print u'导入所有充值的设备数据,以修改simStatus字段'
- #先更新所有充值过的设备的sim卡状态为chargedUnupdated.这样在升级期间,可以保证不会影响用户的使用
- chargedDevNos = []
- objs = DealerRechargeRecord.objects.filter(status = 'Paid')
- countAll,devCount = 0,0
- for obj in objs:
- chargedDevNos.extend([item['devNo'] for item in obj.items])
-
- Device.get_collection().update({'devNo':{'$in':chargedDevNos}},{'$set':{'simStatus':'chargedUnupdated'}},multi = True)
- Device.invalid_many_device_cache(chargedDevNos)
- print u'完成导入已经充值的数据'
- print u'将sim卡的超时时间同步到设备上'
- #更新sim卡的相关信息。把所有sim卡信息导入device表。没有sim卡过期时间的,以expireTime为准。确保所有的卡都有sim卡过期时间
- simObjs = SIMCard.objects.all()
- simList = [obj for obj in simObjs]
- count = 0
- for simObj in simList:#这个地方有问题,请参考导入excel的任务,需要更新simStatus
- expireTime = simObj.expireTime
- iccid = simObj.iccid
- try:
- #直接查询device的数据,检查是否需要更新
- devObj = Device.objects(iccid = iccid).only('simExpireDate','simStatus').get()
- except Exception,e:
- continue
-
- #6月份过期的,不要修改simStatus,等到15号sim卡的数据出来后,再刷新
- if expireTime.month == 2019 and expireTime.month == 6:
- continue
- try:
- if (devObj.simExpireDate - expireTime).days > 0 :
- print iccid,'device sim ',devObj.simExpireDate,'sim',expireTime
- count += 1
- except Exception,e:
- print('save dev obj iccid =%s error=%s' % (iccid,e))
-
- if count % 300 == 0:
- print u'同步sim卡超时时间数目为: ',count
-
- ##########################
- print u'完成 sim卡的超时时间同步'
- print u'将没有sim卡超时时间的数据,用expireDate替换掉'
- objs = Device.objects.filter(ownerId__nin = [None, ""], simExpireDate__in = [None, ""])
- count = 0
- devList = [obj for obj in objs]
- for dev in devList:
- try:
- Device.get_collection().update({'devNo':dev.devNo},{'$set':{'simExpireDate':dev.expireDate}})
- count += 1
- except Exception,e:
- print('update device expired error = %s ' % e)
- continue
- if count % 300 == 0:
- print u'完成sim卡的超时时间设置数目',count
- print u'完成sim卡空超时时间的个数为:',count
- print u'全部完成'
|