88 lines
2.4 KiB
Python
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() |