Example #1
0
 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 '数据填写不正确!'
Example #3
0
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)