from common.core.deps import SessionDep from ..models.datasource import CoreField, FieldObj from sqlalchemy import or_, and_ def delete_field_by_ds_id(session: SessionDep, id: int): session.query(CoreField).filter(CoreField.ds_id == id).delete(synchronize_session=False) session.commit() def get_fields_by_table_id(session: SessionDep, id: int, field: FieldObj): if field and field.fieldName: return session.query(CoreField).filter( and_(CoreField.table_id == id, or_(CoreField.field_name.like(f'%{field.fieldName}%'), CoreField.field_name.like(f'%{field.fieldName.lower()}%'), CoreField.field_name.like(f'%{field.fieldName.upper()}%')))).order_by( CoreField.field_index.asc()).all() else: return session.query(CoreField).filter(CoreField.table_id == id).order_by(CoreField.field_index.asc()).all() def update_field(session: SessionDep, item: CoreField): record = session.query(CoreField).filter(CoreField.id == item.id).first() record.checked = item.checked record.custom_comment = item.custom_comment session.add(record) session.commit()