项目基础模块代码

This commit is contained in:
2025-02-19 11:47:33 +08:00
parent 3cb2a4c507
commit 31302bcd17
30 changed files with 588 additions and 74 deletions

View File

@ -0,0 +1,35 @@
from sqlalchemy.orm import Session
from sqlalchemy import asc
from app.model.bussiness_model import ProjectImage as piModel
from app.model.schemas.project_image_schemas import ProjectImage, ProjectImagePager
from app.db.page_util import get_pager
def get_image_pager(image: ProjectImagePager, session: Session):
query = session.query(piModel).filter(piModel.project_id == image.project_id).order_by(asc(piModel.id))
pager = get_pager(query, image.pagerNum, image.pagerSize)
pager.data = [ProjectImage.from_orm(image) for image in pager.data]
return pager
def get_image_list(image: ProjectImage, session: Session):
query = session.query(piModel).filter(piModel.project_id == image.project_id).order_by(asc(piModel.id))
image_list = [ProjectImage.from_orm(image) for image in query.all()]
return image_list
def add_image(image: ProjectImage, session: Session):
session.add(image)
session.commit()
return image
def del_image(id: str, session: Session):
row_del = session.query(piModel).filter_by(id=id).delete()
session.commit()
return row_del

View File

@ -0,0 +1,42 @@
from sqlalchemy.orm import Session
from sqlalchemy import desc
from app.model.bussiness_model import ProjectInfo
from app.model.schemas.project_info_schemas import ProjectInfoOut
from app.model.schemas.project_info_schemas import ProjectInfoPager
from app.db.page_util import get_pager
def get_project_pager(info: ProjectInfoPager, session: Session):
"""分页查询项目信息"""
query = session.query(ProjectInfo).order_by(desc(ProjectInfo.id))
filters = []
if info.project_name is not None:
filters.append(ProjectInfo.project_name.ilike(f"%{info.project_name}%"))
if len(filters) > 0:
query.filter(*filters)
pager = get_pager(query, info.pagerNum, info.pagerSize)
pager.data = [ProjectInfoOut.from_orm(info).dict() for info in pager.data]
return pager
def get_project_by_id(id: str, session: Session):
info = session.query(ProjectInfo).filter_by(id=id).first()
info_out = ProjectInfoOut.from_orm(info)
return info_out
def add_project(info: ProjectInfo, session: Session):
"""新建项目,并在对应文件夹下面创建文件夹"""
session.add(info)
session.commit()
return info
def check_project_name(project_name: str, session: Session):
"""检验是否存在重名的项目名称"""
count = session.query(ProjectInfo).filter(ProjectInfo.project_name == project_name).count()
if count > 0:
return True
else:
return False

View File

@ -0,0 +1,72 @@
from sqlalchemy.orm import Session
from app.model.bussiness_model import ProjectLabel as plModel
from app.model.schemas.project_label_schemas import ProjectLabel
def get_label_list(project_id: int, session: Session):
"""
根绝项目id获取标签列表
:param project_id: 项目id
:param session:
:return:
"""
label_list = session.query(plModel).filter(plModel.project_id == project_id).all()
label_list = [ProjectLabel.from_orm(label) for label in label_list]
return label_list
def add_label(label: plModel, session: Session):
"""
新增标签
:param label:
:param session:
:return:
"""
session.add(label)
session.commit()
return label.id
def check_label_name(project_id: int, label_name: str, session: Session, label_id: int = None):
"""
检验标签名称是否存在
:param label_id:
:param project_id: 项目id
:param label_name: 标签名称
:param session:
:return:
"""
query = session.query(plModel)
filters = [plModel.project_id == project_id, plModel.label_name == label_name]
if label_id is not None:
filters.append(plModel.id != label_id)
query.filter(*filters)
if query.count() > 0:
return False
else:
return True
def update_label(label: plModel, session: Session):
"""
修改标签名称
:param label:
:param session:
:return:
"""
session.query(plModel).filter_by(id=label.id).update({
"label_name": label.label_name
})
session.commit()
def del_label(id: str, session: Session):
"""
根据标签id删除标签
:param id: 标签id
:param session:
:return:
"""
row_del = session.query(plModel).filter_by(id=id).delete()
return row_del

View File

@ -0,0 +1,13 @@
from app.model.bussiness_model import ProjectType
from app.model.schemas.project_type_schemas import ProjectTypeOut
from sqlalchemy import asc
from sqlalchemy.orm import Session
def get_list(session: Session):
"""获取项目类型列表"""
query = session.query(ProjectType).order_by(asc(ProjectType.id))
query.filter(ProjectType.type_status == "0")
result_list = [ProjectTypeOut.from_orm(project_type).dict() for project_type in query.all()]
return result_list

View File

@ -1,23 +1,21 @@
from app.model.model import SysUser
from app.model.sys_model import SysUser
from app.model.schemas.sys_user_schemas import SysUserPager, SysUserOut
from app.common.bcrypt_pw import hash_password
from app.db.page_util import get_pager
from sqlalchemy import and_, desc
from sqlalchemy import and_, asc
from sqlalchemy.orm import Session
def user_pager(user: SysUserPager, session: Session):
query = session.query(SysUser).order_by(desc(SysUser.id))
query = session.query(SysUser).order_by(asc(SysUser.id))
filters = []
if user.username is not None:
filters.append(SysUser.username.ilike(f"%{user.username}%"))
if user.dept_id is not None:
filters.append(SysUser.dept_id == user.dept_id)
if len(filters) > 0:
query.filter(and_(*filters))
pager = get_pager(query, user.pagerNum, user.pagerSize)
pager.data = [SysUserOut.from_orm(user) for user in pager.data]
pager.data = [SysUserOut.from_orm(user).dict() for user in pager.data]
return pager
@ -35,13 +33,13 @@ def get_user_by_id(id: int, session: Session):
def stop_user(user: SysUser, session: Session):
user.user_status = "1"
session.commit();
session.commit()
return user
def start_user(user: SysUser, session: Session):
user.user_status = "0"
session.commit();
session.commit()
return user