def post(self): form = TransferForm(flask.request.form) if form.validate(): email = form.email.data money = form.money.data user = User.query.filter_by(email=email).first() uid = flask.session.get(constants.USER_SESSION_ID) myself = User.query.get(uid) if myself.deposit > money: user.deposit += money myself.deposit -= money db.session.commit() return u'转账成功!' else: return u'余额不足!' else: print(form.errors) return 'fail'
def post(self): form = TransferForm(request.form) if form.validate(): email = form.email.data money = form.money.data user = User.query.filter_by(email=email).first() if user: user_id = session.get('user_id') myself = User.query.get(user_id) if myself.deposit >= money: user.deposit += money myself.deposit -= money db.session.commit() return '转账成功!' else: return '余额不足!' else: return '该用户不存在!' else: return '数据填写不正确!'
def my_account(): withdraw_form = WithdrawForm() deposit_form = DepositForm() transfer_form = TransferForm() if session['username'] is None: return render_template('my_account.html') user = session['username'] account = Account.query.filter_by(name=user).first() transactions = Transaction.query.filter_by(account_id=account.id).order_by( Transaction.date.desc()) if deposit_form.deposit.data and deposit_form.validate(): id = account.id amount = deposit_form.amount.data account = Account.query.get(id) if account.deposit_withdraw('deposit', amount): new_transaction = Transaction('deposit', 'self deposit', account.id, amount) db.session.add(new_transaction) db.session.commit() return redirect(url_for('my_account')) else: return redirect(url_for('my_account')) elif withdraw_form.withdraw.data and withdraw_form.validate(): id = account.id amount = withdraw_form.amount.data account = Account.query.get(id) if account.deposit_withdraw('withdraw', amount): new_transaction = Transaction('withdraw', 'self withdraw', account.id, (amount * (-1))) db.session.add(new_transaction) db.session.commit() return redirect(url_for('my_account')) else: return redirect(url_for('my_account')) elif transfer_form.transfer.data and transfer_form.validate(): id = account.id amount = transfer_form.amount.data account_id = transfer_form.account_id.data password = transfer_form.password.data account = Account.query.get(id) if check_password_hash(account.password, password): if account.deposit_withdraw('withdraw', amount): new_transaction = Transaction( 'transfer out', f'transfer to account {account_id}', account.id, (amount * (-1))) db.session.add(new_transaction) recipient = Account.query.get(account_id) if recipient.deposit_withdraw('deposit', amount): new_transaction2 = Transaction( 'transfer in', f'transfer from account {account.id}', account_id, amount) db.session.add(new_transaction2) db.session.commit() return redirect(url_for('my_account')) else: return redirect(url_for('my_account')) else: return redirect(url_for('my_account')) else: return '<h1>Invalid Account Password</h1>' return render_template('my_account.html', user=user, account=account, transactions=transactions, withdraw_form=withdraw_form, deposit_form=deposit_form, transfer_form=transfer_form)