52 lines
2.5 KiB
Python
52 lines
2.5 KiB
Python
|
|
# coding: utf-8
|
||
|
|
from sqlalchemy import BigInteger, Column, DateTime, Index, Integer, Numeric, String, Text
|
||
|
|
from sqlalchemy.schema import FetchedValue
|
||
|
|
from application import db,app
|
||
|
|
|
||
|
|
|
||
|
|
class PayOrder(db.Model):
|
||
|
|
__tablename__ = 'pay_order'
|
||
|
|
__table_args__ = (
|
||
|
|
db.Index('idx_member_id_status', 'member_id', 'status'),
|
||
|
|
)
|
||
|
|
|
||
|
|
id = db.Column(db.Integer, primary_key=True)
|
||
|
|
order_sn = db.Column(db.String(40), nullable=False, unique=True, server_default=db.FetchedValue())
|
||
|
|
member_id = db.Column(db.BigInteger, nullable=False, server_default=db.FetchedValue())
|
||
|
|
total_price = db.Column(db.Numeric(10, 2), nullable=False, server_default=db.FetchedValue())
|
||
|
|
yun_price = db.Column(db.Numeric(10, 2), nullable=False, server_default=db.FetchedValue())
|
||
|
|
pay_price = db.Column(db.Numeric(10, 2), nullable=False, server_default=db.FetchedValue())
|
||
|
|
pay_sn = db.Column(db.String(128), nullable=False, server_default=db.FetchedValue())
|
||
|
|
prepay_id = db.Column(db.String(128), nullable=False, server_default=db.FetchedValue())
|
||
|
|
note = db.Column(db.Text, nullable=False)
|
||
|
|
status = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||
|
|
express_status = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||
|
|
express_address_id = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||
|
|
express_info = db.Column(db.String(100), nullable=False, server_default=db.FetchedValue())
|
||
|
|
comment_status = db.Column(db.Integer, nullable=False, server_default=db.FetchedValue())
|
||
|
|
pay_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||
|
|
updated_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||
|
|
created_time = db.Column(db.DateTime, nullable=False, server_default=db.FetchedValue())
|
||
|
|
|
||
|
|
|
||
|
|
@property
|
||
|
|
def pay_status(self):
|
||
|
|
tmp_status = self.status
|
||
|
|
if self.status == 1:
|
||
|
|
tmp_status = self.express_status
|
||
|
|
if self.express_status == 1 and self.comment_status == 0:
|
||
|
|
tmp_status = -5
|
||
|
|
if self.express_status == 1 and self.comment_status == 1:
|
||
|
|
tmp_status = 1
|
||
|
|
return tmp_status
|
||
|
|
|
||
|
|
@property
|
||
|
|
def status_desc(self):
|
||
|
|
return app.config['PAY_STATUS_DISPLAY_MAPPING'][ str( self.pay_status )]
|
||
|
|
|
||
|
|
@property
|
||
|
|
def order_number(self):
|
||
|
|
order_number = self.created_time.strftime("%Y%m%d%H%M%S")
|
||
|
|
order_number = order_number + str(self.id).zfill(5)
|
||
|
|
return order_number
|