class Project(db.Model):
    '''项目'''
    __tablename__ = 'apitest_project'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    project_name = db.Column(db.String(255), comment='项目名')
    project_description = db.Column(db.String(255), comment='项目描述')
    module_count = db.Column(db.Integer(), comment='模块数量')
    interface_count = db.Column(db.Integer(), comment='接口数量')
    create_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='项目创建时间')
    modify_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='项目修改时间')
    status = db.Column(db.Boolean(), default=False)
    user_id = db.Column(db.Integer(),
                        db.ForeignKey('common_user.id'),
                        comment='项目负责人id')
    interface = db.relationship('Interface',
                                backref=db.backref('project', lazy='dynamic'))
    module = db.relationship('Module',
                             backref=db.backref('project', lazy='dynamic'))

    def __str__(self):
        return self.project_name
class InterfaceCase(db.Model):
    '''接口测试用例'''
    __tablename__ = 'apitest_interface_case'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    interface_url = db.Column(db.String(255), comment='接口url')
    interface_headers = db.Column(db.String(255), comment='http请求消息头')
    interface_method = db.Column(db.String(255),
                                 server_default='GET',
                                 comment='接口请求方式')
    interface_params = db.Column(db.String(255), comment='请求参数')
    interface_response = db.Column(db.String(255), comment='请求响应')
    interface_response_assert = db.Column(db.String(255), comment='请求响应断言')
    create_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='用例创建时间')
    modify_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='用例修改时间')
    status = db.Column(db.Boolean(), default=False, comment='是否开启')
    interface_id = db.Column(db.Integer(),
                             db.ForeignKey('apitest_interface.id'),
                             comment='接口id')
    user_id = db.Column(db.INTEGER(),
                        db.ForeignKey('common_user.id'),
                        comment='测试执行者id')
    case_result = db.relationship('CaseResult',
                                  backref=db.backref('interface_case',
                                                     lazy='dynamic'))
class Module(db.Model):
    '''模块,有的接口是根据模块来划分的'''
    __tablename__ = 'apitest_module'
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    module_name = db.Column(db.String(255), comment='模块名')
    module_description = db.Column(db.String(255), comment='模块描述')
    create_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='模块创建时间')
    modify_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='模块修改时间')
    status = db.Column(db.Boolean(), default=False)
    user_id = db.Column(db.Integer(),
                        db.ForeignKey('common_user.id'),
                        comment='模块负责者id')
    project_id = db.Column(db.Integer(),
                           db.ForeignKey('apitest_project.id'),
                           comment='项目id')
    interface = db.relationship('Interface',
                                backref=db.backref('module', lazy='dynamic'))

    def __str__(self):
        return self.module_name
class Account(db.Model):
    __tablename__ = 'account'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    # 结账流水号 后期银行对接  可以用上 先架构着  默认是8个0
    accountNo = db.Column(db.String(50), nullable=False, default='00000000')
    # 结账时间
    time = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    accountMoney = db.Column(db.REAL(), nullable=False, default=0)
    # 关联用户表id
    userId = db.Column(db.Integer(), db.ForeignKey('user.id'))
    user = db.relationship('User', backref='account')
Пример #5
0
class Role(db.Model, RoleMixin):
    '''角色'''
    __tablename__ = 'common_role'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    name = db.Column(db.String(80), unique=True, comment='角色名称')
    permissions = db.Column(db.Integer(), default=Permission.LOGIN)
    description = db.Column(db.String(255), comment='描述')

    def __init__(self, name, description):
        self.name = name
        self.description = description
class Drug(db.Model):
    __tablename__ = 'drug'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    num = db.Column(db.String(50), nullable=False)
    name = db.Column(db.String(50), nullable=False)
    count = db.Column(db.Integer(), nullable=False)
    saleCount = db.Column(db.Integer(), nullable=False, default=0)
    price = db.Column(db.REAL(), nullable=False, default=0)
    desc = db.Column(db.String(500), nullable=False)
    # 关联药品类别表id
    drugTypeId = db.Column(db.Integer(), db.ForeignKey('drugType.id'))
    drugType = db.relationship('DrugType', backref='drug')
Пример #7
0
class Sale(db.Model):
    __tablename__ = 'sale'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    # 选购时间
    time = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    # 用户外键
    userId = db.Column(db.Integer(), db.ForeignKey('user.id'))
    user = db.relationship('User', backref='sale')
    # 药品外键
    # drugId = db.Column(db.Integer(), db.ForeignKey('drug.id'))
    # 药品编号
    drugNum = db.Column(db.String(50), nullable=False)
class Stock(db.Model):
    __tablename__ = 'stock'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    stockDate = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    stockPrice = db.Column(db.REAL(), nullable=False)
    stockCount = db.Column(db.Integer(), nullable=False)
    stockMoney = db.Column(db.REAL(), nullable=False)
    # 关联药品表id
    drugId = db.Column(db.Integer(), db.ForeignKey('drug.id'))
    drug = db.relationship('Drug', backref='stock')
    # 关联用户表id
    userId = db.Column(db.Integer(), db.ForeignKey('user.id'))
    user = db.relationship('User', backref='stock')
class Sale(db.Model):
    __tablename__ = 'sale'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    time = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    saleCount = db.Column(db.Integer(), nullable=False)
    saleMoney = db.Column(db.REAL(), nullable=False)
    # 关联用户表id
    userId = db.Column(db.Integer(), db.ForeignKey('user.id'))
    user = db.relationship('User', backref='sale')
    # 关联结账表id
    accountId = db.Column(db.Integer(), db.ForeignKey('account.id'))
    account = db.relationship('Account', backref='sale')
    # 关联药品表id
    drugId = db.Column(db.Integer(), db.ForeignKey('drug.id'))
    drug = db.relationship('Drug', backref='sale')
Пример #10
0
class Account(db.Model):
    __tablename__ = 'account'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    # 结账流水号 后期银行对接  可以用上 先架构着  默认是8个0
    accountNo = db.Column(db.String(50), nullable=False, default='00000000')
    # 结账时间
    time = db.Column(db.DateTime(), nullable=False, default=datetime.now)
    # 用户外键
    userId = db.Column(db.Integer(), db.ForeignKey('user.id'))
    user = db.relationship('User', backref='account')
    # 药品外键
    drugId = db.Column(db.Integer(), db.ForeignKey('drug.id'))
    drugNum = db.Column(db.String(50), nullable=False)
    # 药品编号
    drug = db.relationship('Drug', backref='account')
Пример #11
0
class Drug(db.Model):
    __tablename__ = 'drug'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    num = db.Column(db.String(50), nullable=False)
    name = db.Column(db.String(50), nullable=False)
    desc = db.Column(db.String(500), nullable=False)
    isSale = db.Column(db.Boolean(), nullable=False, default=False)
    # isChoose = db.Column(db.Boolean(), nullable=False, default=False)
    stockDate = db.Column(db.DateTime(), default=datetime.now)
    stockPrice = db.Column(db.REAL(), nullable=True, default=0)
    saleDate = db.Column(db.DateTime(), nullable=True)
    salePice = db.Column(db.REAL(), nullable=True, default=0)
    # foreignkey药品关联药品类别表id
    drugTypeId = db.Column(db.Integer(), db.ForeignKey('drugType.id'))
    drugType = db.relationship('DrugType', backref='drug')
Пример #12
0
class Answer(db.Model):
    __tablename__ = 'answer'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    content = db.Column(db.Text, nullable=False)
    question_id = db.Column(db.Integer, db.ForeignKey('question.id'))
    autor_id = db.Column(db.Integer, db.ForeignKey('user.id'))
    create_time = db.Column(db.DateTime, default=datetime.now)
    question = db.relationship('Question', backref=db.backref('answers'))
    autor = db.relationship('User', backref=db.backref('answers'))
Пример #13
0
class User(db.Model):
    __tablename__ = 'user'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    username = db.Column(db.Text(100), nullable=False)
    age = db.Column(db.String(100), nullable=False)
    telephon = db.Column(db.String(100), nullable=False)
    password = db.Column(db.Text(100), nullable=False)
    usertype = db.Column(db.String(100), nullable=False)
    sex = db.Column(db.Text(100), nullable=False)
    avatar = db.Column(db.Text, nullable=True)
    birthday = db.Column(db.String(100), nullable=False)
    userbgimg = db.Column(db.Text, nullable=True)
class Interface(db.Model):
    '''接口'''
    __tablename__ = 'apitest_interface'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    interface_name = db.Column(db.String(255), comment='接口名')
    interface_url = db.Column(db.String(255), comment='接口url')
    interface_headers = db.Column(db.String(255), comment='http请求消息头')
    interface_method = db.Column(db.String(255),
                                 server_default='GET',
                                 comment='接口请求方式')
    interface_params = db.Column(db.String(255), comment='请求参数示例')
    interface_response = db.Column(db.String(255), comment='请求响应示例')
    interface_description = db.Column(db.String(255), comment='接口描述')
    create_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='接口创建时间')
    modify_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='接口修改时间')
    status = db.Column(db.Boolean(), default=False)
    developer_id = db.Column(db.Integer(),
                             db.ForeignKey('common_user.id'),
                             comment='接口开发者id')
    tester_id = db.Column(db.Integer(),
                          db.ForeignKey('common_user.id'),
                          comment='接口负责者id')
    project_id = db.Column(db.Integer(),
                           db.ForeignKey('common_user.id'),
                           comment='项目id')
    module_id = db.Column(db.Integer(),
                          db.ForeignKey('apitest_module.id'),
                          comment='模块id')
    interface_case = db.relationship('InterfaceCase',
                                     backref=db.backref('interface',
                                                        lazy='dynamic'))

    def __str__(self):
        return self.interface_name
Пример #15
0
class DrugType(db.Model):
    __tablename__ = 'drugType'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)

    # relationship的作用是将药品和药品类别连接起来
    # drugs = db.relationship('Drug', backref='drugType', lazy='dynamic')

    def get_count(self):
        return self.count

    def set_count(self, count):
        self.count = count
Пример #16
0
class Roles(db.Model, RoleMixin):
    __tablename__ = 'role'
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))

    roleUsers = db.relationship('RolesUsers', backref="role", lazy="dynamic")

    def __str__(self):
        return self.name

    def __hash__(self):
        return hash(self.name)
class CaseResult(db.Model):
    '''用例执行结果'''
    __tablename__ = 'apitest_caseresult'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    interface_case_id = db.Column(db.INTEGER(),
                                  db.ForeignKey('apitest_interface_case.id'),
                                  comment='接口用例id')
    create_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now(),
                            comment='测试结果生成时间')
    result = db.Column(db.String(255), comment='测试结果')
    user_id = db.Column(db.INTEGER(),
                        db.ForeignKey('common_user.id'),
                        comment='测试执行者id')
Пример #18
0
class users(db.Model, UserMixin):
    __tablename__ = 'user_info'
    User_ID = db.Column(db.String(3), primary_key=True)
    Password = db.Column(db.String(6), nullable=True)
    Privilege = db.Column(db.Integer(), nullable=True)
    Department = db.Column(db.String(20), nullable=True)

    def __repr__(self):
        return '<user %r>' % self.User_ID

    def check_password(self, password):
        return self.Password == password

    def get_id(self):
        return unicode(self.User_ID)

    def get_privilege(self):
        return unicode(self.Privilege)
Пример #19
0
class RolesUsers(db.Model):
    __tablename__ = 'roles_users'
    id = db.Column(db.Integer(), primary_key=True)
    user_id = db.Column(db.Integer(), db.ForeignKey('user.id'))
    role_id = db.Column(db.Integer(), db.ForeignKey('role.id'))
Пример #20
0
    LOGIN = 0x01
    EDITOR = 0x02
    OPERATOR = 0x04
    ADMINISTER = 0xff
    PERMISSION_MAP = {
        LOGIN: ('login', 'Login user'),
        EDITOR: ('editor', 'Editor'),
        OPERATOR: ('operator', 'Operator'),
        ADMINISTER: ('admin', 'Super Adminitrator')
    }


'''角色用户关系'''
common_role_user = db.Table(
    'common_role_user',
    db.Column('id', db.Integer(), primary_key=True, autoincrement=True),
    db.Column('common_user_id', db.Integer(), db.ForeignKey('common_user.id')),
    db.Column('common_role_id', db.Integer(), db.ForeignKey('common_role.id')))


class Role(db.Model, RoleMixin):
    '''角色'''
    __tablename__ = 'common_role'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    name = db.Column(db.String(80), unique=True, comment='角色名称')
    permissions = db.Column(db.Integer(), default=Permission.LOGIN)
    description = db.Column(db.String(255), comment='描述')

    def __init__(self, name, description):
        self.name = name
        self.description = description
Пример #21
0
class User(db.Model, UserMixin):
    '''用户'''
    __tablename__ = 'common_user'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    username = db.Column(db.String(64),
                         unique=True,
                         nullable=False,
                         comment='用户名')
    realname = db.Column(db.String(64), nullable=False, comment='真实姓名')
    phone = db.Column(db.String(11), default=None, comment='电话')
    gender = db.Column(db.String(1),
                       nullable=False,
                       comment='性别',
                       server_default='男')
    email = db.Column(db.String(255), unique=True, comment='电子邮箱')
    _password = db.Column(db.String(255), nullable=False, comment='密码')
    active = db.Column(db.Boolean(),
                       nullable=False,
                       comment='用户是否处于激活状态',
                       server_default='1')
    create_date = db.Column(db.TIMESTAMP,
                            nullable=False,
                            server_default=func.now())
    role = db.relationship('Role',
                           secondary=common_role_user,
                           backref=db.backref('user', lazy='dynamic'))

    def __init__(self,
                 username=None,
                 realname=None,
                 password=None,
                 gender=None,
                 phone=None,
                 email=None):
        self.username = username
        self.realname = realname
        self.password = password
        self.gender = gender
        self.phone = phone
        self.email = email

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

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

    def check_password(self, rawpwd):
        return check_password_hash(self.password, rawpwd)

    def can(self, permissions):
        if self.roles is None:
            return False
        all_permissions = reduce(or_, map(lambda x: x.permissions, self.roles))
        return all_permissions & permissions == permissions

    def can_admin(self):
        return self.can(Permission.ADMINISTER)

    @property
    def is_authenticated(self):
        '''是否认证'''
        return True

    @property
    def is_active(self):
        '''用户是否处于激活状态'''
        if self.active and self.active is True:
            return True
        else:
            return False

    @property
    def is_anonymous(self):
        '''用户是否匿名用户'''
        return False

    def get_id(self):
        '''获取userId'''
        return self.id
class DrugType(db.Model):
    __tablename__ = 'drugType'
    id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
    name = db.Column(db.String(50), nullable=False)