You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

56 lines
2.7 KiB

from typing import List
from fastapi import APIRouter, Depends, Request, UploadFile, File, Query
from sqlalchemy.ext.asyncio import AsyncSession
from config.get_db import get_db
from module_admin.entity.vo.user_vo import CurrentUserModel
from module_admin.entity.vo.dataint_vo import FccbdPageObject, SaveFccbdModel
from module_admin.service.login_service import LoginService
from module_admin.service.fccbd_service import FccbdService
from utils.response_util import ResponseUtil
from utils.common_util import bytes2file_response
fccbdController = APIRouter(prefix='/dataint/fccbd', dependencies=[Depends(LoginService.get_current_user)])
@fccbdController.get("/list")
async def get_tsmcb_list(request: Request, fccbd_query: FccbdPageObject = Depends(FccbdPageObject.as_query),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
meta_query_result = await FccbdService.get_fccbd_list_services(query_db, fccbd_query, current_user)
return ResponseUtil.success(data=meta_query_result)
@fccbdController.post("/save")
async def save_tsmcb(request: Request,
saveFccbdModel: SaveFccbdModel,
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
result = await FccbdService.save_fccbd(query_db, saveFccbdModel, current_user)
return ResponseUtil.success(msg=result.message)
@fccbdController.post("/delete")
async def delete_tsmcb(request: Request,
array: List[str],
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
result = await FccbdService.delete_fccbd(query_db, array)
return ResponseUtil.success(msg=result.message)
@fccbdController.post("/importTemplate")
async def export_system_user_template(request: Request, query_db: AsyncSession = Depends(get_db)):
meta_import_template_result = await FccbdService.get_import_template_services()
return ResponseUtil.streaming(data=bytes2file_response(meta_import_template_result))
@fccbdController.post("/upload")
async def batch_import_fccbd_data(
request: Request,
file: UploadFile = File(...),
overWrite: bool = Query(alias='overWrite'),
query_db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
batch_import_result = await FccbdService.batch_import_fccbd_data(query_db, file, overWrite, current_user)
return ResponseUtil.success(data=batch_import_result)