Files
aicheckv2/app/model/crud/project_detect_crud.py

88 lines
2.4 KiB
Python

from typing import List
from sqlalchemy.orm import Session
from sqlalchemy import asc, and_
from fastapi.encoders import jsonable_encoder
from fastapi import UploadFile
from app.model.bussiness_model import ProjectDetect, ProjectDetectImg, ProjectDetectLog, ProjectDetectLogImg
from app.model.schemas.project_detect_schemas import ProjectDetectOut, ProjectDetectPager
from app.db.page_util import get_pager
def add_detect(detect: ProjectDetect, session: Session):
"""
新增推理集合
:param detect:
:param session:
:return:
"""
session.add(detect)
session.commit()
return detect
def get_detect_pager(detect_pager: ProjectDetectPager, session: Session):
"""
查询推理集合分页数据
:param detect_pager:
:param session:
:return:
"""
query = session.query(ProjectDetect).order_by(asc(ProjectDetect.id))
filters = [ProjectDetect.project_id == detect_pager.project_id]
if detect_pager.detect_name is not None:
filters.append(ProjectDetect.detect_name.ilike(f"%{detect_pager.detect_name}%"))
query = query.filter(and_(*filters))
pager = get_pager(query, detect_pager.pagerNum, detect_pager.pagerSize)
pager.data = [ProjectDetectOut.from_orm(user) for user in pager.data]
pager.data = jsonable_encoder(pager.data)
return pager
def check_img_name(detect_id: int, file_name: str, session: Session):
"""
校验上传的图片名称是否重名
:param detect_id:
:param file_name:
:param session:
:return:
"""
image = session.query(ProjectDetectImg).filter_by(detect_id=detect_id).filter_by(file_name=file_name).first()
if image is None:
return True, None
else:
return False, image.file_name
def add_detect_imgs(detect_imgs: List[ProjectDetectImg], session: Session):
"""
添加推理集合中的图片
:param detect_imgs:
:param session:
:return:
"""
session.add_all(detect_imgs)
session.commit()
def add_detect_log(detect_log: ProjectDetectLog, session: Session):
"""
新增推理记录
:param detect_log:
:param session:
:return:
"""
session.add(detect_log)
session.commit()
return detect_log
def add_detect_log_imgs(detect_log_imgs: List[ProjectDetectLogImg], session: Session):
"""
新增推理记录中的照片
:param detect_log_imgs:
:param session:
:return:
"""
session.add_all(detect_log_imgs)
session.commit()