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