def create_new_user(reg_name, pwd='12345678', type=1): """ 创建一个新用户 :param reg_name: :param pwd: :param type: :return: """ # 创建session会话对象,用来发起请求 do_request = HandleRequest() # 创建mysql对象 do_mysql = HandleMysql() # 添加公共请求头 do_request.add_headers(do_yaml.read_yaml('api', 'version')) # 注册请求的url register_url = do_yaml.read_yaml('api', 'prefix') + '/member/register' while True: # 随机生成一个未注册的手机号 mobile_phone = do_mysql.create_not_exsited_mobile() # 创建一个请求体参数 data = { 'mobile_phone': mobile_phone, 'pwd': pwd, 'type': type, 'reg_name': reg_name } # 调用注册接口,发起请求 do_request.send(register_url, data=data) # 查询数据库用户ID的sql,同时进行了数据校验 sql = do_yaml.read_yaml('mysql', 'select_user_id_sql') # 查询数据库,获取用户ID result = do_mysql.run(sql, args=[mobile_phone], is_more=False) # 判断是否存在,如果result为None,则用户不存在,if语句为真,用户创建成功,跳出循环 if result: user_id = result['id'] break # 构建用户信息为嵌套字典的字典 user_info = { reg_name: { 'user_id': user_id, 'mobile_phone': mobile_phone, 'pwd': pwd, 'reg_name': reg_name} } # 关闭mysql对象 do_mysql.close() # 关闭session会话对象 do_request.close() return user_info
def to_parameter(cls, data): # 使用正则进行匹配得到包含未注册手机号的data if re.search(cls.not_existed_tel_pattern, data): # 创建数据库连接及游标对象 do_mysql = HandleMysql() # 匹配得到含有未注册手机号的data data = re.sub(cls.not_existed_tel_pattern, do_mysql.create_not_exsited_mobile(), data) # 关闭数据库游标对象、连接 do_mysql.close() # 已存在的手机号:投资人手机号 if re.search(cls.existed_tel_pattern, data): # 匹配得到含有已存在的手机号的data data = re.sub( cls.existed_tel_pattern, cls.do_yaml_user.read_yaml('investor', 'mobile_phone'), data) # 已存在手机号的密码:投资人密码 if re.search(cls.existed_pwd_pattern, data): # 匹配得到含有已存在手机号的密码的data data = re.sub(cls.existed_pwd_pattern, cls.do_yaml_user.read_yaml('investor', 'pwd'), data) # 会员ID:投资人ID if re.search(cls.existed_investor_id_pattern, data): # 匹配得到含有投资人会员ID的data data = re.sub( cls.existed_investor_id_pattern, str(cls.do_yaml_user.read_yaml('investor', 'user_id')), data) # 不存在的投资人ID if re.search(cls.not_existed_id_pattern, data): # 创建数据库连接及游标对象 do_mysql = HandleMysql() # 配置文件中获取sql # 这里也可以不把sql语句写入配置文件,直接将sql语句写在下面 sql = do_yaml.read_yaml('mysql', 'select_user_max_id_sql') # 运行sql,得到一个字典 res_max = do_mysql.run(sql, is_more=False) # 获取字典的值,转换为字符串,将原data进行参数化 data = re.sub(cls.not_existed_id_pattern, str(res_max.get('max(id)') + 1), data) # 关闭数据库游标对象、连接 do_mysql.close() # 借款人ID # 正则匹配:查找 if re.search(cls.existed_borrower_id_pattern, data): data = re.sub( cls.existed_borrower_id_pattern, str(cls.do_yaml_user.read_yaml('borrower', 'user_id')), data) # 借款人电话 if re.search(cls.existed_borrower_tel_pattern, data): data = re.sub( cls.existed_borrower_tel_pattern, cls.do_yaml_user.read_yaml('borrower', 'mobile_phone'), data) # 借款人密码 if re.search(cls.existed_borrower_pwd_pattern, data): data = re.sub(cls.existed_borrower_pwd_pattern, cls.do_yaml_user.read_yaml('borrower', 'pwd'), data) # 管理员电话 if re.search(cls.existed_admin_tel_pattern, data): data = re.sub(cls.existed_admin_tel_pattern, cls.do_yaml_user.read_yaml('admin', 'mobile_phone'), data) # 管理员密码 if re.search(cls.existed_admin_pwd_pattern, data): data = re.sub(cls.existed_admin_pwd_pattern, cls.do_yaml_user.read_yaml('admin', 'pwd'), data) # loan_id if re.search(cls.loan_id_pattern, data): loan_id = getattr(Parameterize, 'loan_id') data = re.sub(cls.loan_id_pattern, str(loan_id), data) # 不存在的loan_id if re.search(cls.not_existed_loan_id_pattern, data): # 创建数据库连接及游标对象 do_mysql = HandleMysql() sql = "select id from loan order by id desc limit 0,1;" # 运行sql,得到一个字典 res_max = do_mysql.run(sql, is_more=False) # 获取字典的值,转换为字符串,将原data进行参数化 data = re.sub(cls.not_existed_loan_id_pattern, str(res_max.get('id') + 1), data) # 关闭数据库游标对象、连接 do_mysql.close() return data