class Students(db.Model):
    """学生表模型类"""
    __tablename__ = "students"

    id = db.Column(INTEGER, primary_key=True)  # id主键
    sno = db.Column(INTEGER, unique=True, nullable=False)  # 学号
    sname = db.Column(VARCHAR(20), nullable=False)  # 姓名
    ssex = db.Column(TINYINT(1), nullable=False)  # 性别
    endate = db.Column(DATE, nullable=False)  # 入学日期
    nativeplace = db.Column(VARCHAR(100), nullable=False)  # 籍贯
    birthday = db.Column(DATE, nullable=False)  # 生日
    password = db.Column(CHAR(32), nullable=False)  # 密码
    tel = db.Column(CHAR(11), nullable=False)  # 电话
    degree = db.Column(VARCHAR(20), nullable=False)  # 学位信息
    pid = db.Column(VARCHAR(30), nullable=False)  # 身份证号

    lid = db.Column(INTEGER, db.ForeignKey("levels.id"))  # 年级id
    caid = db.Column(INTEGER, db.ForeignKey("campuses.id"))  # 校区id
    collid = db.Column(INTEGER, db.ForeignKey("colleges.id"))  # 学院id
    clid = db.Column(INTEGER, db.ForeignKey("classes.id"))  # 班级id

    selcourses = db.relationship("Selcourses", backref="student")
    achievements = db.relationship("Achievements", backref="student")

    def set_pwd(self, pwd):
        self.password = Encryption.md5(pwd)

    def set_pid(self, pid):
        self.pid = Encryption.base64_encode(pid)

    def __repr__(self):
        return str(self.sno) + ":" + self.sname
Пример #2
0
class TempFileList(Base):
    __tablename__ = 'tempfilelist'

    key = Column(CHAR(40, collation='utf8_unicode_ci'), primary_key=True)
    filename = Column(TEXT(charset='utf8'), nullable=False)
    content_type = Column(TEXT(charset='utf8'), nullable=False)
    created = Column(TIMESTAMP, default=datetime.utcnow)
    author_key = Column(CHAR(40, collation='utf8_unicode_ci'), nullable=False)

    def __init__(self, key, filename, content_type, author_key, **kwargs):
        self.key = key
        self.filename = filename
        self.content_type = content_type
        self.author_key = author_key

    def __repr__(self):
        return 'TempFileList(%s ,%s)' % \
        (self.key,self.filename)

    @classmethod
    def by_key(cls, key, sql_session):
        q = sql_session.query(cls)
        return q.filter(cls.key == key)

    def to_dict(self):
        return {
            'key': self.key,
            'filename': self.filename,
            'path': self.key,
            'filetype': 'file',
        }
Пример #3
0
class HeartRecharge(Base):
    __tablename__ = 'heart_recharges'

    google_purchase_token = Column(CHAR(100))
    google_order_id = Column(CHAR(100))

    amount = Column(Integer, nullable=False)
    type = Column(CHAR(20), nullable=False)
    created_at = Column(DATETIME)

    TYPE_GOOGLE = 'GOOGLE'
    TYPE_APPLE = 'APPLE'

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.created_at = datetime.now()

    def json(self):
        return {
            'id': self.id,
            'google_purchase_token': self.google_purchase_token,
            'google_order_id': self.google_order_id,
            'type': self.type,
            'created_at': DateTimeHelper.full_datetime(self.created_at)
        }
Пример #4
0
class History(BaseModel):
    __tablename__ = 'history'

    __table_args__ = {
        'mysql_engine': 'InnoDB',
        'mysql_charset': 'utf8mb4',
        'schema': 'poem'
    }

    id = Column(INTEGER, primary_key=True, autoincrement=True, comment="id")
    user_id = Column(INTEGER, nullable=False, comment="user id")
    poem_id = Column(INTEGER, nullable=False, comment="poem id")
    ip = Column(CHAR(20), default="", comment="ip地址")
    weather = Column(VARCHAR(512), default="", comment="天气情况")
    addr = Column(VARCHAR(512), default="", comment="所在位置")
    star = Column(SMALLINT, nullable=False, default=0, comment="是否点赞")
    reason = Column(CHAR(50), default="", comment="数据生成原因")
    type = Column(SMALLINT, nullable=False, comment="数据是真是假")
    create_time = Column(DateTime,
                         default=datetime.datetime.now(),
                         comment="创建时间")
    UniqueConstraint(user_id, poem_id)

    def __init__(self, **kwargs):
        super(History, self).__init__(**kwargs)
Пример #5
0
class Course(Base):
    __tablename__ = "course"
    courseDescriptor = Column(VARCHAR(256), primary_key=True)
    courseName = Column(VARCHAR(200), nullable=False)
    courseId = Column(CHAR(20), nullable=False)
    credit = Column(NUMERIC(3, 1), nullable=False)
    semester = Column(CHAR(10), nullable=False)
    startTime = Column(DATE, nullable=False)
    endTime = Column(DATE, nullable=False)
    courseStart = Column(TIME)
    courseEnd = Column(TIME)
    hotIndex = Column(INTEGER, nullable=False)
    Image = Column(VARCHAR(256), nullable=False)
    description = Column(VARCHAR(1000), nullable=False)

    def __init__(self, course_descriptor, course_id, credit, semester,
                 start_time, end_time, course_start, course_end, hot_index,
                 image, description, cname):
        self.courseDescriptor = course_descriptor
        self.courseId = course_id
        self.credit = credit
        self.semester = semester
        self.startTime = start_time
        self.endTime = end_time
        self.courseStart = course_start
        self.courseEnd = course_end
        self.hotIndex = hot_index
        self.Image = image
        self.description = description
        self.courseName = cname
Пример #6
0
class Blacklist(Base):
    __tablename__ = 'blacklist'

    PARTY_GOOGLE = 'GOOGLE'
    PARTY_KAKAO = 'KAKAO'
    PARTY_NAVER = 'NAVER'

    KIND_BAN = 'BAN'
    KIND_RESIGN = 'RESIGN'

    phone = Column(TEXT)
    party_id = Column(TEXT)
    created_at = Column(DATETIME)
    until = Column(DATE)
    party_name = Column(CHAR(20))  # KAKAO , GOOGLE, FACEBOOK 이 있음.
    kind = Column(CHAR(10))  # BAN (블랙 당함) 이랑 RESIGN (일반 탈퇴)

    def __init__(self, user, **kwargs):
        super().__init__(**kwargs)
        if user.oauth.__tablename__.endswith('google'):
            self.party_name = self.PARTY_GOOGLE
        elif user.oauth.__tablename__.endswith('kakao'):
            self.party_name = self.PARTY_KAKAO
        elif user.oauth.__tablename__.endswith('naver'):
            self.party_name = self.PARTY_NAVER

        self.party_id = user.oauth.party_id
        self.created_at = datetime.now()
        self.phone = user.phone
Пример #7
0
class User(Base):
    __tablename__ = 'users'

    key = Column(CHAR(40, collation='utf8_unicode_ci'), primary_key=True)
    account = Column(CHAR(20, collation='utf8_unicode_ci'), nullable=False)
    passwd = Column(CHAR(90, collation='utf8_unicode_ci'))
    name = Column(VARCHAR(30, collation='utf8_unicode_ci'), nullable=False)
    identity = Column(ENUM('學生', '教師', charset='utf8'), nullable=False)
    admin = Column(BOOLEAN, nullable=False)

    def __init__(self,
                 account,
                 passwd,
                 name,
                 identity='學生',
                 admin=False,
                 **kwargs):
        self.key = uuid.uuid3(uuid.uuid1(), account.encode()).hex
        self.account = account
        self.name = name
        self.identity = identity
        self.admin = admin
        self.passwd = self.hash_passwd(self.account, passwd)

    @staticmethod
    def make_salt():
        return ''.join(random.choice(string.letters) for i in xrange(5))

    @classmethod
    def hash_passwd(cls, account, passwd, salt=''):
        if not salt:
            salt = cls.make_salt()
        h = hashlib.sha256(account + passwd + salt).hexdigest()
        return '%s,%s' % (h, salt)

    def check_passwd(self, passwd):
        salt = self.passwd.split(',')[1]
        return self.passwd == self.hash_passwd(self.account, passwd, salt)

    @classmethod
    def by_key(cls, key, sql_session):
        q = sql_session.query(cls)
        return q.filter(cls.key == key)

    def to_dict(self):
        return {
            'key': self.key,
            'name': self.name,
            'account': self.account,
            'admin': self.admin,
            'identity': self.identity,
        }

    def to_dict_str(self):
        _l = []
        _map = self.to_dict()
        for i in _map:
            _l.append("'%s':'%s'" % (i, _map[i]))
        return '{%s}' % ','.join(_l)
Пример #8
0
class TestDomain(MysqlBase):
    
    name = Column(VARCHAR(length=64))
    dis_name = Column(VARCHAR(length=64))
    ip = Column('ip', CHAR(length=64))
    role = Column('role', INTEGER())
    type = Column('type', INTEGER())
    ip2 = Column('ip2', CHAR(length=64))
Пример #9
0
def get_partner_list():
    # 获取请求参数
    draw = request.args['draw']
    start = request.args['start']
    length = request.args['length']
    search = request.args['search']
    order_name = request.args['order_name']
    order = request.args['order']

    # 查询
    query = Partner.query \
        .outerjoin(Stb, Partner.uuid == Stb.partner_uuid) \
        .with_entities(Partner.uuid, Partner.name, Partner.cname, Partner.logo_url, Partner.create_time, Partner.update_time) \
        .add_columns(func.count(Stb.sn).label('stb')) \
        .group_by(Partner.uuid)

    # 搜索
    if search:
        query = query.filter(
            or_(Partner.name.like('%' + search + '%'),
                Partner.cname.like('%' + search + '%')))

    # 排序
    if order == 'asc':
        if order_name == 'cname':
            query = query.order_by(cast(Partner.cname, CHAR(charset='gbk')))
        else:
            query = query.order_by(order_name)
    else:
        if order_name == 'cname':
            query = query.order_by(
                desc(cast(Partner.cname, CHAR(charset='gbk'))))
        else:
            query = query.order_by(desc(order_name))

    # 记录总数
    total = query.count()

    # 分页
    query = query.paginate(int(start) / int(length) + 1, int(length), False)

    # 返回datatable数据
    data = [{
        'uuid': q.uuid,
        'name': q.name,
        'cname': q.cname,
        'logo_url': q.logo_url,
        'stb': q.stb,
        'create_time': q.create_time,
        'update_time': q.update_time
    } for q in query.items]

    return jsonify({
        'draw': int(draw),
        'recordsTotal': total,
        'recordsFiltered': total,
        'data': data
    })
Пример #10
0
class ShortUrl(Base):

    __tablename__ = 'shorturl'
    id = Column(BIGINT, primary_key=True)
    url = Column(VARCHAR(255), unique=True, nullable=False)
    code = Column(CHAR(8), unique=True, nullable=False)
    uuid = Column(CHAR(32), unique=True, nullable=False)
    createDAt = Column(DATETIME, nullable=False)
    updatedAt = Column(DATETIME, nullable=False)
Пример #11
0
class MsgTimeoutRecord(PluginTableBase):
    """Rpc call timeout message recode"""
    record_time = sa.Column(BIGINT(unsigned=True),
                            nullable=False,
                            default=0,
                            primary_key=True)
    msg_id = sa.Column(CHAR(32), nullable=False)
    queue_name = sa.Column(CHAR(38), nullable=False)
    raw_message = sa.Column(MEDIUMBLOB, nullable=True, default=None)
    __table_args__ = (MyISAMTableBase.__table_args__)
class CourseDetail(Base):
    __tablename__ = 'course_detail'
    id = Column(INTEGER, primary_key=True)
    section_md5 = Column(CHAR(127))
    type = Column(CHAR(127))
    width = Column(INTEGER)
    m3u8 = Column(MEDIUMTEXT)
    m3u8_full = Column(MEDIUMTEXT)
    aes_key = Column(TEXT)
    has_download = Column(BOOLEAN)
Пример #13
0
class VcodeModel(BaseModel):
    __tablename__ = "vcode"
    vcode_id = Column(String(64), unique=True, comment="验证码ID")
    mobile = Column(CHAR(12), nullable=False, comment="手机号码")
    vcode = Column(CHAR(6), comment="验证码")
    type = Column(Integer, comment="验证码类型 0)注册 1)更新密码")
    expire_at = Column(DateTime, comment="验证码过期时间")
    status = Column(Integer, default=0, comment="验证码状态 0)待验证 1)已验证 2)已过期")

    def __init__(self, *args, **kwargs):
        super(VcodeModel, self).__init__(*args, **kwargs)
        self.vcode_id = self.uuid()
Пример #14
0
class StockEmployeeInfo(Base):
    __tablename__ = 'stock_employee_info'

    code = Column(CHAR(20), primary_key=True, nullable=False)
    name = Column(CHAR(255), primary_key=True, nullable=False)
    end_date = Column(Date, primary_key=True, nullable=False)
    pub_date = Column(Date)
    employee = Column(Float(asdecimal=True))
    retirement = Column(Text)
    graduate_rate = Column(Float(asdecimal=True))
    college_rate = Column(Float(asdecimal=True))
    middle_rate = Column(Float(asdecimal=True))
Пример #15
0
class TStore(Base):
    '''
    商户表
    '''
    __tablename__ = 't_store'

    store_id = Column(INTEGER(11))
    name = NotNullColumn(VARCHAR(128))
    st = NotNullColumn(CHAR(5))
    ed = NotNullColumn(CHAR(5))
    phone = NotNullColumn(VARCHAR(32))
    passwd = NotNullColumn(VARCHAR(32))
    status = NotNullColumn(TINYINT(1))
Пример #16
0
class TBillRoom(object):
    '''
    房费账单表
    '''
    order_id = Column(INTEGER(11), server_default='0')
    bill_id = Column(INTEGER(11), server_default='0')  # 账单ID
    room_id = Column(INTEGER(11), server_default='0')
    fee_id = Column(INTEGER(11), server_default='0')  # 计费方式ID
    pack_id = Column(INTEGER(11), server_default='0')  # 套餐ID
    st = NotNullColumn(CHAR(16))  # 开始时间
    ed = NotNullColumn(CHAR(16))  # 结束时间
    minute = Column(INTEGER(11), server_default='0')  # 消费时长
    money = Column(INTEGER(11), server_default='0')  # 金额
    md = Column(TINYINT(1), server_default='1')  # 计费方式:1计时/2套餐
Пример #17
0
class TRoomFee(Base):
    '''
    计费表
    '''
    __tablename__ = 't_room_fee'

    store_id = Column(INTEGER(11))
    rt_id = Column(INTEGER(11), server_default='0')
    st = Column(CHAR(5), server_default='')
    ed = Column(CHAR(5), server_default='')
    fee = Column(INTEGER(11), server_default='0')
    day_or_holiday = Column(VARCHAR(10), server_default='')  # 周几1-7/节假日
    md = Column(ENUM('day', 'holiday'), server_default='day')  # 类型:周几/节假日
    state = Column(TINYINT(1), server_default='1')  # 状态:1有效/2删除
class UserAccountModel(BaseModel):
    __tablename__ = "user_account"

    status_on = '1'  # 在用
    status_off = '0'  # 注销

    source_type_1 = '1'  # pc
    source_type_2 = '2'  # wap
    source_type_3 = '3'  # iphone
    source_type_4 = '4'  # android

    account_id = Column(String(64), unique=True, nullable=False, server_default="", comment="账户号")
    user_id = Column(String(64), comment="用户ID", nullable=False, server_default="")
    score = Column(INTEGER, nullable=False, server_default="0", comment="积分")
    id_card = Column(String(64), nullable=False, server_default="", comment="身份证号", default="")
    nick_name = Column(String(64), nullable=False, server_default="", default="", comment="昵称")
    source = Column(TINYINT(4), nullable=False, comment="注册渠道", server_default=source_type_1)
    avatar = Column(String(128), nullable=False, server_default="", default="", comment="头像地址")

    transaction_password = Column(String(128), nullable=False, server_default="", default="", comment="交易密码")
    transaction_passwd_salt = Column(String(128), nullable=False, comment="交易密码加密参数", server_default="", default="")
    transaction_bcrypt_salt = Column(String(128), nullable=False, comment="bcrypt算法交易密码加密参数", default="", server_default="")
    first_recharge_at = Column(DateTime, nullable=False, server_default="0000-00-00 00:00:00", comment="首次充值时间")

    # 下面这三个字段最后定为仅存在用户中心,故这里不能存,客户端若必须获取则需要发送userinfi请求到客户端获取
    user_mobile = Column(CHAR(64), nullable=False, comment="手机号", server_default="", default="")
    email = Column(String(128), nullable=False, server_default="", default="", comment="邮箱")
    mobile_country_code = Column(String(128), nullable=False, server_default="", default="", comment="手机号国家区号")
    user_name = Column(CHAR(64), default=None,  doc="用户名")
    register_ip = Column(String(128), nullable=False, server_default="", default="", comment="注册时的ip")

    # 邀请码相关的流程
    # inviter_code 自己生成的用来邀请别人的邀请码
    # invitee_code 别人邀请自己的邀请码
    inviter_code = Column(CHAR(8), nullable=False, default="", comment="邀请码")
    invitee_code = Column(CHAR(8), nullable=False, default="", comment="受邀请码")

    # 是否参与首次抽奖
    first_lottery = Column(TINYINT(1), nullable=False, default=0, comment="是否参与首次抽奖")

    # 用户头像
    profile_picture = Column(TEXT, nullable=False, default="", comment="用户头像")

    # 状态
    status = Column(TINYINT(1), nullable=False, server_default=str(status_on), comment="状态 0)注销 1)在用")

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.account_id = generate_order_no(k=44)
Пример #19
0
class ChartModel(Base):
    __tablename__ = 'chart'

    id = Column('id',
                INTEGER(display_width=11, unsigned=True),
                primary_key=True,
                nullable=False)
    name = Column('name', VARCHAR(length=255), nullable=False)
    dashboard_id = Column('dashboard_id',
                          INTEGER(display_width=11, unsigned=True),
                          nullable=False)
    ds_id = Column('ds_id',
                   INTEGER(display_width=11, unsigned=True),
                   nullable=False)
    table = Column('table', VARCHAR(length=255), nullable=False)
    query = Column('query', Dict(), nullable=False)
    x_fields = Column('x_fields', List(), nullable=False)
    y_fields = Column('y_fields', List(), nullable=False)
    type = Column('type', CHAR(length=32), nullable=False)
    user_id = Column('user_id', INTEGER(display_width=11), nullable=False)
    ctime = Column('ctime',
                   TIMESTAMP(),
                   nullable=False,
                   server_default=DefaultClause(text('CURRENT_TIMESTAMP')))
    utime = Column('utime',
                   TIMESTAMP(),
                   nullable=False,
                   server_default=DefaultClause(
                       text('CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP')))
    is_del = Column('is_del',
                    TINYINT(display_width=4, unsigned=True),
                    nullable=False,
                    server_default=DefaultClause(text('0')))
Пример #20
0
class StockManagementInfo(Base):
    __tablename__ = 'stock_management_info'

    code = Column(CHAR(20), primary_key=True, nullable=False)
    company_name = Column(VARCHAR(255), primary_key=True, nullable=False)
    pub_date = Column(Date, primary_key=True, nullable=False)
    person_id = Column(BIGINT(20), nullable=False)
    name = Column(VARCHAR(255), primary_key=True, nullable=False)
    title_class_id = Column(BIGINT(20), primary_key=True, nullable=False)
    title_class = Column(VARCHAR(20), nullable=False)
    title = Column(VARCHAR(40), primary_key=True, nullable=False)
    start_date = Column(Date, primary_key=True, nullable=False)
    leave_date = Column(Date)
    leave_reason = Column(Text)
    on_job = Column(Text)
    gender = Column(Text)
    birth_year = Column(Text)
    highest_degree_id = Column(Float(asdecimal=True))
    highest_degree = Column(Text)
    title_level_id = Column(Float(asdecimal=True))
    title_level = Column(Text)
    profession_certificate_id = Column(Text)
    profession_certificate = Column(Text)
    nationality_id = Column(Float(asdecimal=True))
    nationality = Column(Text)
    security_career_start_year = Column(Text)
    resume = Column(Text)
Пример #21
0
class OauthKakao(Base):
    __tablename__ = 'oauth_kakao'

    user_id = Column(Integer,
                     ForeignKey('users.id', ondelete='CASCADE'),
                     nullable=False)
    user = relationship('User',
                        foreign_keys=[user_id],
                        uselist=False,
                        backref=backref('oauth_kakao',
                                        cascade='all,delete',
                                        uselist=False))
    party_id = Column(CHAR(50), nullable=False, unique=True)
    party_name = Column(TEXT, nullable=False)
    party_email = Column(TEXT)
    party_picture = Column(TEXT)

    def __init__(self, user, info, **kwargs):
        '''
        :param kwargs:
        '''
        super().__init__(**kwargs)
        self.user = user
        self.user_id = user.id
        self.party_id = info.get('id')
        self.party_name = info['properties'].get('nickname')
        self.party_email = info['kakao_account'].get('email')
        self.party_picture = info['properties'].get('profile_image')
Пример #22
0
class Report(Base):
    __tablename__ = 'reports'

    from_user_id = Column(Integer,
                          ForeignKey('users.id', ondelete='SET NULL'),
                          index=True)
    to_user_id = Column(Integer,
                        ForeignKey('users.id', ondelete='SET NULL'),
                        index=True)

    memo = Column(TEXT)
    created_at = Column(DATETIME)
    status = Column(CHAR(10))

    STATUS_SUBMIT = 'SUBMIT'  # 신고가 들어온 상태
    STATUS_RESOLVED = 'RESOLVED'  # 신고가 해결된 상태
    STATUS_REJECTED = 'REJECTED'  # 신고가 거절된 상태

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.created_at = datetime.now()
        self.status = self.STATUS_SUBMIT

    def json(self):
        return {
            'id': self.id,
            'from_user_id': self.from_user_id,
            'to_user_id': self.to_user_id,
            'memo': self.memo,
            'created_at': DateTimeHelper.full_datetime(self.created_at),
            'status': self.status,
        }
Пример #23
0
class Project(Base):
    __tablename__ = 'project'
    __table_args__ = {'mysql_engine': 'InnoDB',
                      'mysql_charset': 'utf8'}

    id = Column(INTEGER(5, unsigned=True),
                primary_key=True)
    uuid = Column('uuid',
                  CHAR(32),
                  nullable=False,
                  doc='project\'s UUID',
                  index=True)
    created_at = Column('created_at',
                        TIMESTAMP(),
                        nullable=True,
                        default=None)
    updated_at = Column('updated_at',
                        TIMESTAMP(),
                        nullable=True,
                        default=None)

    def __repr__(self):
        _repr = 'Project(%s,%s,%s,%s' \
                % (self.id,
                   self.uuid,
                   self.created_at if self.created_at else 'None',
                   self.updated_at if self.updated_at else 'None')

        if hasattr(self, 'details'):
            _repr += ',' + str(self.details)

        return _repr + ')'
Пример #24
0
class OauthApple(Base):
    __tablename__ = 'oauth_apple'

    user_id = Column(Integer,
                     ForeignKey('users.id', ondelete='CASCADE'),
                     nullable=False)
    user = relationship('User',
                        foreign_keys=[user_id],
                        uselist=False,
                        backref=backref('oauth_apple',
                                        cascade='all,delete',
                                        uselist=False))
    party_id = Column(CHAR(80), nullable=False, unique=True)
    party_name = Column(TEXT, nullable=False)
    party_email = Column(TEXT)
    party_picture = Column(TEXT)
    refresh_token = Column(TEXT)

    def __init__(self, user, info, **kwargs):
        '''
        애플 로그인은 서버에서 인증을 거치기 때문에
        refresh_token 을 저장합니다.
        '''
        super().__init__(**kwargs)
        self.user = user
        self.user_id = user.id
        self.party_id = info.get('sub')
        self.party_name = info.get('email')
        self.party_email = info.get('email')
        self.party_picture = ''
        self.refresh_token = kwargs.get('refresh_token')
Пример #25
0
class OccupationAuth(Base):
    __tablename__ = 'occupation_auth'

    user_id = Column(Integer,
                     ForeignKey('users.id', ondelete='CASCADE'),
                     nullable=False)
    occupation_type = Column(CHAR(20))  # edu 와 work 가 있다.
    url = Column(TEXT)
    created_at = Column(DATETIME)
    confirmed = Column(BOOLEAN)
    confirmed_at = Column(DATETIME)

    def __init__(self, **kwargs):
        super().__init__(**kwargs)
        self.created_at = datetime.now()

    def confirm(self):
        self.confirmed = True
        self.confirmed_at = datetime.now()

    def json(self):
        return {
            'id': self.id,
            'user_id': self.user_id,
            'occupation_type': self.occupation_type,
            'url': self.url,
            'confirmed': self.confirmed,
        }
Пример #26
0
 def get_column_type(type_name: str) -> object:
     """Get class of db type
     :param type_name: str
     :return: object class
     """
     return {
         "string": VARCHAR,
         "varchar": VARCHAR,
         "integer": INTEGER,
         "nvarchar": NVARCHAR,
         "smallint": SMALLINT,
         "set": SET,
         "bigint": BIGINT,
         "binary": BINARY,
         "boolean": BOOLEAN,
         "bool": BOOLEAN,
         "char": CHAR,
         "date": DATE,
         "datetime": DATETIME,
         "decimal": DECIMAL,
         "enum": ENUM,
         "float": FLOAT,
         "json": JSON,
         "numeric": NUMERIC,
         "text": TEXT,
         "uuid": CHAR(36),
     }.get(type_name.lower())
Пример #27
0
class User(TableBase):
    """用户信息"""
    uid = sa.Column(INTEGER(unsigned=True),
                    nullable=False,
                    primary_key=True,
                    autoincrement=True)  # 用户ID
    name = sa.Column(VARCHAR(32), nullable=False)  # 用户名
    salt = sa.Column(CHAR(6), nullable=False)  # 密码盐
    passwd = sa.Column(VARCHAR(64), nullable=False)  # 密码
    offer = sa.Column(INTEGER(unsigned=True), nullable=False,
                      default=0)  # 购买优惠
    coins = sa.Column(INTEGER(unsigned=True), nullable=False,
                      default=0)  # 剩余coin
    gifts = sa.Column(INTEGER(unsigned=True), nullable=False, default=0)  # 代币
    regtime = sa.Column(INTEGER(unsigned=True), nullable=False)  # 注册时间
    status = sa.Column(TINYINT, nullable=False, default=common.ACTIVE)  # 用户状态
    activecode = sa.Column(INTEGER(unsigned=True), nullable=True)  # 激活验证码'
    books = orm.relationship('UserBook',
                             primaryjoin='User.uid == UserBook.uid',
                             foreign_keys='UserBook.uid',
                             backref='user',
                             lazy='select')
    owns = orm.relationship('UserOwn',
                            primaryjoin='User.uid == UserOwn.uid',
                            foreign_keys='UserOwn.uid',
                            backref='user',
                            lazy='select')

    __table_args__ = (sa.UniqueConstraint('name', name='name_unique'),
                      InnoDBTableBase.__table_args__)
Пример #28
0
class Record(Base):
    __tablename__ = 'records'

    id = Column(INTEGER, primary_key=True)
    method = Column(CHAR(20, collation='utf8_unicode_ci'), nullable=False)
    time = Column(TIMESTAMP, default=datetime.utcnow, onupdate=datetime.utcnow)
    
    def __init__(self, method, ann_id, **kwargs):
        self.id = ann_id
        self.method = method

    def __repr__(self):
        return 'Record(%s ,%s)' %\
        (self.method,self.id)

    @classmethod
    def by_time(cls, time_ob, sql_session):
        q = sql_session.query(cls)
        return q.filter(cls.time > time_ob)

    @classmethod
    def add(cls, method, ann_id, sql_session):
        q = sql_session.query(cls).filter(cls.id == ann_id)
        if q.count():
            q.update({'method':method})
        else:
            sql_session.add(cls(method, ann_id))

    def to_dict(self):
        return {
            'id' : self.id,
            'method' : self.method,
            'time' : self.time.strftime('%Y-%m-%d %H:%M:%S'),
        }
Пример #29
0
class User(Base):

    __tablename__ = 'User'

    userIndex = Column(INTEGER(unsigned=True),
                       primary_key=True,
                       autoincrement=True,
                       nullable=False)

    userId = Column(VARCHAR(20),
                    nullable=False,
                    unique=True)

    password = Column(CHAR(255),
                      nullable=False,
                      unique=False)

    nickName = Column(VARCHAR(20),
                      nullable=False,
                      unique=True)

    eMail = Column(VARCHAR(100),
                   nullable=False,
                   unique=False)

    lastMatchDate = Column(DATETIME,
                           default=None,
                           nullable=True)

    authority = Column(ENUM('admin', 'semiAdmin', 'user'),
                       nullable=False,
                       default='user')
Пример #30
0
class TypeGroup(Base):
    __tablename__ = 'type_groups'

    title = Column(TEXT)
    acronym = Column(CHAR(10))

    def json(self, **kwargs):
        return {'id': self.id, 'title': self.title, 'acronym': self.acronym}