from sqlalchemy.orm import Session from module_admin.entity.do.newtest_do import SysNewtest from module_admin.entity.vo.newtest_vo import NewtestModel from utils.time_format_util import list_format_datetime class NewtestDao: """ 测试管理模块数据库操作层 """ @classmethod def get_newtest_by_id(cls, db: Session, newtest_id: int): """ 根据测试id获取在用测试详细信息 :param db: orm对象 :param newtest_id: 测试id :return: 在用测试信息对象 """ newtest_info = db.query(SysNewtest) \ .filter(SysNewtest.newtest_id == newtest_id, SysNewtest.status == 0) \ .first() return newtest_info @classmethod def get_newtest_detail_by_id(cls, db: Session, newtest_id: int): """ 根据测试id获取测试详细信息 :param db: orm对象 :param newtest_id: 测试id :return: 测试信息对象 """ newtest_info = db.query(SysNewtest) \ .filter(SysNewtest.newtest_id == newtest_id) \ .first() return newtest_info @classmethod def get_newtest_detail_by_info(cls, db: Session, newtest: NewtestModel): """ 根据测试参数获取测试信息 :param db: orm对象 :param newtest: 测试参数对象 :return: 测试信息对象 """ newtest_info = db.query(SysNewtest) \ .filter(SysNewtest.newtest_name == newtest.newtest_name if newtest.newtest_name else True, SysNewtest.newtest_code == newtest.newtest_code if newtest.newtest_code else True, SysNewtest.newtest_sort == newtest.newtest_sort if newtest.newtest_sort else True) \ .first() return newtest_info @classmethod def get_newtest_select_option_dao(cls, db: Session): """ 获取所有在用测试信息 :param db: orm对象 :return: 在用测试信息列表 """ newtest_info = db.query(SysNewtest) \ .filter(SysNewtest.status == 0) \ .all() return newtest_info @classmethod def get_newtest_list(cls, db: Session, query_object: NewtestModel): """ 根据查询参数获取测试列表信息 :param db: orm对象 :param query_object: 查询参数对象 :return: 测试列表信息对象 """ newtest_list = db.query(SysNewtest) \ .filter(SysNewtest.newtest_code.like(f'%{query_object.newtest_code}%') if query_object.newtest_code else True, SysNewtest.newtest_name.like(f'%{query_object.newtest_name}%') if query_object.newtest_name else True, SysNewtest.status == query_object.status if query_object.status else True ) \ .order_by(SysNewtest.newtest_sort) \ .distinct().all() return list_format_datetime(newtest_list) @classmethod def add_newtest_dao(cls, db: Session, newtest: NewtestModel): """ 新增测试数据库操作 :param db: orm对象 :param newtest: 测试对象 :return: """ db_newtest = SysNewtest(**newtest.dict()) db.add(db_newtest) db.flush() return db_newtest @classmethod def edit_newtest_dao(cls, db: Session, newtest: dict): """ 编辑测试数据库操作 :param db: orm对象 :param newtest: 需要更新的测试字典 :return: """ db.query(SysNewtest) \ .filter(SysNewtest.newtest_id == newtest.get('newtest_id')) \ .update(newtest) @classmethod def delete_newtest_dao(cls, db: Session, newtest: NewtestModel): """ 删除测试数据库操作 :param db: orm对象 :param newtest: 测试对象 :return: """ db.query(SysNewtest) \ .filter(SysNewtest.newtest_id == newtest.newtest_id) \ .delete()