class Member(db.Model): __tablename__ = 'member' id = db.Column(db.Integer, primary_key=True) nickname = db.Column(db.String(100), nullable=False) mobile = db.Column(db.String(11), nullable=True) sex = db.Column(db.Integer, nullable=False) avatar = db.Column(db.String(200), nullable=False) salt = db.Column(db.String(32), nullable=False) reg_ip = db.Column(db.String(100), nullable=True) status = db.Column(db.Integer, nullable=False, default=1) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False) @property def status_desc(self): from application import app return app.config['STATUS_MAPPING'][str(self.status)] @property def sex_desc(self): SEX_MAPPING = { '0': '未知', '1': '男', '2': '女', } return SEX_MAPPING[str(self.sex)]
class LocationModel(Base): """-config- 货位表 """ __tablename__ = 'LOCATION' id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") revision = db.Column(db.Integer, nullable=False, default=0, server_default="0", comment="乐观锁") location_id = db.Column(db.String(32), nullable=False, default="", server_default="", comment="货位号") area_name = db.Column(db.String(32), nullable=False, default="", server_default="", comment="区域名") area_type = db.Column(db.String(32), nullable=False, default="", server_default="", comment="区域类型") location_describe = db.Column(db.String(512), nullable=False, default="", server_default="", comment="描述")
class ExpressCodeModel(Base): """-EXPRESS_MODULE- 快递代码 """ __tablename__ = 'EXPRESS_CODE' id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") express_company = db.Column(db.String(32), comment="快递公司") express_code = db.Column(db.String(32), comment="快递代码")
class QueueList(db.Model): __tablename__ = 'queue_list' id = db.Column(db.Integer, primary_key=True) queue_name = db.Column(db.String(30), nullable=False) data = db.Column(db.String(500), nullable=False) status = db.Column(db.Integer, nullable=False) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False)
class ArrivalOrderModel(Base): """-config- undefined """ __tablename__ = 'ARRIVAL_ORDER' id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") predictable_arrival_time = db.Column(db.DateTime, comment="预到达时间") delivery_time = db.Column(db.DateTime, comment="提货时间") car_number = db.Column(db.String(32), comment="车牌号") customer_number = db.Column(db.String(128), comment="客户单号") order_number = db.Column(db.String(128), comment="订单号") prefecture = db.Column(db.String(32), comment="区域") receiving_address = db.Column(db.String(512), comment="收货地址") receiving_contact = db.Column(db.String(32), comment="收货联系人") receiving_telephone = db.Column(db.String(32), comment="收货联系电话") predictable_quantity = db.Column(db.Integer, comment="预知数量") predictable_weight = db.Column(db.Float, comment="预知重量") predictable_volume = db.Column(db.Float, comment="预知方数") remarks = db.Column(db.String(512), comment="备注内容") actual_quantity = db.Column(db.Integer, comment="实际数量") actual_weight = db.Column(db.Float, comment="实际重量") actual_volume = db.Column(db.Float, comment="实际方数") actual_arrival_time = db.Column(db.DateTime, comment="实际到达时间") complete_time = db.Column(db.DateTime, comment="完结时间") state = db.Column(db.String(32), comment="状态")
class LocationInventoryModel(Base): """-config- undefined """ __tablename__ = 'LOCATION_INVENTORY' id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") location_id = db.Column(db.String(32), comment="货位表") order_number = db.Column(db.String(128), comment="订单号") number = db.Column(db.Integer, comment="件数") state = db.Column(db.String(32), comment="状态")
class DriversModel(Base): """-config- 司机表 """ __tablename__ = 'DRIVERS' driver_id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") driver_name = db.Column(db.String(32), comment="姓名") driver_phone = db.Column(db.String(32), comment="电话") driver_idcard = db.Column(db.String(32), comment="证件号")
class OauthMemberBind(db.Model): __tablename__ = 'oauth_member_bind' __table_args__ = (db.Index('idx_type_openid', 'type', 'openid'), ) id = db.Column(db.Integer, primary_key=True) member_id = db.Column(db.Integer, nullable=False) client_type = db.Column(db.String(20), nullable=True) type = db.Column(db.Integer, nullable=False) openid = db.Column(db.String(80), nullable=False) unionid = db.Column(db.String(100), nullable=True) extra = db.Column(db.Text, nullable=False) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False)
class OauthAccessToken(db.Model): __tablename__ = 'oauth_access_token' id = db.Column(db.Integer, primary_key=True) access_token = db.Column(db.String(600), nullable=False) expired_time = db.Column(db.DateTime, nullable=False, index=True) created_time = db.Column(db.DateTime, nullable=False)
class WxShareHistory(db.Model): __tablename__ = 'wx_share_history' id = db.Column(db.Integer, primary_key=True) member_id = db.Column(db.Integer, nullable=False) share_url = db.Column(db.String(200), nullable=False) created_time = db.Column(db.DateTime, nullable=False)
class AccessRecordModel(Base): """-config- undefined """ __tablename__ = 'ACCESS_RECORD' record_id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") location_id = db.Column(db.String(32), comment="货位号") order_number = db.Column(db.String(32), comment="客户订单号") type = db.Column(db.String(32), comment="类型") number = db.Column(db.String(32), comment="数量") time_stamp = db.Column(db.Integer, comment="时间") user = db.Column(db.String(32), comment="用户")
class MemberModel(Base): """-MEMBER- 成员表 """ __tablename__ = 'MEMBER' id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") user_name = db.Column(db.String(128), comment="用户名") account = db.Column(db.String(128), comment="账号") password_hash = db.Column(db.String(512), comment="密码") access_id = db.Column(db.String(128), comment="访问id") secret_key = db.Column(db.String(128), comment="访问秘钥") salt = db.Column(db.String(128), comment="加密盐") user_role = db.Column(db.String(64), comment="角色") enable_whitelist = db.Column(db.SmallInteger, comment="启用白名单") whitelist_address = db.Column(db.String(3072), comment="白名单授权地址") def hash_password(self, password): """ hash加密 """ self.password_hash = pwd_context.encrypt(password) def verify_password(self, password): """ 验证密码 """ return pwd_context.verify(password, self.password_hash) @staticmethod def create_member(user_name, password, account): """ 创建一个新账号 """ check_account = MemberModel.query.filter_by(account=account).first() if check_account: raise RepeatError('账号已存在!') while True: access_id = StringTools.get_random_string(10) not_repeating = MemberModel.query.filter_by( access_id=access_id).first() if not not_repeating: break with db.auto_commit(): member = MemberModel() member.hash_password(password) member.account = account member.user_name = user_name member.access_id = access_id member.secret_key = StringTools.get_random_string(10) member.salt = StringTools.get_random_string(16) member.whitelist_address = '[]' member.enable_whitelist = 0 member.user_role = 'default' db.session.add(member) return member
class AppErrorLog(db.Model): __tablename__ = 'app_error_log' id = db.Column(db.Integer, primary_key=True) referer_url = db.Column( db.String(255), nullable=True, ) target_url = db.Column( db.String(255), nullable=False, ) query_params = db.Column(db.Text, nullable=False) content = db.Column(db.Text, nullable=False) created_time = db.Column( db.DateTime, nullable=False, )
class Food(db.Model): __tablename__ = 'food' id = db.Column(db.Integer, primary_key=True) cat_id = db.Column(db.Integer, nullable=False) name = db.Column(db.String(100), nullable=False) price = db.Column(db.Numeric(10, 2), nullable=False) main_image = db.Column(db.String(100), nullable=False) summary = db.Column(db.String(10000), nullable=False) stock = db.Column(db.Integer, nullable=False) tags = db.Column(db.String(200), nullable=False) status = db.Column(db.Integer, nullable=False) month_count = db.Column(db.Integer, default=0) total_count = db.Column(db.Integer, default=0) view_count = db.Column(db.Integer, default=0) comment_count = db.Column(db.Integer, default=0) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False)
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) member_id = db.Column(db.BigInteger, nullable=False) total_price = db.Column(db.Numeric(10, 2), nullable=False) yun_price = db.Column(db.Numeric(10, 2), nullable=False) pay_price = db.Column(db.Numeric(10, 2), nullable=False) pay_sn = db.Column(db.String(128), nullable=True) prepay_id = db.Column(db.String(128), nullable=True) note = db.Column(db.Text, nullable=True) status = db.Column(db.Integer, nullable=False) express_status = db.Column(db.Integer, nullable=False) express_address_id = db.Column(db.Integer, nullable=False) express_info = db.Column(db.String(200), nullable=True) comment_status = db.Column(db.Integer, nullable=True) pay_time = db.Column(db.DateTime, nullable=True) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False) @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): from application import app 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
class CarsModel(Base): """-config- 车辆表 """ __tablename__ = 'CARS' cars_id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") registration_number = db.Column(db.String(32), comment="车牌号") car_model = db.Column(db.String(32), comment="车型") car_height = db.Column(db.Float, comment="车高") car_Length = db.Column(db.Float, comment="车长") car_width = db.Column(db.Float, comment="车宽") hold_weight = db.Column(db.Float, comment="载重") hold_volume = db.Column(db.Float, comment="载量") default_drivers_id = db.Column(db.String(32), comment="默认司机") state = db.Column(db.String(32), comment="状态")
class FoodCat(db.Model): __tablename__ = 'food_cat' id = db.Column(db.Integer, primary_key=True, unique=True) name = db.Column(db.String(50), nullable=False) weight = db.Column(db.Integer, nullable=False) status = db.Column(db.Integer, nullable=False, default=1) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False) @property def status_desc(self): from application import app return app.config['STATUS_MAPPING'][str(self.status)]
class AppAccessLog(db.Model): __tablename__ = 'app_access_log' id = db.Column(db.Integer, primary_key=True) # uid = db.Column(db.BigInteger, nullable=False, index=True, ) referer_url = db.Column(db.String(255), nullable=True, default='') target_url = db.Column( db.String(255), nullable=False, ) query_params = db.Column(db.Text, nullable=False) ua = db.Column( db.String(255), nullable=False, ) ip = db.Column( db.String(32), nullable=False, ) note = db.Column(db.String(1000), nullable=False, default='') created_time = db.Column( db.DateTime, nullable=False, )
class User(db.Model): __tablename__ = 'user' uid = db.Column(db.BigInteger, primary_key=True) nickname = db.Column(db.String(100), nullable=False) mobile = db.Column(db.String(20), nullable=True) email = db.Column(db.String(100), nullable=False) sex = db.Column(db.Integer, nullable=True) avatar = db.Column(db.String(64), nullable=True) login_name = db.Column(db.String(20), nullable=False, unique=True) login_pwd = db.Column(db.String(32), nullable=False) login_salt = db.Column(db.String(32), nullable=False) status = db.Column(db.Integer, nullable=False, default=1) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False)
class ExpressInfoModel(Base): """-EXPRESS_MODULE- 快递信息 """ __tablename__ = 'EXPRESS_INFO' id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") express_no = db.Column(db.String(32), comment="快递单号") express_company = db.Column(db.String(32), comment="快递公司") express_status = db.Column(db.String(32), comment="快递状态") collection_time = db.Column(db.DateTime, comment="揽收时间") latest_content = db.Column(db.String(512), comment="最新信息") latest_time = db.Column(db.DateTime, comment="最新时间") order_time = db.Column(db.DateTime, comment="订单日期") to_address = db.Column(db.String(32), comment="目的地") from_address = db.Column(db.String(32), comment="发件地") has_end = db.Column(db.SmallInteger, comment="是否完结") remarks = db.Column(db.String(3072), comment="备注信息") identification = db.Column(db.String(64), comment="单号标识")
class FoodStockChangeLog(db.Model): __tablename__ = 'food_stock_change_log' id = db.Column(db.Integer, primary_key=True) food_id = db.Column(db.Integer, nullable=False, index=True) unit = db.Column( db.Integer, nullable=False, ) total_stock = db.Column( db.Integer, nullable=False, ) note = db.Column( db.String(100), nullable=False, ) created_time = db.Column(db.DateTime, nullable=False)
class User(db.Model, TimeModel): """ 用户基本信息 """ __tablename__ = 'user_basic' class STATUS: ENABLE = 1 DISABLE = 0 id = db.Column('user_id', db.Integer, primary_key=True, doc='用户ID') mobile = db.Column(db.String, doc='手机号') password_hash = db.Column('password', db.String(128), nullable=False) name = db.Column('user_name', db.String, doc='昵称、姓名') profile_photo = db.Column('user_photo', db.String, doc='头像') last_login = db.Column(db.DateTime, doc='最后登录时间') account = db.Column(db.String, doc='账号:做备用') status = db.Column(db.Integer, default=1, doc='状态,是否可用') company = db.Column('user_firm', db.String, doc='公司') position = db.Column('user_position', db.String, doc='公司职位') gender = db.Column('user_gender', db.Integer, default=0, doc='性别,0-男,1-女') city = db.Column('city_id', db.Integer, doc='所在城市') role = db.Column(db.Integer, default=1, doc='用户角色,0表示管理员,1表示普通用户,2表示律师用户') @property def password(self): raise AttributeError("当前属性不可读") @password.setter def password(self, value): self.password_hash = generate_password_hash(value) def check_passowrd(self, password): return check_password_hash(self.password_hash, password) def __repr__(self): return "%s-%s" % (self.id, self.name)
class MemberAddress(db.Model): __tablename__ = 'member_address' __table_args__ = (db.Index('idx_member_id_status', 'member_id', 'status'), ) id = db.Column(db.Integer, primary_key=True) member_id = db.Column(db.Integer, nullable=False) nickname = db.Column(db.String(20), nullable=False) mobile = db.Column(db.String(11), nullable=False) province_id = db.Column(db.Integer, nullable=False) province_str = db.Column(db.String(50), nullable=False) city_id = db.Column(db.Integer, nullable=False) city_str = db.Column(db.String(50), nullable=False) area_id = db.Column(db.Integer, nullable=False) area_str = db.Column(db.String(50), nullable=False) address = db.Column(db.String(100), nullable=False) status = db.Column(db.Integer, nullable=False, default=1) is_default = db.Column(db.Integer, nullable=False) updated_time = db.Column(db.DateTime, nullable=False) created_time = db.Column(db.DateTime, nullable=False)
class ArrangeCarsModel(Base): """-config- 排车表 """ __tablename__ = 'ARRANGE_CARS' arrange_id = db.Column(db.Integer, primary_key=True, nullable=False, comment="id") registration_number = db.Column(db.String(32), comment="车牌号") car_model = db.Column(db.String(32), comment="车型") car_height = db.Column(db.Float, comment="车高") car_length = db.Column(db.Float, comment="车长") car_width = db.Column(db.Float, comment="车宽") hold_weight = db.Column(db.Float, comment="载重") hold_volume = db.Column(db.Float, comment="载量") driver_name = db.Column(db.String(32), comment="司机姓名") driver_phone = db.Column(db.String(32), comment="司机电话") driver_idcard = db.Column(db.String(32), comment="证件号") seal_number = db.Column(db.String(32), comment="封条号") in_time = db.Column(db.DateTime, comment="到达时间") out_time = db.Column(db.DateTime, comment="离开时间")
class Image(db.Model): __tablename__ = 'images' id = db.Column(db.Integer, primary_key=True) file_key = db.Column(db.String(60), nullable=False) created_time = db.Column(db.DateTime, nullable=False)