Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class User(db.Entity):
- phone_no = Optional(str, 16)
- name = Optional(str, 32)
- id_no = Optional(str, 20)
- channel = Optional(str, 64)
- wechat_openid = Optional(str, 40)
- bind_wechat_time = Optional(datetime)
- is_register = Optional(int)
- password = Optional(str, 64)
- device_token = Optional(str)
- create_time = Optional(datetime)
- platform = Optional(str, 64)
- submit_modules_state = Optional(str, 1024)
- profile_flow_id = Optional(int, default = 0)
- is_closed = Optional(int, default = 0)
- which_step = Optional(int, default = 0) #εͺδΈζ₯οΌ
- first_step_module = Optional(int)
- contact_list = Set('ContactInfo', cascade_delete = True)
- bankcard = Optional('BankCard', cascade_delete = True)
- id_card = Optional('IdCard', cascade_delete = True)
- chsi_info = Set('Chsi', cascade_delete = True)
- check_status = Optional('CheckStatus', cascade_delete = True)
- apply_list = Set('Apply', cascade_delete = True)
- repayment_list = Set('RepaymentInfo', cascade_delete = True)
- address_book = Set('AddressBook', cascade_delete = True)
- call_records = Set('CallRecord', cascade_delete = True)
- msg_records = Set('UserMessageCenter')
- online_status = Optional('UserOnlineStatus')
- sub_channel_id = Optional('Subchannel')
- profile = Optional('Profile')
- class IdCard(db.Entity):
- owner_id = Required(User)
- front_pic = Optional(str, 256)
- back_pic = Optional(str, 256)
- handle_pic = Optional(str, 256)
- @db_session
- def import_user_data(self, request):
- print request
- response = ImportUserDataResponse()
- if not self._ensure_fields_exist(request):
- response.retcode = ERR_FIELDS_NOT_EXIST
- response.errmsg = 'fields not exist'
- return response
- channel = base64.b64decode(request.channel)
- try:
- channel = channel.decode('utf-8')
- except:
- pass
- user = select(u for u in User if u.id_no == request.id_no and u.channel == channel and u.platform == request.platform)
- try:
- if not user:
- name = base64.b64decode(request.name)
- name = name.decode('utf-8')
- user = User(phone_no = request.phone or '', name = name,
- id_no = request.id_no or '', channel = channel or '',
- submit_modules_state = '', profile_flow_id = 0, is_closed = 0,
- password = '123456', first_step_module = 0, which_step = 1,
- create_time = datetime.now(), is_register = 0, platform = request.platform)
- CheckStatus(owner_id = user, profile_status = 0, profile_check_status = 0,
- real_id_verify_status = 0, auto_check_status = 0, apply_status = 0)
- IdCard(owner_id = user)
- commit()
- else:
- user = user.first()
- submit_info = {}
- print 'begin write mysql'
- self._write_profile_to_mysql(user, request, submit_info)
- print 'begin write mongo'
- self._write_profile_to_mongo(user, request, submit_info)
- response.retcode = 0
- response.user_id = user.id
- print response
- return response
- except Exception,e:
- print e
- @db_session
- def _write_profile_to_mysql(self, user, profile, submit_info):
- try:
- if profile.phone:
- user.phone_no = profile.phone
- if profile.name:
- user.name = base64.b64decode(profile.name).decode('utf8')
- submit_info['name'] = user.name
- if profile.id_no:
- user.id_no = profile.id_no
- submit_info['id_card_num'] = profile.id_no
- if profile.contact_list:
- tmp = []
- for contact in profile.contact_list:
- relationship_desc = base64.b64decode(contact.relationship).decode('utf8')
- if relationship_desc in global_relation_dict:
- r_type = global_relation_dict[relationship_desc]
- else:
- r_type = -1
- address = ''
- if contact.address:
- address = base64.b64decode(contact.address).decode('utf8')
- old_contact = select(c for c in ContactInfo if c.owner_id == user and c.phone_no == contact.phone)
- if not old_contact:
- ContactInfo(owner_id = user, name = base64.b64decode(contact.name).decode('utf8'),
- phone_no = contact.phone, relationship = r_type, relationship_desc = relationship_desc,
- address = address)
- else:
- if contact.name:
- old_contact.name = base64.b64decode(contact.name).decode('utf8')
- if relationship_desc:
- old_contact.relationship = r_type
- old_contact.relationship_desc = relationship_desc
- tmp.append({'contact_name': base64.b64decode(contact.name),
- 'contact_tel': contact.phone,
- 'contact_type': r_type})
- submit_info['contact'] = tmp
- if not user.id_card:
Add Comment
Please, Sign In to add comment