github.com/jincm/wesharechain@v0.0.0-20210122032815-1537409ce26a/server/block/api/account/user.py (about) 1 2 #coding:utf-8 3 4 from tornado.web import RequestHandler 5 from util.exception import ParamExist 6 from util.convert import is_user_name, is_mobile, bs2utf8 7 import logging 8 import json 9 from operation import user 10 from operation import verify_manage 11 from util import common_util 12 import time 13 14 15 LOG = logging.getLogger(__name__) 16 17 18 class UserHandler(RequestHandler): 19 20 def initialize(self, **kwds): 21 pass 22 23 def get(self): 24 pass 25 26 def post(self): 27 try: 28 phone = bs2utf8(self.get_argument('phone', '')) 29 verify_code = self.get_argument('verify_code', '') 30 invitation = self.get_argument('invitation', '') 31 32 if not is_mobile(phone): 33 self.finish(json.dumps({'state': 2, "message": "User phone format error"})) 34 return 35 36 user_op = user.UserOp() 37 38 # 验证手机是否已经被注册 39 filters = { 40 "phone": phone 41 } 42 # user_list = user_op.exist(filters) 43 if user_op.exist(filters): 44 self.finish(json.dumps({'state': 3, "message": "User phone registered"})) 45 return 46 47 # 验证验证码 48 code_op = verify_manage.VerifyOp() 49 # code_list = code_op.lists(**filters) 50 # if code_list: 51 # code_info = code_op.views(code_list[0]) 52 # 53 # if verify_code != code_info.get('verify_code', ''): 54 # self.finish(json.dumps({'state': 1, "message": "Verify code not equl"})) 55 # return 56 verify_re = code_op.verify_code_phone(phone=phone, code=verify_code) 57 if not verify_re: 58 self.finish(json.dumps({'state': 1, "message": "Verify code failed"})) 59 return 60 61 # 验证邀请码,并通过邀请码获取邀请用户 62 filters = { 63 "invitation": invitation 64 } 65 user_list = user_op.lists(**filters) 66 if not user_list: 67 self.finish(json.dumps({'state': 4, "message": "Not found invated user"})) 68 return 69 70 user_info = user_op.views(user_list[0]) 71 referrer_id = user_info.get('id', '') # 邀请人用户id 72 73 user_op.create(phone=phone, referrer_id=referrer_id) 74 75 self.finish(json.dumps({'state': 0, "message": "sing in succes"})) 76 except ParamExist as ex: 77 LOG.error("Sign error:%s" % ex) 78 self.finish(json.dumps({'state': 9, 'message': 'params exit'})) 79 except Exception as ex: 80 LOG.error("Sign error:%s" % ex) 81 self.finish(json.dumps({'state': 10, 'message': 'account sign error'})) 82 83 def put(self, *args, **kwargs): 84 try: 85 id = self.get_argument('id', '') 86 nick_name = self.get_argument('nick_name', None) 87 sex = self.get_argument('sex', None) 88 birthday = self.get_argument('birthday', None) 89 phone = bs2utf8(self.get_argument('phone', None)) 90 token = self.get_argument('token', None) 91 92 user_op = user.UserOp() 93 94 if not id: 95 LOG.error("Cannot update user info") 96 self.finish(json.dumps({'state': 1, "message": "Cannot update user info"})) 97 return 98 99 update_dict = {} 100 # _ = user_op.login(phone) 101 # ser_token = common_util.gen_token(_.get("id"), int(time.time())) 102 # if ser_token != token: 103 # self.finish(json.dumps({'state': 10, 'message': 'account sign error'})) 104 if phone is not None: 105 if not is_mobile(phone): 106 self.finish(json.dumps({'state': 1, "message": "User phone format error"})) 107 return 108 109 filters = { 110 "phone": phone 111 } 112 if user_op.exist(filters): 113 self.finish(json.dumps({'state': 2, "message": "User phone registered"})) 114 return 115 116 update_dict['phone'] = phone 117 118 if nick_name is not None: 119 if not is_user_name(nick_name): 120 self.finish(json.dumps({'state': 3, "message": "User name format error"})) 121 return 122 update_dict['nick_name'] = nick_name 123 124 if sex is not None: 125 update_dict['sex'] = sex 126 127 if birthday is not None: 128 update_dict['birthday'] = birthday 129 130 if user_op.update(id=id, **update_dict): 131 self.finish(json.dumps({'state': 0, "message": "update success"})) 132 else: 133 self.finish(json.dumps({'state': 1, "message": "update into failed"})) 134 135 except ParamExist as ex: 136 LOG.error("Update error:%s" % ex) 137 self.finish(json.dumps({'state': 9, 'message': 'params exit'})) 138 139 except Exception as ex: 140 LOG.error("Update error:%s" % ex) 141 self.finish(json.dumps({'state': 10, 'message': 'Update error'}))