123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- # -*- coding: utf-8 -*-
- # !/usr/bin/env python
- import os, 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.setdefault('DJANGO_SETTINGS_MODULE', 'configs.production')
- from script.base import init_env
- init_env(interactive = False)
- from apps.web.device.models import Group
- from apps.web.device.models import Device
- from apps.web.user.models import RechargeRecord, ConsumeRecord, CardConsumeRecord, VCardConsumeRecord, \
- CardRechargeOrder, CardRechargeRecord, MyUser
- from apps.web.dealer.models import VirtualCard
- def reload_all():
- dealers = Dealer.objects.all()
- for dealer in dealers:
- Dealer.get_dealer(str(dealer.id))
- Group.get_own_and_partner_group_list(str(dealer.id))
- codes = DriverCode.objects.all()
- for code in codes:
- DriverCode.get_driver_adapter(code)
- groups = Groups.objects.all()
- for group in groups:
- Group.get_group(str(group.id))
- duplicate_records = Group.get_collection().aggregate([
- {'$group': {
- '_id': {'firstField': "$ownerId", "secondField": "$groupName"},
- 'uniqueIds': {'$addToSet': "$_id"},
- 'count': {'$sum': 1}
- }},
- {'$match': {
- 'count': {'$gt': 1}
- }}
- ], allowDiskUse = True)
- for duplicate_record in duplicate_records:
- if duplicate_record['count'] >= 2:
- print "duplicate ids = %s" % str(duplicate_record['uniqueIds'])
- lived = duplicate_record['uniqueIds'][0]
- deleted_list = duplicate_record['uniqueIds'][1:duplicate_record['count']]
- for groupId in deleted_list:
- Device.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}}, multi = True,
- upsert = False)
- RechargeRecord.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}},
- multi = True,
- upsert = False)
- ConsumeRecord.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}},
- multi = True,
- upsert = False)
- CardConsumeRecord.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}},
- multi = True,
- upsert = False)
- VCardConsumeRecord.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}},
- multi = True,
- upsert = False)
- CardRechargeOrder.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}},
- multi = True,
- upsert = False)
- CardRechargeRecord.get_collection().update({'groupId': str(groupId)}, {'$set': {'groupId': str(lived)}},
- multi = True,
- upsert = False)
- Group.get_collection().delete_many({'_id': {'$in': deleted_list}})
- print 'over'
|