Esempio n. 1
0
 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
Esempio n. 2
0
    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)
Esempio n. 3
0
 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)
Esempio n. 4
0
 def __init__(self):
     self.find_log = data_make.DataMake()
Esempio n. 5
0
 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
Esempio n. 6
0
    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)
Esempio n. 7
0
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: