from sqlalchemy.orm import Session from module_admin.entity.do.modmak_do import SysModmak from module_admin.entity.vo.modmak_vo import ModmakModel from utils.time_format_util import list_format_datetime class ModmakDao: """ 测试管理模块数据库操作层 """ @classmethod def get_modmak_by_id(cls, db: Session, model_oneid: str): """ 根据测试id获取在用测试详细信息 :param db: orm对象 :param model_oneid: 测试id :return: 在用测试信息对象 """ modmak_info = db.query(SysModmak) \ .filter(SysModmak.model_oneid == model_oneid, SysModmak.model_status == 0) \ .first() return modmak_info @classmethod def get_modmak_detail_by_id(cls, db: Session, model_oneid: str): """ 根据测试id获取测试详细信息 :param db: orm对象 :param model_oneid: 测试id :return: 测试信息对象 """ modmak_info = db.query(SysModmak) \ .filter(SysModmak.model_oneid == model_oneid) \ .first() return modmak_info @classmethod def get_modmak_detail_by_info(cls, db: Session, modmak: ModmakModel): """ 根据测试参数获取测试信息 :param db: orm对象 :param modmak: 测试参数对象 :return: 测试信息对象 """ modmak_info = db.query(SysModmak) \ .filter(SysModmak.model_oneid == modmak.model_oneid if modmak.model_oneid else True, SysModmak.model_name_cn == modmak.model_name_cn if modmak.model_name_cn else True, SysModmak.model_name_en == modmak.model_name_en if modmak.model_name_en else True) \ .first() return modmak_info @classmethod def get_modmak_select_option_dao(cls, db: Session): """ 获取所有在用测试信息 :param db: orm对象 :return: 在用测试信息列表 """ modmak_info = db.query(SysModmak) \ .filter(SysModmak.model_status == 0) \ .all() return modmak_info @classmethod def get_modmak_list(cls, db: Session, query_object: ModmakModel): """ 根据查询参数获取测试列表信息 :param db: orm对象 :param query_object: 查询参数对象 :return: 测试列表信息对象 """ modmak_list = db.query(SysModmak) \ .filter(SysModmak.model_oneid.like(f'%{query_object.model_oneid}%') if query_object.model_oneid else True, SysModmak.model_name_cn.like(f'%{query_object.model_name_cn}%') if query_object.model_name_cn else True, SysModmak.model_status == query_object.model_status if query_object.model_status else True ) \ .order_by(SysModmak.onum) \ .distinct().all() return list_format_datetime(modmak_list) @classmethod def add_modmak_dao(cls, db: Session, modmak: ModmakModel): """ 新增测试数据库操作 :param db: orm对象 :param modmak: 测试对象 :return: """ db_modmak = SysModmak(**modmak.dict()) db.add(db_modmak) db.flush() return db_modmak @classmethod def edit_modmak_dao(cls, db: Session, modmak: dict): """ 编辑测试数据库操作 :param db: orm对象 :param modmak: 需要更新的测试字典 :return: """ db.query(SysModmak) \ .filter(SysModmak.model_oneid == modmak.get('model_oneid')) \ .update(modmak) @classmethod def delete_modmak_dao(cls, db: Session, modmak: ModmakModel): """ 删除测试数据库操作 :param db: orm对象 :param modmak: 测试对象 :return: """ db.query(SysModmak) \ .filter(SysModmak.model_oneid == modmak.model_oneid) \ .delete()