from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from Crud import DepartmentCrud from Schemas import DepartmentSchemas from Schemas.UserSchemas import TokenData from Utils.AuthUtils import admin_auth_token_depend,token_data_depend from Utils.SqlAlchemyUtils import get_db router = APIRouter( tags=["部门操作"], prefix="/api/user_mod/department", dependencies=[Depends(token_data_depend)] ) @router.post("/get_department_list", summary="获取部门列表", response_model=DepartmentSchemas.DepartmentInfoList) def get_department_list(params: DepartmentSchemas.DepartmentListQueryParams,db: Session = Depends(get_db)): count, department_list = DepartmentCrud.get_department_list(db, params) items = [item.to_dict() for item in department_list] department_info_list = DepartmentSchemas.DepartmentInfoList(department_info_list=items, count=count) return department_info_list @router.post("/add_department", summary="添加部门") def add_department(department: DepartmentSchemas.DepartmentBaseInfo, db: Session = Depends(get_db)): DepartmentCrud.add_department(db, department.name, department.belong) return {"msg": "操作成功", "state": 1} @router.post("/get_department_tree", summary="获取部门树") def get_department_tree(db: Session = Depends(get_db)): tree = DepartmentCrud.get_department_tree(db) return tree @router.post("/change_department", summary="修改部门") def change_department(department: DepartmentSchemas.DepartmentInfo, admin=Depends(admin_auth_token_depend), db: Session = Depends(get_db)): DepartmentCrud.change_department(db, department.id, department.name, department.belong) return {"msg": "操作成功", "state": 1} @router.post("/delete_department", summary="删除部门") def delete_department(department_id: DepartmentSchemas.DepartmentId,admin=Depends(admin_auth_token_depend), db: Session = Depends(get_db)): DepartmentCrud.delete_department(db, department_id.id) return {"msg": "操作成功", "state": 1} @router.post("/set_user_department", summary="用户设置部门") def set_user_department(user_department_info: DepartmentSchemas.UserDepartmentInfo,admin=Depends(admin_auth_token_depend), db: Session = Depends(get_db)): DepartmentCrud.set_user_department(db, user_department_info.user_id, user_department_info.department_id_list) return {"msg": "操作成功", "state": 1}