from sqlalchemy.orm import Session from module_admin.entity.do.mmdt_do import SysMmdt from module_admin.entity.vo.mmdt_vo import MmdtModel from utils.time_format_util import list_format_datetime class MmdtDao: """ 模型市场管理模块数据库操作层 """ @classmethod def get_mmdt_by_id(cls, db: Session, onum: int): """ 根据模型市场id获取在用模型市场详细信息 :param db: orm对象 :param onum: 模型市场id :return: 在用模型市场信息对象 """ mmdt_info = db.query(SysMmdt) \ .filter(SysMmdt.onum == onum, SysMmdt.status == 0) \ .first() return mmdt_info @classmethod def get_mmdt_detail_by_id(cls, db: Session, onum: int): """ 根据模型市场id获取模型市场详细信息 :param db: orm对象 :param onum: 模型市场id :return: 模型市场信息对象 """ mmdt_info = db.query(SysMmdt) \ .filter(SysMmdt.onum == onum) \ .first() return mmdt_info @classmethod def get_mmdt_detail_by_info(cls, db: Session, mmdt: MmdtModel): """ 根据模型市场参数获取模型管理信息 :param db: orm对象 :param mmdt: 模型市场参数对象 :return: 模型管理信息对象 """ mmdt_info = db.query(SysMmdt) \ .filter(SysMmdt.data_dict_cn_name == mmdt.data_dict_cn_name if mmdt.data_dict_cn_name else True, SysMmdt.data_dict_no == mmdt.data_dict_no if mmdt.data_dict_no else True, SysMmdt.dict_busi_mean == mmdt.dict_busi_mean if mmdt.dict_busi_mean else True) \ .first() return mmdt_info @classmethod def get_mmdt_select_option_dao(cls, db: Session): """ 获取所有在用模型市场信息 :param db: orm对象 :return: 在用模型市场信息列表 """ mmdt_info = db.query(SysMmdt) \ .filter(SysMmdt.status == 0) \ .all() return mmdt_info @classmethod def get_mmdt_list(cls, db: Session, query_object: MmdtModel): """ 根据查询参数获取模型市场列表信息 :param db: orm对象 :param query_object: 查询参数对象 :return: 模型市场列表信息对象 """ mmdt_list = db.query(SysMmdt) \ .filter(SysMmdt.data_dict_no.like(f'%{query_object.data_dict_no}%') if query_object.data_dict_no else True, SysMmdt.data_dict_cn_name.like(f'%{query_object.data_dict_cn_name}%') if query_object.data_dict_cn_name else True, SysMmdt.dict_busi_mean.like(f'%{query_object.dict_busi_mean}%') if query_object.dict_busi_mean else True, SysMmdt.status == query_object.status if query_object.status else True ) \ .order_by(SysMmdt.onum) \ .distinct().all() return list_format_datetime(mmdt_list) @classmethod def add_mmdt_dao(cls, db: Session, mmdt: MmdtModel): """ 新增模型市场数据库操作 :param db: orm对象 :param mmdt: 模型市场对象 :return: """ db_mmdt = SysMmdt(**mmdt.dict()) db.add(db_mmdt) db.flush() return db_mmdt @classmethod def edit_mmdt_dao(cls, db: Session, mmdt: dict): """ 编辑模型市场数据库操作 :param db: orm对象 :param mmdt: 需要更新的模型市场字典 :return: """ db.query(SysMmdt) \ .filter(SysMmdt.onum == mmdt.get('onum')) \ .update(mmdt) @classmethod def delete_mmdt_dao(cls, db: Session, mmdt: MmdtModel): """ 删除模型市场数据库操作 :param db: orm对象 :param mmdt: 模型市场对象 :return: """ db.query(SysMmdt) \ .filter(SysMmdt.onum == mmdt.onum) \ .delete() @classmethod def get_mmdt_by_info(cls, db: Session, mmdt: MmdtModel): """ 根据用户参数获取mmdt信息 :param db: orm对象 :param user: mmdt参数 :return: 当前mmdt参数的mmdt信息对象 """ query_mmdt_info = db.query(SysMmdt) \ .filter(SysMmdt.status == 0, SysMmdt.onum == mmdt.onum) \ .order_by(SysMmdt.onum).distinct().first() return query_mmdt_info