usermod/Crud/PostCrud.py

50 lines
1.4 KiB
Python

from typing import List
from sqlalchemy.orm import Session
from Model.PostModel import Post
from Model.UserModel import User
from Schemas import PostSchemas
def get_post_list(db: Session, query_params: PostSchemas.PostListQueryParams):
query = db.query(Post)
count = query.count()
if query_params.page is not None and query_params.page_size is not None:
query = query.offset((query_params.page - 1) * query_params.page_size).limit(query_params.page).all()
return count, query
def is_post_created(db: Session, name: str):
if db.query(Post).filter_by(name=name).first():
return True
else:
return False
def add_post(db: Session, name: str):
if not is_post_created(db, name):
db.add(Post(name=name))
db.commit()
else:
raise Exception("部门已经存在")
def change_post(db: Session, post_id: int, name: str):
db.query(Post).filter_by(id=post_id).update({"name": name})
db.commit()
def delete_post(db: Session, name: str):
if not is_post_created(db, name):
db.add(Post(name=name))
db.commit()
else:
raise Exception("部门已经存在")
def set_user_post(db: Session, user_id: str, post_id_list: List[int]):
post_info = "".join([str(item) for item in post_id_list])
db.query(User).filter_by(id=user_id).update({"post": post_info})
db.commit()
db.refresh(User)
return User.post