46 lines
1.9 KiB
Python
46 lines
1.9 KiB
Python
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
|
|
from Utils.SqlAlchemyUtils import get_db
|
|
|
|
router = APIRouter(
|
|
tags=["部门操作"],
|
|
prefix="/api/department",
|
|
dependencies=[Depends(admin_auth_token_depend)]
|
|
)
|
|
|
|
|
|
@router.post("/get_department_list", summary="获取部门列表", response_model=DepartmentSchemas.DepartmentInfoList)
|
|
def get_department_list(db: Session = Depends(get_db)):
|
|
department_list = DepartmentCrud.get_department_list(db)
|
|
items = [item.to_dict() for item in department_list]
|
|
department_info_list = DepartmentSchemas.DepartmentInfoList(department_info_list=items)
|
|
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("/change_department", summary="修改部门")
|
|
def change_department(department: DepartmentSchemas.DepartmentInfo, 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, 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, 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}
|