|
|
from sqlalchemy import func
|
|
|
|
|
|
from app.models import db
|
|
|
from werkzeug.security import generate_password_hash, check_password_hash
|
|
|
|
|
|
|
|
|
def isAvailable(account):
|
|
|
#从数据库中查找第一个匹配 account 的 Passenger 记录。
|
|
|
Passenger.query.filter_by(account=account).first()
|
|
|
|
|
|
|
|
|
#乘客实体类
|
|
|
class Passenger(db.Model):
|
|
|
__tablename__ = 'passenger'
|
|
|
|
|
|
#主键
|
|
|
id = db.Column(db.Integer, primary_key=True)
|
|
|
#姓名
|
|
|
name = db.Column(db.String(120))
|
|
|
#账号
|
|
|
account = db.Column(db.String(120), unique=True, nullable=False, index=True)
|
|
|
#密码
|
|
|
password_digest = db.Column(db.String(2000), nullable=False)
|
|
|
#身份证号码
|
|
|
id_card_no = db.Column(db.String(120))
|
|
|
#手机号
|
|
|
mobile_no = db.Column(db.String(120))
|
|
|
#银行卡号
|
|
|
bank_card_no = db.Column(db.String(120))
|
|
|
#账号状态
|
|
|
state = db.Column(db.Integer, default=0)
|
|
|
#成员类型
|
|
|
member_type = db.Column(db.Integer)
|
|
|
#上次登录时间
|
|
|
last_login_time = db.Column(db.DateTime)
|
|
|
#创建时间
|
|
|
created_at = db.Column(db.DateTime, default=func.now())
|
|
|
#更新时间
|
|
|
updated_at = db.Column(db.DateTime, default=func.now())
|
|
|
|
|
|
def check_password(self, password):
|
|
|
return check_password_hash(self.password_digest, password) # 验证密码
|
|
|
|
|
|
#验证账号和密码
|
|
|
@classmethod
|
|
|
def verifyPassenger(cls, account, password):
|
|
|
passenger = cls.query.filter_by(account=account).first()
|
|
|
if passenger and passenger.check_password(password):
|
|
|
print(1)
|
|
|
return passenger
|
|
|
return None
|
|
|
|
|
|
#注册成功,存储乘客信息,即添加操作
|
|
|
@classmethod
|
|
|
def create(cls, data):
|
|
|
passenger = cls(
|
|
|
account=data.get('account'),
|
|
|
password_digest=generate_password_hash(data.get('password')),
|
|
|
name=data.get('name'),
|
|
|
id_card_no=data.get('idCardNo'),
|
|
|
mobile_no=data.get('mobileNo'),
|
|
|
bank_card_no=data.get('bankCard'),
|
|
|
)
|
|
|
db.session.add(passenger)
|
|
|
db.session.commit()
|
|
|
return passenger
|
|
|
|
|
|
#根据乘客id删除数据,即删除操作
|
|
|
@classmethod
|
|
|
def destroy(cls, passenger_id):
|
|
|
passenger = cls.query.get(passenger_id)
|
|
|
if passenger:
|
|
|
db.session.delete(passenger)
|
|
|
db.session.commit()
|
|
|
return True
|
|
|
return False
|