translate_device_between_dealer.py 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. # -*- coding: utf-8 -*-
  2. # !/usr/bin/env python
  3. import os
  4. from base import init_env
  5. os.environ.setdefault("DJANGO_SETTINGS_MODULE", "configs.production")
  6. init_env(interactive=False)
  7. from apps.web.device.models import Device
  8. from apps.web.dealer.models import Dealer
  9. from apps.web.device.models import Group
  10. from bson.json_util import dumps
  11. from apps.web.user.models import MyUser
  12. old_dealer_id = 'None'
  13. new_dealer_id = ''
  14. new_group_id = ''
  15. logicalCodes = []
  16. old_group_ids = []
  17. for logicalCode in logicalCodes:
  18. device = Device.get_collection().find_one({'logicalCode': logicalCode})
  19. if device['ownerId'] != old_dealer_id:
  20. print 'error {}'.format(logicalCode)
  21. continue
  22. print dumps(device)
  23. old_group_id = device['groupId']
  24. old_group_ids.append(old_group_id)
  25. Device.get_collection().update_one({'logicalCode': logicalCode, 'groupId': old_group_id},
  26. {'$set': {'ownerId': new_dealer_id, 'groupId': new_group_id}})
  27. Device.invalid_device_cache(device['devNo'])
  28. Device.invalid_group_device_list_cache([old_group_id, new_group_id])
  29. # 备份用户
  30. # for user in MyUser.get_collection().find({'groupId':{'$in': old_group_ids}}):
  31. # print dumps(user)
  32. # 迁移用户
  33. # users = MyUser.objects(groupId__in=old_group_ids)
  34. # for user in users: # type: MyUser
  35. # balance = user.balance
  36. # total_consume = user.total_consumed
  37. # total_charged = user.total_recharged
  38. #
  39. # print 'openId = {}, groupId = {}, newGroupId = {}, balance = {}, totalc = {}, totalr = {}'.format(
  40. # user.openId, user.groupId, new_group_id, balance, total_consume, total_charged)
  41. #
  42. # try:
  43. # user.update(groupId=new_group_id)
  44. # print 'finished, openId = {}, groupId = {}'.format(user.openId, new_group_id)
  45. # except Exception as e:
  46. # # print(e)
  47. # new_user = MyUser.objects(openId=user.openId, groupId=new_group_id).first()
  48. # if new_user:
  49. # new_user.update(inc__balance=balance, inc__total_recharged=total_charged, inc__total_consumed=total_consume)
  50. # user.delete()
  51. # print 'finished2, openId = {}, groupId = {}'.format(new_user.openId, new_user.groupId)
  52. # else:
  53. # print 'failure, openId = {}, groupId = {}'.format(user.openId, user.groupId)