Exemplo n.º 1
0
class ParkPolicy(Base, MixinModelJSONSerializer):
    """
    园区政策
    """
    __tablename__ = 'park_policy'
    id = db.Column(db.Integer, primary_key=True, doc="政策动态自增ID")
    title = db.Column(db.String(20))
    _image = db.Column('image', db.String(50))
    _file = db.Column('file', db.String(32))
    type = db.Column(db.String(20))
    content = db.Column(db.Text)

    @property
    def image(self):
        """
        处理图片
        :return:
        """
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename

    @property
    def file(self):
        """
        处理文件
        :return:
        """
        return self._file

    @file.setter
    def file(self, filename):
        self._file = filename
Exemplo n.º 2
0
class ParkInfo(Base, MixinModelJSONSerializer):
    """城南新区信息"""
    __tablename__ = 'park_info'
    id = db.Column(db.Integer, primary_key=True, doc="资讯分类自增ID")
    name = db.Column(db.String(20), unique=True, nullable=False)
    url = db.Column(db.String(20))
    dec = db.Column(db.Text)
Exemplo n.º 3
0
class ParkMerchant(Base, MixinModelJSONSerializer):
    """
    招商资讯
    """
    __tablename__ = 'park_merchant'
    id = db.Column(db.Integer, primary_key=True, doc="招商资讯自增ID")
    title = db.Column(db.String(20))
    content = db.Column(db.String(20))
Exemplo n.º 4
0
class AdminAuth(Base, MixinModelJSONSerializer):
    """权限模快"""
    id = db.Column(db.Integer, primary_key=True, comment="权限自增ID")
    auth_name = db.Column(db.String(100), comment="权限名称")
    url = db.Column(db.String(200), comment="权限地址")
    auth = db.relationship('Module')
    sec_module_id = db.Column(db.Integer, db.ForeignKey('sec_module.id'))
    module = db.relationship('SecModule', uselist=False)
Exemplo n.º 5
0
class EduExperience(Base, MixinModelJSONSerializer):
    __tablename__ = 'edu_experience'

    id = db.Column(db.Integer, primary_key=True)
    school = db.Column(db.String(32), nullable=False)
    # 所学专业
    specialty = db.Column(db.String(32), nullable=False)
    degree = db.Column(db.String(16))
    resume_id = db.Column(db.Integer, db.ForeignKey('resume.id'))
    resume = db.relationship('Resume', uselist=False)
Exemplo n.º 6
0
class JobExperience(Base, MixinModelJSONSerializer):
    __tablename__ = 'job_experience'

    id = db.Column(db.Integer, primary_key=True)
    begin_at = db.Column(db.DateTime)
    end_at = db.Column(db.DateTime)
    company = db.Column(db.String(32), nullable=False)
    city = db.Column(db.String(32), nullable=False)
    resume_id = db.Column(db.Integer, db.ForeignKey('resume.id'))
    resume = db.relationship('Resume', uselist=False)
Exemplo n.º 7
0
class ProjectExperience(Base, MixinModelJSONSerializer):
    __tablename__ = 'preject_experience'

    id = db.Column(db.Integer, primary_key=True)
    begin_at = db.Column(db.DateTime)
    end_at = db.Column(db.DateTime)
    name = db.Column(db.String(32), nullable=False)
    # 在项目中扮演的角色
    role = db.Column(db.String(32))
    # 多个技术用逗号隔开
    technologys = db.Column(db.String(64))
    resume_id = db.Column(db.Integer, db.ForeignKey('resume.id'))
    resume = db.relationship('Resume', uselist=False)
Exemplo n.º 8
0
class ParkEnterprise(Base, MixinModelJSONSerializer):
    """企业风采"""
    __tablename__ = 'park_enterprise'
    id = db.Column(db.Integer, primary_key=True, doc="行业资讯自增ID")
    name = db.Column(db.String(20))
    _image = db.Column('image', db.String(50))
    content = db.Column(db.Text)

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 9
0
class ParkIndustrialPark(Base, MixinModelJSONSerializer):
    """园区实景"""
    __tablename__ = 'park_indupark'
    id = db.Column(db.Integer, primary_key=True, doc="行业资讯自增ID")
    type = db.Column(db.SmallInteger)
    name = db.Column(db.String(20), unique=True, nullable=False)
    _image = db.Column('image', db.String(50))

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 10
0
class ParkSmallTown(Base, MixinModelJSONSerializer):
    """数梦小镇"""
    __tablename__ = 'park_smalltown'
    id = db.Column(db.Integer, primary_key=True, doc="行业资讯自增ID")
    name = db.Column(db.String(20), unique=True, nullable=False)
    _image = db.Column('image', db.String(50))
    dec = db.Column(db.Text)
    content = db.Column(db.Text)

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 11
0
class Module(Base, MixinModelJSONSerializer):
    """三级菜单"""
    id = db.Column(db.Integer, primary_key=True, comment="自增ID")
    name = db.Column(db.String(100), unique=True, comment="角色名")
    auth_id = db.Column(db.Integer, db.ForeignKey('admin_auth.id'))
    sec_module_id = db.Column(db.Integer, db.ForeignKey('sec_module.id'))
    module = db.relationship('SecModule', uselist=False)
Exemplo n.º 12
0
class Delivery(Base, MixinModelJSONSerializer):
    __tablename__ = 'delivery'

    # 等待企业审核
    STATUS_WAITING = 1
    # 被拒绝
    STATUS_REJECT = 2
    # 被接收,等待通知面试
    STATUS_ACCEPT = 3

    id = db.Column(db.Integer, primary_key=True)
    job_id = db.Column(db.Integer, db.ForeignKey('job.id',
                                                 ondelete='SET NULL'))
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.id', ondelete='SET NULL'))
    company_id = db.Column(db.Integer)
    status = db.Column(db.SmallInteger, default=STATUS_WAITING)
    # 企业回应
    response = db.Column(db.String(256))

    @property
    def user(self):
        return User.query.get(self.user_id)

    @property
    def job(self):
        return Job.query.get(self.job_id)
Exemplo n.º 13
0
class ParkBreaking(Base, MixinModelJSONSerializer):
    """
    大事件
    """
    __tablename__ = 'park_breaking'
    id = db.Column(db.Integer, primary_key=True, doc="大事件自增ID")
    title = db.Column(db.String(20))
    note = db.Column(db.Text)
Exemplo n.º 14
0
class ParkIndustryShow(Base, MixinModelJSONSerializer):
    """
    资讯分类
    """
    __tablename__ = 'park_ind_show'
    id = db.Column(db.Integer, primary_key=True, doc="资讯分类自增ID")
    type = db.Column(db.String(20))
    active = db.Column(db.SmallInteger, default=0)
Exemplo n.º 15
0
class ParkNews(Base, MixinModelJSONSerializer):
    """
    新闻动态
    """
    __tablename__ = 'park_news'
    id = db.Column(db.Integer, primary_key=True, doc="新闻动态自增ID")
    title = db.Column(db.String(20))
    _image = db.Column('image', db.String(50))
    content = db.Column(db.Text)

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 16
0
class ParkPush(Base, MixinModelJSONSerializer):
    """
    需求推送
    """
    __tablename__ = 'park_push'
    id = db.Column(db.Integer, primary_key=True, doc="需求推送自增ID")
    company = db.Column(db.String(20))
    type = db.Column(db.SmallInteger)
    content = db.Column(db.Text)
Exemplo n.º 17
0
class ParkIndustry(Base, MixinModelJSONSerializer):
    """
    行业资讯
    """
    __tablename__ = 'park_industry'
    id = db.Column(db.Integer, primary_key=True, doc="行业资讯自增ID")
    title = db.Column(db.String(20))
    type = db.Column(db.String(20))
    _image = db.Column('image', db.String(50))
    content = db.Column(db.String(20))
    remark = db.Column(db.String(20))

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 18
0
class ParkEduNotices(Base, MixinModelJSONSerializer):
    """
    园区&政府动态
    """
    __tablename__ = 'park_notices'
    id = db.Column(db.Integer, primary_key=True, doc="园区动态自增ID")
    title = db.Column(db.String(20))
    _image = db.Column('image', db.String(50))
    type = db.Column(db.String(20))
    content = db.Column(db.Text)
    introduction = db.Column(db.String(30))

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 19
0
class ParkCircum(Base, MixinModelJSONSerializer):
    """
    周边园区
    """
    __tablename__ = 'park_circum'
    id = db.Column(db.Integer, primary_key=True, doc="周边自增ID")
    title = db.Column(db.String(20))
    _image = db.Column('image', db.String(50))
    city = db.Column(db.String(20))
    url = db.Column(db.String(20))
    mobile = db.Column(db.String(20))
    content = db.Column(db.Text)

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename
Exemplo n.º 20
0
class Job(Base, MixinModelJSONSerializer):
    __tablename__ = 'job'

    id = db.Column(db.Integer, primary_key=True)
    # 职位名称
    name = db.Column(db.String(24))
    salary_low = db.Column(db.Integer, nullable=False)
    salary_high = db.Column(db.Integer, nullable=False)
    location = db.Column(db.String(24))
    description = db.Column(db.String(1500))
    # 职位标签,多个标签用逗号隔开,最多10个
    tags = db.Column(db.String(128))
    experience_requirement = db.Column(db.String(32))
    degree_requirement = db.Column(db.String(32))
    is_fulltime = db.Column(db.Boolean, default=True)
    # 是否在招聘
    is_open = db.Column(db.Boolean, default=True)
    company_id = db.Column(db.Integer,
                           db.ForeignKey('user.id', ondelete='CASCADE'))
    company = db.relationship('User',
                              uselist=False,
                              backref=db.backref('job', lazy='dynamic'))
    views_count = db.Column(db.Integer, default=0)
    is_disable = db.Column(db.Boolean, default=False)

    @property
    def tag_list(self):
        return self.tags.split(',')

    @property
    def current_user_is_applied(self):
        d = Delivery.query.filter_by(job_id=self.id,
                                     user_id=g.user.uid).first()
        return d is not None
Exemplo n.º 21
0
class SecModule(Base, MixinModelJSONSerializer):
    """二级菜单"""
    id = db.Column(db.Integer, primary_key=True, comment="自增ID")
    name = db.Column(db.String(100), unique=True, comment="角色名")
Exemplo n.º 22
0
class Role(Base, MixinModelJSONSerializer):
    """角色模块"""
    id = db.Column(db.Integer, primary_key=True, comment="自增ID")
    name = db.Column(db.String(100), unique=True, comment="角色名")
    auth = db.Column(db.String(255), comment="权限列表")
    role = db.relationship("User", backref='role')
Exemplo n.º 23
0
class CompanyDetail(Base, MixinModelJSONSerializer):
    __tablename__ = 'company_detail'

    id = db.Column(db.Integer, primary_key=True)
    logo = db.Column(db.String(256), nullable=False)
    site = db.Column(db.String(128), nullable=False)
    location = db.Column(db.String(24), nullable=False)
    # 一句话描述
    description = db.Column(db.String(100))
    # 关于我们,公司详情描述
    about = db.Column(db.String(1024))
    # 公司标签,多个标签用逗号隔开,最多10个
    tags = db.Column(db.String(128))
    # 公司技术栈,多个技术用逗号隔开,最多10个
    stack = db.Column(db.String(128))
    # 团队介绍
    team_introduction = db.Column(db.String(256))
    # 公司福利,多个福利用分号隔开,最多 10 个
    welfares = db.Column(db.String(256))
    # 公司领域
    field = db.Column(db.String(128))
    # 融资进度
    finance_stage = db.Column(db.String(128))
    user_id = db.Column(db.Integer,
                        db.ForeignKey('user.id', ondelete='SET NULL'))
    user = db.relationship('User',
                           backref=db.backref('company_detail', uselist=False))
Exemplo n.º 24
0
class User(Base, MixinModelJSONSerializer):
    id = db.Column(db.Integer, primary_key=True, comment="用户自增ID")
    auth = db.Column(db.SmallInteger, default=100, comment="默认组")
    username = db.Column(db.String(24),
                         unique=True,
                         nullable=True,
                         comment="用户名")
    nickname = db.Column(db.String(24),
                         unique=True,
                         nullable=False,
                         comment="用户昵称")
    email = db.Column(db.String(30), unique=True, nullable=False)
    role_id = db.Column(db.Integer, db.ForeignKey('role.id'), comment="用户权限组")
    _image = db.Column('image', db.String(50), comment="图片地址")
    _password = db.Column('password',
                          db.String(100),
                          nullable=True,
                          comment="用户密码")
    # 根据用户在网站上填写的内容生成的简历
    collect_jobs = db.relationship('Job', secondary=user_job)
    # 用户上传的简历或者简历链接
    resume = db.relationship('Resume', uselist=False)
    # 企业用户详情
    detail = db.relationship('CompanyDetail', uselist=False)

    @property
    def image(self):
        return self._image

    @image.setter
    def image(self, filename):
        self._image = filename

    def _set_fields(self):
        """
        数据序列化要隐藏的字段
        """
        self._exclude = ['password']

    @property
    def password(self):
        return self._password

    @password.setter
    def password(self, raw):
        self._password = generate_password_hash(raw)

    def check_password(self, raw):
        if not self._password:
            return False
        return check_password_hash(self._password, raw)

    @staticmethod
    def register_by_username(username, password, nickname):
        with db.auto_commit():
            user = User()
            user.nickname = nickname
            user.username = username
            user.password = password
            db.session.add(user)

    @staticmethod
    def verify(username, password):
        """
        验证用户的作用域
        """
        user = User.query.filter_by(username=username).first_or_404()
        if not user:
            raise UserNotExistException(message="当前用户不存在 ~ !")
        if not user.check_password(password):
            raise AuthFailed()
        is_auth = {
            777: admin_scope,
            755: company_scope,
            707: merchants_cope,
            706: property_scope,
            705: literacy_scope,
            100: user_scope
        }
        scope = is_auth.get(user.auth, get_defualt)()
        return {'uid': user.id, 'scope': scope}

    @staticmethod
    def change_password(old_password, new_password):
        """
        修改密码
        """
        uid = g.user.uid
        with db.auto_commit():
            user = User.query.get(uid)
            if not user:
                return False
            if user.check_password(old_password):
                user.password = new_password
                return True
            return False

    @staticmethod
    def reset_password(token, new_password):
        s = Serializer(current_app.config['SECRET_KEY'])
        try:
            data = s.loads(token.encode('utf-8'))
        except:
            return False
        uid = data.get('id')
        with db.auto_commit():
            user = User.query.get(uid)
            user.password = new_password
        return True

    def generate_token(self, expiration=600):
        s = Serializer(current_app.config['SECRET_KEY'], expiration)
        return s.dumps({'id': self.id}).decode('utf-8')