def money_cut(self, name: str, money_out: float): """取款流程 =>[{"user_name":余额}] """ data_money_add = data_make.DataMake() data_inquiry = data_money_add.select_deposit_data(f'{name}') new_money = data_inquiry[0]['deposit_data'] - money_out data_get = data_money_add.update_deposit(f'{name}', new_money) return data_get
def __login_in(self): """用户登录流程\n 登录成功,返回用户名\n 用户返回,返回值0\n 其它情况,已在该方法内处理 """ user_count = 3 # 尝试次数初始化 print(""" ==========我们来愉快的开始登录吧~========== ========[quit]:退出 [back]:返回======== """) while True: user_name_input = input('输入你的用户名:') control_result = self.control(user_name_input) # 判断用户是否输入退出或返回 if control_result: # 如果返回 return 0 else: pass user_password_input = input('输入你的密码:') control_result = self.control(user_password_input) if control_result: return 0 else: pass self.control(user_password_input) if user_count == 0: # 判断是否还有尝试机会 self.quit() if user_name_input and user_password_input != '': # 判断输入是否为空 date_login_in = data_make.DataMake( ) # 实例化data_make的DataMake()类 data_get = date_login_in.login_find( user_name_input, user_password_input) # 调用DataMake()的login_find()方法 if data_get[0]: # print(f'=========={data_get[1]},欢迎您!==========\n') return data_get[1] # 返回用户名 elif data_get[1] == 'name_none': print( f'==========【{user_name_input}】这个用户名不存在,请返回注册。==========' ) time.sleep(1) return 0 else: print(f'==========密码错误!你还有{user_count}次机会尝试。==========') user_count -= 1 time.sleep(1) else: print('==========用户名或密码不能为空!==========') time.sleep(1)
def __login_add(self): """用户注册流程\n 注册成功,返回用户名\n 用户返回,返回值0\n 其它情况,已在该方法内处理 """ test1 = f'欢迎来到蜗牛银行,我们来开始注册一个账号吧!' test2 = '' test3 = ' [quit]:退出 [back]:返回 ' print('\t\t' + test2.center(70, '*') + '\n\t\t' + '*' + test1.center(55, '=') + '*\n\t\t' + test3.center(67, '*')) while True: user_name_input = input('输入你想使用的用户名:') control_result = self.control(user_name_input) # 判断用户是否输入退出或返回 if control_result: # 如果返回 return 0 else: pass user_password_input = input('输入你的密码:') control_result = self.control(user_password_input) # 判断用户是否输入退出或返回 if control_result: # 如果返回 return 0 else: pass data_login_add = data_make.DataMake() data_login_get = data_login_add.login_add(user_name_input, user_password_input) if data_login_get[0] == 0: data_login_initia = data_login_add.initia_user( user_name_input) # 初始化数据库的用户数据表 if data_login_initia: print(f'{data_login_get[1]},恭喜您注册成功。') return data_login_get[1] # 返回用户名 else: # 该逻辑正常情况下不会执行,如被执行,查看用户数据表是否存在重复,或用户表未写上 print(f'好像遇到了一些问题o(╥﹏╥)o,问题详情:{data_login_initia[1]}') elif data_login_get[0] == 1: print(f'不好意思,【{user_name_input}】这个用户名已经被使用过了,请重新起一个吧~') time.sleep(1) elif data_login_get[0] == 2: print(f'好像遇到了一些意外情况,再试一次呢~') time.sleep(1)
def __init__(self): self.find_log = data_make.DataMake()
def inquiry(self, name: str): """查询用户余额流程""" data_inquiry = data_make.DataMake() data_get = data_inquiry.select_deposit_data(f'{name}') money_num = data_get[0]['deposit_data'] return money_num
def user_do(self, name: str): """ 用户登录使用系统\n 用户选择登录,成功后返回(1,用户名)\n 用户选择注册,成功后返回(2,用户名)\n 其余已知错误均在class Login的方法中处理,直接抛出错误。\n """ while True: text_name = f'【{name}】欢迎回来!请选择你要进行的业务。' print(""" ********************************************************************\n""" + text_name.center(58, '=') + """ *===========请选择操作:1.查询 2.取款 3.存款 4.转账 5.退出===============* ******************************************************************** """) user_pick = input('输入您想进行的操作的编号:') if user_pick.isdigit(): # 检查是否为正整数 user_pick_int = int(user_pick) if user_pick_int == 1: """查询流程""" new_user_find = user_find.UserFind() new_user_find.find_do(name) print('即将返回!') time.sleep(1) continue elif user_pick_int == 2: """取款流程""" input_money = input('\n输入你要取款的金额:') if input_money.replace(".", "", 1).isdigit( ): # 转换小数,去掉小数点,str.replace(old, new[, max]) float_money = float(input_money) # 强制装换为浮点型 start_money = self.inquiry(name) # 查询起始余额 if float_money >= 0: if start_money >= float_money: result = self.money_cut(name, float_money) # 注册方法 long_text_1 = f'取款成功!' long_text_2 = f'您的原始金额为:{start_money}元 | 币种:人民币' long_text_3 = f'目前的存款余额为: {result[0]["deposit_data"]}元 | 币种:人民币' result_text = (long_text_1.center(68, '=') + "\n" + long_text_2.center(60, '=') + "\n" + long_text_3.center(60, '=')) print(result_text) data_log.log(name, 'add_deposit_data', start_money, result[0]["deposit_data"], float_money) # 提交操作日志 time.sleep(1) else: text_out = f'您的余额不足!您目前余额为{start_money}元 | 币种:人民币' print(text_out) time.sleep(1) else: print('========== 请输入正确的数字! ==========') time.sleep(1) else: print('========== 请输入正确的数字! ==========') time.sleep(1) elif user_pick_int == 3: """存款流程""" input_money = input('\n输入你要存款的金额:') if input_money.replace(".", "", 1).isdigit(): # 判断是否为数字 float_money = float(input_money) start_money = self.inquiry(name) if float_money >= 0: # 判断输入金额是否小于0 result = self.money_add(name, float_money) # 注册方法 long_text_1 = f'存款成功!' long_text_2 = f'您的原始金额为:{start_money}元 | 币种:人民币' long_text_3 = f'目前的存款余额为: {result[0]["deposit_data"]}元 | 币种:人民币' result_text = (long_text_1.center(68, '=') + "\n" + long_text_2.center(60, '=') + "\n" + long_text_3.center(60, '=')) print(result_text) data_log.log(name, 'cut_deposit_data', start_money, result[0]["deposit_data"], float_money) # 提交操作日志 time.sleep(1) else: print('========== 请输入正确的数字! ==========') time.sleep(1) else: print('========== 请输入正确的数字!str ==========') time.sleep(1) elif user_pick_int == 4: """转账流程""" input_money = input('\n输入你要转账的金额:') if input_money.replace(".", "", 1).isdigit(): # 检查输入是否为数字 float_money = float(input_money) # 强制转换为浮点类型 input_name = input('\n输入你要转账的用户名:') data_checking_name = data_make.DataMake() # 实体化 checkingname_result = data_checking_name.find_user( input_name) # 检查是否存在此用户 if checkingname_result: start_money = self.inquiry(name) # 查询转账用户起始金额 start_in_money = self.inquiry( input_name) # 查询被转账用户起始金额 if float_money >= 0: result = self.transferOut( name, input_name, float_money) # 调用转账流程 long_text_1 = f'转账成功!' long_text_2 = f'您的原始金额为:{start_money}元 | 币种:人民币' long_text_3 = f'您的目前的存款余额为: {result[0][0]["deposit_data"]}元 | 币种:人民币' result_text_1 = (long_text_1.center(68, '=') + "\n" + long_text_2.center(60, '=') + "\n" + long_text_3.center(60, '=')) long_text_4 = f'被转账用户的原始金额为:{start_in_money}元 | 币种:人民币' long_text_5 = f'被转账用户目前的存款余额为: {result[1][0]["deposit_data"]}元 | 币种:人民币' result_text_2 = (long_text_4.center(60, '=') + "\n" + long_text_5.center(60, '=')) print(result_text_1 + "\n" + result_text_2) data_log.log( name, f'trans_deposit_data_{input_name}', start_money, result[0][0]["deposit_data"], float_money) # 提交操作日志 time.sleep(2) else: print('========== 请输入正确的数字! ==========') time.sleep(1) else: print('========== 你要转账的用户不存在! ==========') time.sleep(1) else: print('========== 请输入正确的数字! ==========') time.sleep(1) elif user_pick_int == 5: user_login.Login.quit() else: print('==========请输入正确编号!==========') time.sleep(1) else: print('==========请输入正确编号!==========') time.sleep(1)
import time import data_make import user_login import user_find data_log = data_make.DataMake() class UserHome: def __init__(self): pass def user_do(self, name: str): """ 用户登录使用系统\n 用户选择登录,成功后返回(1,用户名)\n 用户选择注册,成功后返回(2,用户名)\n 其余已知错误均在class Login的方法中处理,直接抛出错误。\n """ while True: text_name = f'【{name}】欢迎回来!请选择你要进行的业务。' print(""" ********************************************************************\n""" + text_name.center(58, '=') + """ *===========请选择操作:1.查询 2.取款 3.存款 4.转账 5.退出===============* ******************************************************************** """) user_pick = input('输入您想进行的操作的编号:') if user_pick.isdigit(): # 检查是否为正整数 user_pick_int = int(user_pick) if user_pick_int == 1: