Guest User

Untitled

a guest
Nov 8th, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.08 KB | None | 0 0
  1. class User(db.Entity):
  2. phone_no = Optional(str, 16)
  3. name = Optional(str, 32)
  4. id_no = Optional(str, 20)
  5. channel = Optional(str, 64)
  6. wechat_openid = Optional(str, 40)
  7. bind_wechat_time = Optional(datetime)
  8. is_register = Optional(int)
  9. password = Optional(str, 64)
  10. device_token = Optional(str)
  11. create_time = Optional(datetime)
  12. platform = Optional(str, 64)
  13.  
  14. submit_modules_state = Optional(str, 1024)
  15. profile_flow_id = Optional(int, default = 0)
  16. is_closed = Optional(int, default = 0)
  17. which_step = Optional(int, default = 0) #ε“ͺδΈ€ζ­₯,
  18.  
  19. first_step_module = Optional(int)
  20. contact_list = Set('ContactInfo', cascade_delete = True)
  21. bankcard = Optional('BankCard', cascade_delete = True)
  22. id_card = Optional('IdCard', cascade_delete = True)
  23. chsi_info = Set('Chsi', cascade_delete = True)
  24. check_status = Optional('CheckStatus', cascade_delete = True)
  25. apply_list = Set('Apply', cascade_delete = True)
  26. repayment_list = Set('RepaymentInfo', cascade_delete = True)
  27. address_book = Set('AddressBook', cascade_delete = True)
  28. call_records = Set('CallRecord', cascade_delete = True)
  29. msg_records = Set('UserMessageCenter')
  30. online_status = Optional('UserOnlineStatus')
  31. sub_channel_id = Optional('Subchannel')
  32. profile = Optional('Profile')
  33.  
  34.  
  35. class IdCard(db.Entity):
  36. owner_id = Required(User)
  37. front_pic = Optional(str, 256)
  38. back_pic = Optional(str, 256)
  39. handle_pic = Optional(str, 256)
  40.  
  41.  
  42. @db_session
  43. def import_user_data(self, request):
  44. print request
  45. response = ImportUserDataResponse()
  46. if not self._ensure_fields_exist(request):
  47. response.retcode = ERR_FIELDS_NOT_EXIST
  48. response.errmsg = 'fields not exist'
  49. return response
  50. channel = base64.b64decode(request.channel)
  51. try:
  52. channel = channel.decode('utf-8')
  53. except:
  54. pass
  55. user = select(u for u in User if u.id_no == request.id_no and u.channel == channel and u.platform == request.platform)
  56. try:
  57. if not user:
  58. name = base64.b64decode(request.name)
  59. name = name.decode('utf-8')
  60. user = User(phone_no = request.phone or '', name = name,
  61. id_no = request.id_no or '', channel = channel or '',
  62. submit_modules_state = '', profile_flow_id = 0, is_closed = 0,
  63. password = '123456', first_step_module = 0, which_step = 1,
  64. create_time = datetime.now(), is_register = 0, platform = request.platform)
  65. CheckStatus(owner_id = user, profile_status = 0, profile_check_status = 0,
  66. real_id_verify_status = 0, auto_check_status = 0, apply_status = 0)
  67. IdCard(owner_id = user)
  68. commit()
  69. else:
  70. user = user.first()
  71. submit_info = {}
  72. print 'begin write mysql'
  73. self._write_profile_to_mysql(user, request, submit_info)
  74. print 'begin write mongo'
  75. self._write_profile_to_mongo(user, request, submit_info)
  76. response.retcode = 0
  77. response.user_id = user.id
  78. print response
  79. return response
  80. except Exception,e:
  81. print e
  82.  
  83.  
  84. @db_session
  85. def _write_profile_to_mysql(self, user, profile, submit_info):
  86. try:
  87. if profile.phone:
  88. user.phone_no = profile.phone
  89. if profile.name:
  90. user.name = base64.b64decode(profile.name).decode('utf8')
  91. submit_info['name'] = user.name
  92. if profile.id_no:
  93. user.id_no = profile.id_no
  94. submit_info['id_card_num'] = profile.id_no
  95. if profile.contact_list:
  96. tmp = []
  97. for contact in profile.contact_list:
  98. relationship_desc = base64.b64decode(contact.relationship).decode('utf8')
  99. if relationship_desc in global_relation_dict:
  100. r_type = global_relation_dict[relationship_desc]
  101. else:
  102. r_type = -1
  103. address = ''
  104. if contact.address:
  105. address = base64.b64decode(contact.address).decode('utf8')
  106. old_contact = select(c for c in ContactInfo if c.owner_id == user and c.phone_no == contact.phone)
  107. if not old_contact:
  108. ContactInfo(owner_id = user, name = base64.b64decode(contact.name).decode('utf8'),
  109. phone_no = contact.phone, relationship = r_type, relationship_desc = relationship_desc,
  110. address = address)
  111. else:
  112. if contact.name:
  113. old_contact.name = base64.b64decode(contact.name).decode('utf8')
  114. if relationship_desc:
  115. old_contact.relationship = r_type
  116. old_contact.relationship_desc = relationship_desc
  117. tmp.append({'contact_name': base64.b64decode(contact.name),
  118. 'contact_tel': contact.phone,
  119. 'contact_type': r_type})
  120. submit_info['contact'] = tmp
  121. if not user.id_card:
Add Comment
Please, Sign In to add comment