Exemplo n.º 1
0
class OrderModel(db.Model):
    '''订单表'''
    id = db.Column(db.Integer, primary_key=True)
    store_id = db.Column(db.Integer)    # 仓位id
    user_id = db.Column(db.Integer)     # 用户id
    valid_time = db.Column(db.Integer)  # 订单有效时间
    status = db.Column(db.String(32))   # 订单状态
    gmoney = db.Column(db.Integer)      # 游戏币
    money = db.Column(db.Integer)       # 人民币
    is_deleted = db.Column(db.Boolean, default=False)
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)

    def to_dict(self):
        ret_dict = {}
        for k in self.__table__.columns:
            value = getattr(self, k.name)
            if isinstance(value, datetime.datetime):
                value = value.strftime('%Y-%m-%d')
            ret_dict[k.name] = value if value else ''
        return ret_dict
Exemplo n.º 2
0
class LvlValidTimeModel(db.Model):
    '''账号等级与订单有效时间对应表'''
    id = db.Column(db.Integer, primary_key=True)
    lvl = db.Column(db.Integer)
    valid_time = db.Column(db.Integer)  # 有效时间,单位(分)
    is_deleted = db.Column(db.Boolean, default=False)
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)
Exemplo n.º 3
0
class SalePriceModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    area_id = db.Column(db.Integer)    # 大区id
    sale_price = db.Column(db.Integer)
    valid_time = db.Column(db.DateTime, default=datetime.datetime.now)
    is_deleted = db.Column(db.Boolean, default=False)
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)

    def to_dict(self):
        ret_dict = {}
        for k in self.__table__.columns:
            value = getattr(self, k.name)
            if isinstance(value, datetime.datetime):
                value = value.strftime('%Y-%m-%d')
            ret_dict[k.name] = value if value else ''
        return ret_dict
Exemplo n.º 4
0
class StoreHouseModel(db.Model):
    '''仓库表'''
    id = db.Column(db.Integer, primary_key=True)
    area_id = db.Column(db.Integer)    # 大区id
    store_id = db.Column(db.String(16))   # 仓位号
    is_used = db.Column(db.Boolean, default=False)  # 是否使用中
    is_deleted = db.Column(db.Boolean, default=False)
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)

    def to_dict(self):
        ret_dict = {}
        for k in self.__table__.columns:
            value = getattr(self, k.name)
            if isinstance(value, datetime.datetime):
                value = value.strftime('%Y-%m-%d')
            ret_dict[k.name] = value if value else ''
        return ret_dict
Exemplo n.º 5
0
class AreaModel(db.Model):
    '''大区表'''
    id = db.Column(db.Integer, primary_key=True)
    parent_id = db.Column(db.Integer)
    area_name = db.Column(db.String(64), unique=True)
    is_deleted = db.Column(db.Boolean, default=False)
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)

    def to_dict(self):
        ret_dict = {}
        for k in self.__table__.columns:
            value = getattr(self, k.name)
            if isinstance(value, datetime.datetime):
                value = value.strftime('%Y-%m-%d')
            ret_dict[k.name] = value if value else ''
        return ret_dict
Exemplo n.º 6
0
class UserModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), unique=True)
    passhash = db.Column(db.String(128))
    active = db.Column(db.Boolean, default=True)
    authenticated = db.Column(db.Boolean, default=False)
    detail = db.relationship('UserDetailModel',
                             backref='user_model',
                             lazy='dynamic')
    is_deleted = db.Column(db.Boolean, default=False)
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)

    def get_id(self):
        return self.id

    def is_active(self):
        return self.active

    def is_authenticated(self):
        return self.authenticated

    @property
    def is_anonymous(self):
        return False

    @classmethod
    def register(cls,
                 username,
                 password,
                 is_active=True,
                 is_authenticated=True,
                 lvl=1,
                 area_id=0):
        try:
            passhash = bcrypt.hashpw(password.encode('utf-8'),
                                     bcrypt.gensalt())
            user = cls(username=username,
                       passhash=passhash,
                       active=is_active,
                       authenticated=is_authenticated)
            db.session.add(user)
            db.session.commit()

            user_detail = UserDetailModel(user_id=user.id,
                                          lvl=lvl,
                                          area_id=area_id)
            db.session.add(user_detail)
            db.session.commit()
            ret = {
                'errcode': 0,
                'errmsg': 'OK',
                'data': user,
            }
        except Exception as e:
            db.session.rollback()
            ret = {
                'errcode': 500,
                'errmsg': e,
            }
        return ret

    @classmethod
    def login(cls, username, password):
        try:
            user = cls.query.filter_by(username=username).one()
            if user.passhash.encode('utf-8') == bcrypt.hashpw(
                    password.encode('utf-8'), user.passhash.encode('utf-8')):
                ret = {
                    'errcode': 0,
                    'errmsg': 'OK',
                    'data': user,
                }
            else:
                ret = {
                    'errcode': 1,
                    'errmsg': u'密码输入错误,请重新输入',
                }
        except NoResultFound as e:
            db.session.rollback()
            ret = {'errcode': 2, 'errmsg': u'此用户不存在'}
        except MultipleResultsFound as e:
            db.session.rollback()
            ret = {
                'errcode': 3,
                'errmsg': 'duplicated user found, please check database'
            }
        except Exception as e:
            db.session.rollback()
            ret = {
                'errcode': 500,
                'errmsg': e,
            }
        return ret

    def to_dict(self):
        ret_dict = {}
        for k in self.__table__.columns:
            value = getattr(self, k.name)
            if isinstance(value, datetime.datetime):
                value = value.strftime('%Y-%m-%d')
            ret_dict[k.name] = value if value else ''
        return ret_dict
Exemplo n.º 7
0
class UserDetailModel(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    lvl = db.Column(db.Integer)  # 账号权限等级
    area_id = db.Column(db.Integer)  # 大区id
    account_balance = db.Column(db.Integer, default=0)  # 账户余额
    account_score = db.Column(db.Integer, default=0)  # 账户积分
    user_id = db.Column(db.Integer, db.ForeignKey('user_model.id'))
    gender = db.Column(db.String(16))
    english_name = db.Column(db.String(32))
    chinese_name = db.Column(db.String(32), default='')
    avatar = db.Column(db.String(255), default='/static/pic/avatar.jpg')
    email = db.Column(db.String(128))
    phone = db.Column(db.String(32))
    wechat = db.Column(db.String(32))
    address = db.Column(db.String(255))
    extra = db.Column(db.String(255), default='')
    dt_create = db.Column(db.DateTime, default=datetime.datetime.now)
    dt_update = db.Column(db.DateTime, default=datetime.datetime.now)

    def to_dict(self):
        ret_dict = {}
        for k in self.__table__.columns:
            value = getattr(self, k.name)
            if isinstance(value, datetime.datetime):
                value = value.strftime('%Y-%m-%d')
            ret_dict[k.name] = value if value else ''
        return ret_dict