def repay(acc_data): ''' 打印当前账户的余额信息 让用户偿还账单 :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) #for k,v in account_data.items(): # print(k,v ) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: repay_amount = input("\033[33;1mInput repay amount:\033[0m").strip() if len(repay_amount) > 0 and repay_amount.isdigit(): print('ddd 00') new_balance = transaction.make_transaction(trans_logger, account_data, 'repay', repay_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % repay_amount) if repay_amount == 'b': back_flag = True
def withdraw(user_data): print('开始取款') tran_type = 'withdraw' back_flag = False while not back_flag: account = user_data['account_id'] acc_data = accounts.load_current_balance(account) balance = acc_data['balance'] amount = input('输入您要还的金额或者按b返回上一层,金额数必须\033[31m大于0\33[1m:') if len(amount)>0 and amount.isdigit(): amount = float(amount) if balance-float(amount) <= (acc_data['credit'])*0.5: #其实这个一个在交易模块做的~并且额度的比例应该是可以设置才对 print('您不能取走超过额度的50%') back_flag = True continue new_balance = transaction.make_transaction(acc_data=acc_data, \ amount=amount,\ tran_type=tran_type) if accounts.upda_current_balance(user_data,new_balance): print('后您现在的余额是:', new_balance) else: print('\033[31m交易失败\033[0m') elif amount == 'b': back_flag = True else: print('这个不是一个数字请输入正确的数字') exit_flag = False return exit_flag
def withdraw(acc_data): ''' 提现 :param acc_data: :return: ''' account_data = data_handler.get_user_db(acc_data['account_id']) tr_log_obj = logger.set_tr_logger(account_data['id']) current_balance = '''---------------- BALABCE INFO -------------- Credit : %s Balance: %s -------------------------------------------''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: withdraw_amount = input( '\033[1;34mInput withdraw amount: \033[0m').strip() if withdraw_amount.isdigit(): new_balance = transaction.make_transaction(tr_log_obj, account_data, 'withdraw', withdraw_amount) if new_balance: print('New:Balance:\033[32;1m %s \033[0m' % new_balance['balance']) elif withdraw_amount == 'b': # 返回 back_flag = True elif withdraw_amount == 'q': # 退出程序 exit('请保管好您的信用卡,欢迎下次使用!') else: # 错误输入 print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % withdraw_amount)
def repay(acc_data): account_data = accounts.load_current_balance(acc_data['account_id']) print('Balance Info'.center(50, '-')) print(u''' 余额: %d 本期应还金额: %d 还款日: %d ''' % (account_data['balance'], account_data['credit'] - account_data['balance'], account_data['pay_date'])) back_flag = True while back_flag: repay_amount = input('\33[33;1mInput Repay Amount: \33[0m').strip() if len(repay_amount) == 0: continue if repay_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger, account_data, 'repay', repay_amount) if new_balance: print('\33[42;1mNew Balance is %s : \33[0m' % new_balance['balance']) back_flag = False else: print( '\33[31;1m%s is not a valid amount,only accept integer : \33[0m' % repay_amount)
def transfer(acc_data): # 转账 account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) flag = False while not flag: # 输入转账卡号(账号) transfer_account = input("Enter transfer account: ") # 输入转账金额 transfer_money = input("Enter transfer money: ") if (len(transfer_money) > 0 and transfer_money.isdigit()) and len(transfer_account) > 0: # 这里使用**kwargs 扩展参数, transfer_account 根据这个dict key判断是否需要转账 new_balance = transaction.make_transaction( transaction_log, account_data, 'transfer', transfer_money, transfer_account=transfer_account) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) elif transfer_account == 'b' or transfer_money == 'b': flag = True else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % transfer_account)
def checkout(shop_data): print('结账咯') #做到这里的时候就是和认证模块做交互 acc_data = auth.acc_login(user_data) balance = acc_data['balance'] total = float(shop_data['total']) if total > balance: print('太贵了您买不起') else: tran_type = 'consume' #做到这里的就可以和数据库交互了 new_balance = transaction.make_transaction(acc_data=acc_data, \ amount=total, \ tran_type=tran_type) account = user_data['account_id'] data = accounts.load_current_balance(account) user_data['account_data'] = data if accounts.upda_current_balance(user_data, new_balance): print('''您的余额是:%s 您消费了:%s''' % (new_balance, total)) shop_data['shoplist'] = [] #已经完成了购买那么就要清空了购物车 shop_data['total'] = 0 else: print('\033[31m交易失败\033[0m')
def transfer(acc_data): #4、转账 account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = """ ------balance 余额 INFO --------- Credit: %s Balance: %s """ % (account_data['id'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: duifang_account = input("\033[31;1m请输入对方帐户名:\033[0m").strip() transfer_amount = input("\033[31;1m转账金额:\033[0m").strip() if duifang_account and transfer_amount == "b": return elif len(transfer_amount) > 0 and transfer_amount.isdigit(): new_blance = transaction.make_transaction( trans_logger, account_data, "transfer", transfer_amount, re_account=duifang_account) if new_blance: print("\033[41;1m转账成功!\033[0m") print("\033[33;1m最新余额:%s\033[0m" % new_blance["balance"]) else: print("\033[33;1m 账户或输入金额 is not a valid amount!\033[0m")
def withdraw(acc_data): ''' print current balance and let user do the withdraw action :param acc_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: withdraw_amount = input( "\033[33;1mInput withdraw amount:\033[0m").strip() if withdraw_amount.isdigit() and len(withdraw_amount) > 0: new_balance = transaction.make_transaction(trans_logger, account_data, 'withdraw', withdraw_amount) if new_balance: print('''\033[31;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % withdraw_amount) if withdraw_amount == 'b': back_flag = True
def repay(acc_data): """ 还款功能 :param acc_data: 用户数据 :return: """ # 实时获取用户数据,保证数据是最新的 account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) flag = False while not flag: # 输入还款金额 repay_amount = input("Enter repayment amount: ").strip() if len(repay_amount) > 0 and repay_amount.isdigit(): new_balance = transaction.make_transaction(transaction_log, account_data, 'repay', repay_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) elif repay_amount == 'b': flag = True else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % repay_amount)
def withdraw(acc_data): # 取款 account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) flag = False while not flag: # 输入取款金额 withdraw_money = input("Enter withdrawal amount: ").strip() if len(withdraw_money) > 0 and withdraw_money.isdigit(): new_balance = transaction.make_transaction(transaction_log, account_data, 'withdraw', withdraw_money) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) elif withdraw_money == 'b': flag = True else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % withdraw_money)
def withdraw(acc_data): ''' 账单取款函数 :param acc_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' -*-*-*-*-*-*-*-*- 账户余额信息 -*-*-*-*-*-*-*-*- Credit : %s Balance: %s\n''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: withdraw_amount = input("请输入取款余额[q=quit]>>>:").strip() if len(withdraw_amount) > 0 and withdraw_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger, account_data, 'withdraw', withdraw_amount) time.sleep(0.1) if new_balance: print('''\033[42;1m余额总数:%s\033[0m,重新登录后生效~''' % (new_balance['balance'])) elif withdraw_amount == 'q': back_flag = True else: print("[\033[31;1m输入不合法,请重新输入\033[0m]")
def repay(acc_data): ''' 存款 acc_data:包括ID,is_authenticaed,用户帐号信息 :param acc_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) print('repay', account_data) current_balance = ''' ---------------------BALANCE INFO----------------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: repay_amount = input( "\033[32;1mInput repay amout(input 'b' is back):\033[0m").strip() if len(repay_amount) > 0 and repay_amount.isdigit(): print("xia") new_balance = transaction.make_transaction(trans_logger, account_data, 'repay', repay_amount) print(new_balance) if new_balance: print('''\033[34;1mNEW Balance:%s\033[0m''' % (new_balance['balance'])) elif repay_amount == 'b': back_flag = True else: print( "\033[31;1m%s is not valid amount ,Only accept interger!\033[0m" % repay_amount)
def withdraw(acc_data): account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = '''------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: withdraw_amount = input( 'input withdraw amount, input q to go back: ').strip() if len(withdraw_amount) > 0 and withdraw_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger, account_data, 'withdraw', withdraw_amount) if new_balance: print('New Balance: %s' % (new_balance['balance'])) elif withdraw_amount == 'q': back_flag = True else: print('Invalid Amount!') user_data['account_data'] = accounts.load_current_balance( acc_data['account_id']) interactive(user_data)
def repay(acc_data): ''' print current balance and let user repay the bill :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) #for k,v in account_data.items(): # print(k,v ) current_balance= ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' %(account_data['credit'],account_data['balance']) print(current_balance) back_flag = False while not back_flag: repay_amount = input("\033[33;1mInput repay amount:\033[0m").strip() if len(repay_amount) >0 and repay_amount.isdigit(): print('ddd 00') new_balance = transaction.make_transaction(trans_logger,account_data,'repay', repay_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' %(new_balance['balance'])) else: print('\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % repay_amount) if repay_amount == 'b': back_flag = True
def transfer(acc_data): account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: trans_amount = input('\033[33;1mInput transfer amount:\033[0m') if len(trans_amount) > 0 and trans_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger, account_data, 'transfer', trans_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % trans_amount) if trans_amount == 'b': back_flag = True
def transfer(acc_data): ''' 转账 :param access_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = '''---------------------BALANCE INFO----------------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: transfer_amount = input( "\033[33;1mInput transfer amount(input 'b' is back):\033[0m" ).strip() if len(transfer_amount) > 0 and transfer_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger, account_data, 'transfer', transfer_amount) if new_balance: print('''\033[32;1mNEW Balance:%s\033[0m''' % (new_balance['balance'])) elif transfer_amount == "b": back_flag = True else: print( '\033[31;1m[%s] is not a valid amount , only accept integer\033[0m' % transfer_amount)
def repay(acc_data): ''' print current balance and let user repay the bill :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: repay_amount = input("\033[33;1mInput repay amount:\033[0m").strip() if len(repay_amount) > 0 and repay_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger, account_data, 'repay', repay_amount) if new_balance: print("'\033[34;1mNew Balance:%s\033[0m" % new_balance['balance']) else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % repay_amount) if repay_amount == 'b': back_flag = True
def transfer(acc_data): ''' print current balance and let user do the transfer action :param acc_data: :return: ''' roll_out_account_data = accounts.load_current_balance( acc_data['account_id']) # print(roll_out_account_data) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (roll_out_account_data['credit'], roll_out_account_data['balance']) print(current_balance) back_flag = False while not back_flag: transfer_id = input( "\033[34;1mInput transfer id(return input(b)):\033[0m").strip() if transfer_id == 'b': back_flag = True continue is_exist = accounts.load_account_is_exist(transfer_id) if is_exist: roll_in_account_data = accounts.load_current_balance(transfer_id) transfer_amount = input( "\033[33;1mInput transfer amount(return input(b)):\033[0m" ).strip() if transfer_id == 'b': back_flag = True continue if len(transfer_amount) > 0 and transfer_amount.isdigit(): roll_out_id = roll_out_account_data['id'] new_balance = transaction.make_transaction( trans_logger, roll_out_account_data, 'transfer_roll_out', transfer_amount) if new_balance: print('''\033[35;1m%s New Balance:%s\033[0m''' % (roll_out_id, new_balance['balance'])) new_balance = transaction.make_transaction( trans_logger, roll_in_account_data, 'transfer_roll_in', transfer_amount) print('''\033[35;1m%s New Balance:%s\033[0m''' % (transfer_id, new_balance['balance'])) else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % transfer_amount)
def transfer(acc_data): ''' 转账 :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: receiver = input("\033[33;1mInput receiver:\033[0m").strip() if receiver == acc_data["account_id"]: print("\033[33; receiver is yourself ... \033[0m") elif receiver == "b": back_flag = True else: #判断收款人是否存在,存在返回用户信息,不存在返回False receiver_account_data = auth.auth_check(receiver) if receiver_account_data: if receiver_account_data["status"] == 0: #检查收款人的状态是否正常 transfer_amount = input( "\033[33;1mInput transfer amount:\033[0m").strip() if len(transfer_amount) > 0 and transfer_amount.isdigit(): new_balance = transaction.make_transaction( trans_logger, account_data, 'transfer', transfer_amount) transaction.make_transaction(trans_logger, receiver_account_data, 'repay', transfer_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) back_flag = True else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % transfer_amount) if transfer_amount == 'b': back_flag = True else: continue
def transfer(acc_data): ''' 打印当前余额,并转帐 :param acc_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s (Tip: input [b] to back)''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: receiver = input("\033[33;1mInput receiver:\033[0m").strip() # 收款人 if receiver == account_data["id"]: # 判断帐号是否为自己 print("\033[31;1mThe receiver is yourself!\033[0m") continue elif receiver == "b": break else: receiver_account_data = auth.acc_check(receiver) # 判断收款人帐号是否存在和过期 status = receiver_account_data['status'] if status == 0: # 只有收款人为普通帐户,且状态正常,才能转帐 transfer_amount = input( "\033[33;1mInput transfer amount:\033[0m").strip() if len(transfer_amount) > 0 and transfer_amount.isdigit(): new_balance = transaction.make_transaction( trans_logger, account_data, 'transfer', transfer_amount) transaction.make_transaction(trans_logger, receiver_account_data, 'receive', transfer_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) else: print( '[\033[31;1m%s\033[0m] is not a valid amount, only accept integer!' % transfer_amount) if transfer_amount == 'b': back_flag = True
def transfer(acc_data): ''' 打印当前余额,并转帐 :param acc_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' -*-*-*-*-*-*-*-*- 账户信息 -*-*-*-*-*-*-*-*- Credit : %s Balance: %s ''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: receiver = input("\033[33;1m收款人:\033[0m[q=quit]>>>:").strip() # 收款人 if receiver == account_data["id"]: print("\033[31;1m收款人不能为自己\033[0m") continue elif receiver == "q": break else: receiver_account_data = auth.acc_check(receiver) status = receiver_account_data['status'] if status == 0: transfer_amount = input( "\033[33;1m收款金额:\033[0m[q=quit]").strip() if len(transfer_amount) > 0 and transfer_amount.isdigit(): new_balance = transaction.make_transaction( trans_logger, account_data, 'transfer', transfer_amount) transaction.make_transaction(trans_logger, receiver_account_data, 'receive', transfer_amount) if new_balance: print('''\033[42;1m帐号余额:%s\033[0m''' % (new_balance['balance'])) else: print('[\033[31;1m输入不合法,请重新输入\033[0m]') if transfer_amount == 'q': back_flag = True if transfer == 'q': back_flag = True
def shopping_mall_this(acc_data): account_data = accounts.load_current_balance( acc_data['account_id']) #取得最新数据 saving = account_data["balance"] #得到可用额度 surplus_amount = main.shopping_action(saving) #需要返回 消费的金额 new_blance = transaction.make_transaction(trans_logger, account_data, 'consume', surplus_amount) # 交易完成后得到最新数据 if new_blance: print("\033[33;1m最新余额:%s\033[0m" % new_blance["balance"])
def consume_api(acc_data, amount, goods): new_acc_data = transaction.make_transaction(transaction_logger, acc_data, 'consume', amount) if new_acc_data: consumption_logger.info('account:%s goods:%s payed:%s' % (new_acc_data['id'], goods, amount)) return True else: print('Payment is failed.') return False
def consume(total_cost): account = input('请输入您的信用卡账号: ').strip() passwd = input('请输入您的行用卡密码: ').strip() payment_date = auth.account_auth(account, passwd) print('账户现有余额为%s' % (payment_date['balance'])) if payment_date: new_balance = transaction.make_transaction(payment_date, 'transfer', total_cost) if new_balance: print('账户消费后余额为%s' % (new_balance['balance']))
def transfer(user_data): """ 实现转账功能 :param user_data: :return: """ back_flag = True # 标志位 while back_flag: account_data = accounts.load_account( user_data['account_id']) # 加载用户最新信息 current_balance = ''' ----- BALANCE INFO ----- Credit_limit : %s Credit_balance: %s''' % ( account_data['credit_limit'], account_data['credit_balance']) print(current_balance) transfer_account = input("请输入收款人账号:").strip() # 用户输入收款人账号 if transfer_account.isdigit(): transfer_account_data = accounts.load_account( int(transfer_account)) # 加载收款人用户信息 if not transfer_account_data: # 判断是否存在该卡号 print("你输入的卡号有误,请重新输入") continue transfer_amount = input("请输入转账金额:").strip() # 用户输入转账金额 # 判断用户是否输入整型数字 if len(transfer_amount) > 0 and transfer_amount.isdigit(): # 当前卡转账后剩余的钱 new_account_data = transaction.make_transaction( account_data, "withdraw", transfer_amount, transaction_logger) if new_account_data: # 收款方进账的钱 new_transfer_account_data = transaction.make_transaction( transfer_account_data, "accept", transfer_amount, transaction_logger) print("当前卡最新余额为:%s" % new_account_data['credit_balance']) elif transfer_amount == "b" or transfer_amount == "back": # 返回功能 back_flag = False else: print("请合法输入数字或者返回键b") elif transfer_account == "b" or transfer_account == "back": # 返回功能 back_flag = False else: print("请合法输入数字或者返回键b")
def transfer(access_data): """ 转帐 :return: """ print(access_data) print("transfer") # 调用account模块的load_account方法,从数据库从load出用户信息 account_data = account.load_account(access_data["account_id"]) print(account_data) current_balance = """ -------------BALANCE INFO-------------- Credit:%s Balance:%s """ % (account_data["credit"], account_data["balance"]) back_flag = False while not back_flag: print(current_balance) transfer_amount = input( "\033[31;1mInput transfer amount(b=back):\033[0m").strip() # 如果用户输入整型数字 if len(transfer_amount) > 0 and transfer_amount.isdigit(): # 调用transaction模块的方法,参数分别是用户帐户信息,交易类型,交易金额 new_account_data = transaction.make_transaction( account_data, "transfer", transfer_amount, transaction_logger) if new_account_data: print("\033[42;1mNew Balance:%s\033[0m" % new_account_data["balance"]) new_account_data2 = transaction.make_transaction( account_data, "repay", new_account_data["balance"], transaction_logger) if new_account_data2: print("\033[42;1mNew Balance2:%s\033[0m" % new_account_data2["balance"]) else: print( "\033[31;1m%s is not valid amount,Only accept interger!\033[0m" % transfer_amount) if transfer_amount == "b" or transfer_amount == "back": back_flag = True
def transfer(acc_data): """ print current balance and let user do the transfer action :param acc_data: :return: """ account_data = accounts.load_current_balance(acc_data['account_id']) current_balance = ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' % (account_data['credit'], account_data['balance']) print(current_balance) back_flag = False while not back_flag: transfer_account_id = input( "\033[33;1mInput transfer account:\033[0m").strip() if transfer_account_id == 'b': back_flag = True continue transfer_account_data = accounts.load_current_balance( transfer_account_id) if transfer_account_data: transfer_amount = input( "\033[33;1mInput transfer amount:\033[0m").strip() if len(transfer_amount) > 0 and transfer_amount.isdigit(): new_balance = transaction.make_transaction( trans_logger, account_data, 'transfer', transfer_amount) transfer_account_new_balance = transaction.make_transaction( trans_logger, transfer_account_data, 'repay', transfer_amount) if new_balance and transfer_account_new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) else: print( '\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % transfer_amount) if transfer_amount == 'b': back_flag = True
def pay(acc_data, amount): """ api for user to pay for their shopping cart :return: """ account_data = accounts.load_current_balance(acc_data['account_id']) new_balance = transaction.make_transaction(trans_logger, account_data, 'consume', amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' % (new_balance['balance'])) return True else: return False
def transfer(acc_data): flag = True while flag: tran_id = input('\033[33;1mInput the account to transfer:\033[0m').strip() tran_acc_data = accounts.load_account(tran_id) if not tran_acc_data: return tran_amount = input("\033[33;1mInput transfer amount(Press b to cancel):\033[0m").strip() if len(tran_amount) > 0 and tran_amount.isdigit(): new_acc_data = transaction.make_transaction(transaction_logger, acc_data, 'transfer', tran_amount) if new_acc_data: transaction.make_transaction(transaction_logger, tran_acc_data, 'transfer_in', tran_amount) flag = False elif tran_amount == 'b': return else: input('\033[33;1mInvalid transfer amount!\033[0m') balance_info = '''-------Current Balance Info-------- Balance: %s Credit: %s ''' % (new_acc_data['balance'], new_acc_data['credit']) print(balance_info)
def pay(amount): acc_data = get_user_data() account_data = accounts.load_current_balance(acc_data['account_id']) if amount > 0: new_balance = transaction.make_transaction(trans_logger, account_data, 'pay', amount) if new_balance: return True else: print( '[\033[31;1m%s\033[0m] is not a valid amount, only accept integer!' % amount) return None
def mall_transfer(user_data, money, mall_name): print(user_data, money, mall_name) now_balance = accounts.load_current_balance(user_data["id"]) user_data["user_data"]["balance"] = now_balance # 在进行操作前先刷新下现在的余额 print("这是mall里的user_date", user_data) db_path = db_handler.db_handler() # 调用数据库判断模块获取数据库地址 receive_user_data = {'user_data': ''} db_account = "%s\\accounts\\%s.json" % (db_path, mall_name) if os.path.exists(db_account): f = open(db_account, "r") receive_user_data['user_data'] = json.loads(f.read()) f.close() transaction.make_transaction(money, "transfer_to_mall", user_data) now_balance2 = accounts.load_current_balance(user_data["id"]) if now_balance > now_balance2: # 如果钱被成功划走了,那么就在给对方帐号打钱 transaction.make_transaction(money, "transfer_from", receive_user_data) return True else: return False
def withdraw(acc_data): ''' print current balance and let user do the withdraw action :param acc_data: :return: ''' account_data = accounts.load_current_balance(acc_data['account_id']) current_balance= ''' --------- BALANCE INFO -------- Credit : %s Balance: %s''' %(account_data['credit'],account_data['balance']) print(current_balance) back_flag = False while not back_flag: withdraw_amount = input("\033[33;1mInput withdraw amount:\033[0m").strip() if len(withdraw_amount) >0 and withdraw_amount.isdigit(): new_balance = transaction.make_transaction(trans_logger,account_data,'withdraw', withdraw_amount) if new_balance: print('''\033[42;1mNew Balance:%s\033[0m''' %(new_balance['balance'])) else: print('\033[31;1m[%s] is not a valid amount, only accept integer!\033[0m' % withdraw_amount) if withdraw_amount == 'b': back_flag = True