update pay function
This commit is contained in:
17
app.py
17
app.py
@@ -795,6 +795,9 @@ class PaymentOrder(db.Model):
|
||||
plan_name = db.Column(db.String(20), nullable=False)
|
||||
billing_cycle = db.Column(db.String(10), nullable=False)
|
||||
amount = db.Column(db.Numeric(10, 2), nullable=False)
|
||||
original_amount = db.Column(db.Numeric(10, 2), nullable=True) # 原价
|
||||
discount_amount = db.Column(db.Numeric(10, 2), nullable=True, default=0) # 折扣金额
|
||||
promo_code_id = db.Column(db.Integer, db.ForeignKey('promo_codes.id'), nullable=True) # 优惠码ID
|
||||
wechat_order_id = db.Column(db.String(64), nullable=True)
|
||||
prepay_id = db.Column(db.String(64), nullable=True)
|
||||
qr_code_url = db.Column(db.String(200), nullable=True)
|
||||
@@ -804,11 +807,16 @@ class PaymentOrder(db.Model):
|
||||
expired_at = db.Column(db.DateTime, nullable=True)
|
||||
remark = db.Column(db.String(200), nullable=True)
|
||||
|
||||
def __init__(self, user_id, plan_name, billing_cycle, amount):
|
||||
# 关联优惠码
|
||||
promo_code = db.relationship('PromoCode', backref='orders', lazy=True, foreign_keys=[promo_code_id])
|
||||
|
||||
def __init__(self, user_id, plan_name, billing_cycle, amount, original_amount=None, discount_amount=0):
|
||||
self.user_id = user_id
|
||||
self.plan_name = plan_name
|
||||
self.billing_cycle = billing_cycle
|
||||
self.amount = amount
|
||||
self.original_amount = original_amount if original_amount is not None else amount
|
||||
self.discount_amount = discount_amount or 0
|
||||
import random
|
||||
timestamp = int(beijing_now().timestamp() * 1000000)
|
||||
random_suffix = random.randint(1000, 9999)
|
||||
@@ -837,10 +845,9 @@ class PaymentOrder(db.Model):
|
||||
'plan_name': self.plan_name,
|
||||
'billing_cycle': self.billing_cycle,
|
||||
'amount': float(self.amount) if self.amount else 0,
|
||||
'original_amount': float(self.original_amount) if hasattr(self, 'original_amount') and self.original_amount else None,
|
||||
'discount_amount': float(self.discount_amount) if hasattr(self, 'discount_amount') and self.discount_amount else 0,
|
||||
'promo_code': self.promo_code.code if hasattr(self, 'promo_code') and self.promo_code else None,
|
||||
'is_upgrade': self.is_upgrade if hasattr(self, 'is_upgrade') else False,
|
||||
'original_amount': float(self.original_amount) if self.original_amount else None,
|
||||
'discount_amount': float(self.discount_amount) if self.discount_amount else 0,
|
||||
'promo_code': self.promo_code.code if self.promo_code else None,
|
||||
'qr_code_url': self.qr_code_url,
|
||||
'status': self.status,
|
||||
'is_expired': self.is_expired(),
|
||||
|
||||
Reference in New Issue
Block a user