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
56 lines
2.7 KiB
from typing import List
|
|
|
|
from fastapi import APIRouter, Depends, Request, File, UploadFile, 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 CdplbPageObject, SaveCdplbModel
|
|
from module_admin.service.login_service import LoginService
|
|
from module_admin.service.cdplb_service import CdplbService
|
|
from utils.response_util import ResponseUtil
|
|
from utils.common_util import bytes2file_response
|
|
|
|
cdplbController = APIRouter(prefix='/dataint/cdplb', dependencies=[Depends(LoginService.get_current_user)])
|
|
|
|
|
|
@cdplbController.get("/list")
|
|
async def get_tsmcb_list(request: Request, cdplb_query: CdplbPageObject = Depends(CdplbPageObject.as_query),
|
|
query_db: AsyncSession = Depends(get_db),
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
|
meta_query_result = await CdplbService.get_cdplb_list_services(query_db, cdplb_query, current_user)
|
|
return ResponseUtil.success(data=meta_query_result)
|
|
|
|
|
|
@cdplbController.post("/save")
|
|
async def save_tsmcb(request: Request,
|
|
saveCdplbModel: SaveCdplbModel,
|
|
query_db: AsyncSession = Depends(get_db),
|
|
current_user: CurrentUserModel = Depends(LoginService.get_current_user)):
|
|
result = await CdplbService.save_cdplb(query_db, saveCdplbModel, current_user)
|
|
return ResponseUtil.success(msg=result.message)
|
|
|
|
|
|
@cdplbController.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 CdplbService.delete_cdplb(query_db, array)
|
|
return ResponseUtil.success(msg=result.message)
|
|
|
|
|
|
@cdplbController.post("/importTemplate")
|
|
async def export_system_user_template(request: Request, query_db: AsyncSession = Depends(get_db)):
|
|
meta_import_template_result = await CdplbService.get_import_template_services()
|
|
return ResponseUtil.streaming(data=bytes2file_response(meta_import_template_result))
|
|
|
|
|
|
@cdplbController.post("/upload")
|
|
async def batch_import_cdplb_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 CdplbService.batch_import_cdplb_data(query_db, file, overWrite, current_user)
|
|
return ResponseUtil.success(data=batch_import_result)
|
|
|