daily/Router/DailyRouter.py

72 lines
3.4 KiB
Python
Raw Normal View History

2023-02-28 16:28:48 +08:00
from fastapi import APIRouter, Depends, HTTPException
from sqlalchemy.orm import Session
2023-03-01 16:04:43 +08:00
from Schemas.UserSchemas import TokenData
from Utils.AuthUtils import token_data_depend, check_auth
2023-02-28 16:28:48 +08:00
from Models.DailyModel import Daily
from Utils.CrudUtils import auto_create_crud
2023-03-01 16:04:43 +08:00
import json
from Schemas import DailySchemas
from Crud import DailyCrud
from Utils.SqlAlchemyUtils import get_db
2023-02-28 16:28:48 +08:00
router = APIRouter(
tags=["日报"],
prefix="/api/daily/daily",
dependencies=[Depends(token_data_depend)]
)
2023-03-01 16:04:43 +08:00
# crud = auto_create_crud(Daily, 'daily', "日报", auto_create_keys=['create_time', 'update_time', 'id'],
# array_keys=['department', 'post'])
# crud.mount(router)
2023-03-02 15:19:14 +08:00
@router.post("/daily_get", response_model=DailySchemas.DailyGetRes, summary="获取日报")
2023-03-01 16:04:43 +08:00
def daily_get(req: DailySchemas.DailyGetReq, db: Session = Depends(get_db),
token_data: TokenData = Depends(token_data_depend)):
2023-03-03 14:14:00 +08:00
return DailySchemas.DailyGetRes(**DailyCrud.daily_get(db, req.id).to_dict())
2023-03-01 16:04:43 +08:00
2023-03-02 15:19:14 +08:00
@router.post("/daily_add", response_model=DailySchemas.DailyAddRes, summary="添加日报")
2023-03-01 16:04:43 +08:00
def daily_add(req: DailySchemas.DailyAddReq, db: Session = Depends(get_db),
token_data: TokenData = Depends(token_data_depend)):
2023-03-02 15:19:14 +08:00
if req.fill_user != token_data.openid:
raise HTTPException(detail="填报人与id不符", status_code=305)
2023-03-01 16:04:43 +08:00
# 本部门填报权限
2023-03-02 16:24:35 +08:00
print(token_data.department,token_data,"token_data.departmentxx")
2023-03-02 15:19:14 +08:00
if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
2023-03-01 16:04:43 +08:00
raise HTTPException(detail="没有本部门填报权限", status_code=305)
2023-03-02 15:19:14 +08:00
new_daily=DailyCrud.daily_add(db, req.dict())
return DailySchemas.DailyAddRes(**new_daily.to_dict())
2023-03-01 16:04:43 +08:00
2023-03-02 15:19:14 +08:00
@router.post("/daily_change", response_model=DailySchemas.DailyChangeRes, summary="修改日报")
2023-03-01 16:04:43 +08:00
def daily_change(req: DailySchemas.DailyChangeReq, db: Session = Depends(get_db),
token_data: TokenData = Depends(token_data_depend)):
# 本部门填报权限
2023-03-02 15:19:14 +08:00
if str(req.department) not in token_data.department and not check_auth(token_data.auth_data, ['7']):
2023-03-01 16:04:43 +08:00
raise HTTPException(detail="没有本部门填报权限", status_code=305)
return DailyCrud.daily_change(db, req.id, req.dict())
2023-03-02 15:19:14 +08:00
@router.post("/daily_query", response_model=DailySchemas.DailyQueryRes, summary="查询日报")
def daily_query(req: DailySchemas.DailyQuery, db: Session = Depends(get_db),
token_data: TokenData = Depends(token_data_depend)):
2023-03-03 16:35:35 +08:00
print(req,"req")
2023-03-01 16:04:43 +08:00
if not req.department and not check_auth(token_data.auth_data, [2]):
raise HTTPException(detail="无所有部门动态查看权限", status_code=305)
else:
2023-03-03 10:01:21 +08:00
same_department = set([req.department]) < set([int(item) for item in token_data.department.split(',')])
2023-03-01 16:04:43 +08:00
if same_department and not check_auth(token_data.auth_data, [3]):
raise HTTPException(detail="没有本部门动态查看权限", status_code=305)
count, items = DailyCrud.daily_query(db, req)
items = [DailySchemas.DailyInfo(**item.to_dict()) for item in items]
return DailySchemas.DailyQueryRes(count=count, items=items)
2023-03-02 15:19:14 +08:00
@router.post("/daily_delete", response_model=DailySchemas.DailyDeleteRes, summary="删除日报")
2023-03-01 16:04:43 +08:00
def daily_delete(req: DailySchemas.DailyDeleteReq):
DailyCrud.daily_delete(req.id)
return DailySchemas.DailyDeleteRes(msg="删除成功", state=1)