class User(db.Model): '''用户信息表''' __tablename__ = 'user' id = db.Column(db.Integer, primary_key=True) # 用户名 username = db.Column(db.String(255), unique=True, index=True, nullable=False) # 密码 pwd = db.Column(db.String(255), index=True, nullable=False) def generate_user_token(self, expiration=Config.EXPIRATION): s = Serializer(Config.SECRET_KEY, expires_in=expiration) return s.dumps({ 'id': self.id, 'username': self.username }).decode('utf-8') @staticmethod def verify_user_token(token): s = Serializer(Config.SECRET_KEY, expires_in=Config.EXPIRATION) try: data = s.loads(token) except SignatureExpired: return None # valid token, but expired except BadSignature: return None # invalid token user = User.query.get(data['id']) return user
class ServiceUserInfo(UserBase): __tablename__ = 'service_user_info' id = db.Column(db.Integer, primary_key=True, comment='用户id') user_name = db.Column(db.String(32), index=True, nullable=False, comment='用户名') # 用户账号(手机号) user_cell = db.Column(db.String(12), unique=True, nullable=False, comment='用户账号(手机号)') passwd = db.Column(db.String(32), nullable=False, comment='密码') create_at = db.Column(db.DateTime, server_default=text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间') update_at = db.Column( db.DateTime, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), nullable=False, comment='更新时间') def to_dict(self): return { 'user_id': self.id, 'user_name': self.user_name, 'user_cell': self.user_cell, 'create_at': datetime.datetime.strftime(self.create_at, '%Y-%m-%d %H:%M:%S') }
class DataServerConfig(db.Model): __tablename__ = 'data_server_config' id = db.Column(db.Integer, primary_key=True, comment='id') data_server_ip_port = db.Column(db.String(30), nullable=False, comment='数据server的ip:port') create_at = db.Column(db.DateTime, server_default=text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间') update_at = db.Column( db.DateTime, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), nullable=False, comment='更新时间') def to_dict(self): return { 'id': self.id, 'data_server_ip_port': self.data_server_ip_port, 'create_at': self.create_at.strftime('%Y-%m-%d %H:%M:%S'), 'update_at': self.update_at.strftime('%Y-%m-%d %H:%M:%S') }
class ConnectDevice(db.Model): __tablename__ = 'conn_info' id = db.Column(db.Integer, primary_key=True, comment='车辆id') car_id = db.Column(db.Integer, index=True, nullable=False, comment='车辆id') plat_id = db.Column(db.Integer, index=True, nullable=False, comment='台架id') conn_status = db.Column(TINYINT(3), server_default=text("'0'"), nullable=False, comment='连接状态') create_at = db.Column(db.DateTime, server_default=text('CURRENT_TIMESTAMP'), nullable=False, comment='连接时间') begin_time = db.Column(TIMESTAMP, nullable=False, comment='开始时间') end_time = db.Column(TIMESTAMP, nullable=False, comment='结束时间') type = db.Column(TINYINT(3), nullable=False, comment='类型(1、单独远程,2、自动任务下远程)')
class Car(Base): '''车辆信息表''' __tablename__ = 'car' id = Column(INTEGER(11), primary_key=True) carnum = Column(String(15), nullable=False, comment='车辆编号') cartype = Column(TINYINT(3), nullable=False, server_default=text("'1'"), comment='车辆类型(1清扫车)') carstu = Column(TINYINT(3), nullable=False, server_default=text("'2'"), comment='车辆状态(1在线,2离线,3任务中)') deviceid = Column(INTEGER(11), nullable=False, comment='设备id') devicekey = Column(String(64), nullable=False, comment='车辆key') devicesecret = Column(String(128), nullable=False, comment='车辆密钥') productkey = Column(String(64), nullable=False, comment='产品key') cardel = Column(TINYINT(3), nullable=False, server_default=text("'1'"), comment='1正常,2删除') createat = Column(TIMESTAMP, nullable=False, server_default=text('CURRENT_TIMESTAMP'), comment='创建时间') updateat = Column( TIMESTAMP, nullable=False, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), comment='更新时间') is_linked = db.Column(db.SmallInteger, server_default=text("'0'"), nullable=False, comment='是否链接过') # 连接状态 0:未连接 1:已连接 is_conn = db.Column(TINYINT(3), server_default=text("'0'"), nullable=False, comment='连接状态') carmileage = db.Column(INTEGER(11), server_default=text("'0'"), nullable=False, comment='总任务里程数') caratime = db.Column(INTEGER(11), server_default=text("'0'"), nullable=False, comment='总任务时长') control = db.Column(INTEGER(11), server_default=text("'0'"), nullable=False, comment='总任务时长') car_width = db.Column(INTEGER(11), server_default=text("150"), nullable=False, comment='车辆清扫宽度cm') isonlineat = Column(TIMESTAMP, nullable=False, server_default=text('CURRENT_TIMESTAMP'), comment='创建时间') is_peo_start = Column(TINYINT(3), nullable=False, server_default=text("'1'")) is_conn_server = Column(TINYINT(3), nullable=False, server_default=text("'0'")) def to_dict(self): return { 'id': self.id, 'carnum': self.carnum, 'cartype': self.cartype, 'carstu': self.carstu, 'deviceid': self.deviceid, 'devicekey': self.devicekey, 'devicesecret': self.devicesecret, 'productkey': self.productkey, 'deviceaddtime': self.deviceaddtime, 'createat': self.created_time, 'updateat': self.updated_time, }
class PlatformInfo(db.Model): __tablename__ = 'platform_info' id = db.Column(db.Integer, primary_key=True, comment='台架id') platform_name = db.Column(db.String(20), unique=True, nullable=False, comment='台架名称') # 台架状态 platform_status = db.Column(TINYINT(3), server_default=text("'0'"), nullable=False, comment='台架状态') # 连接状态 0:未连接 1:已连接 is_conn = db.Column(TINYINT(3), server_default=text("'0'"), nullable=False, comment='连接状态') product_key = db.Column(db.String(64), nullable=False, comment='product_key') device_key = db.Column(db.String(64), nullable=False, comment='device_key') device_secret = db.Column(db.String(128), nullable=False, comment='device_secret') device_id = db.Column(db.Integer, nullable=False, comment='device_id') platdel = db.Column(TINYINT(3), nullable=False, server_default=text('"1"')) create_at = db.Column(db.DateTime, server_default=text('CURRENT_TIMESTAMP'), nullable=False, comment='创建时间') update_at = db.Column( db.DateTime, server_default=text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'), nullable=False, comment='更新时间')