| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- from typing import Annotated
- from fastapi import APIRouter, Depends, Path, Query
- from fastapi.responses import JSONResponse
- from app.api.v1.module_system.auth.schema import AuthSchema
- from app.common.response import ResponseSchema, SuccessResponse
- from app.core.dependencies import AuthPermission
- from app.core.logger import log
- from app.core.router_class import OperationLogRoute
- from app.plugin.module_payment.expense.institution.schema import InstitutionListOutSchema
- from .service import InstitutionService
- from alipay.aop.api.domain.AlipayEbppInvoiceInstitutionCreateModel import (
- AlipayEbppInvoiceInstitutionCreateModel,
- )
- from alipay.aop.api.response.AlipayEbppInvoiceInstitutionCreateResponse import (
- AlipayEbppInvoiceInstitutionCreateResponse,
- )
- from alipay.aop.api.domain.AlipayEbppInvoiceInstitutionDeleteModel import (
- AlipayEbppInvoiceInstitutionDeleteModel,
- )
- from alipay.aop.api.response.AlipayEbppInvoiceInstitutionDeleteResponse import (
- AlipayEbppInvoiceInstitutionDeleteResponse,
- )
- from alipay.aop.api.domain.AlipayEbppInvoiceInstitutionModifyModel import (
- AlipayEbppInvoiceInstitutionModifyModel,
- )
- from alipay.aop.api.response.AlipayEbppInvoiceInstitutionModifyResponse import (
- AlipayEbppInvoiceInstitutionModifyResponse,
- )
- InstitutionRouter = APIRouter(
- route_class=OperationLogRoute,
- prefix="/institution",
- tags=["费控制度"],
- )
- @InstitutionRouter.post(
- "",
- summary="创建费控制度",
- description="创建费控制度 (alipay.ebpp.invoice.institution.create)",
- # response_model=ResponseSchema[AlipayEbppInvoiceInstitutionCreateResponse],
- )
- async def create_institution_controller(
- data: dict,
- auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:expense:institution:create"]))],
- ) -> JSONResponse:
- """创建费控制度"""
- institution_create_model = AlipayEbppInvoiceInstitutionCreateModel.from_alipay_dict(data)
- result = await InstitutionService.create_institution_service(auth=auth, data=institution_create_model)
- log.info(f"创建费控制度成功: {institution_create_model.institution_name}, institution_id={result.institution_id}")
- return SuccessResponse(data=result, msg="创建费控制度成功")
- @InstitutionRouter.get(
- "",
- summary="查询费控制度列表",
- description="分页查询费控制度列表",
- response_model=ResponseSchema[InstitutionListOutSchema],
- )
- async def list_institution_controller(
- auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:expense:institution:list"]))],
- page_no: Annotated[int, Query(description="页码")] = 1,
- page_size: Annotated[int, Query(description="每页数量")] = 20,
- enterprise_id: Annotated[str | None, Query(description="企业ID")] = None,
- name: Annotated[str | None, Query(description="制度名称")] = None,
- expense_type: Annotated[str | None, Query(description="费用类型")] = None,
- status: Annotated[str | None, Query(description="状态")] = None,
- ) -> JSONResponse:
- """查询费控制度列表"""
- search = {}
- if enterprise_id:
- search["enterprise_id"] = enterprise_id
- if name:
- search["name"] = name
- if expense_type:
- search["expense_type"] = expense_type
- if status:
- search["status"] = status
- result = await InstitutionService.list_service(
- auth=auth, page_no=page_no, page_size=page_size, search=search
- )
- return SuccessResponse(data=result, msg="查询费控制度列表成功")
- @InstitutionRouter.delete(
- "",
- summary="删除费控制度",
- description="删除费控制度 (alipay.ebpp.invoice.institution.delete)",
- # response_model=ResponseSchema[AlipayEbppInvoiceInstitutionDeleteResponse],
- )
- async def delete_institution_controller(
- data: dict,
- auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:expense:institution:delete"]))],
- ) -> JSONResponse:
- """删除费控制度"""
- institution_delete_model = AlipayEbppInvoiceInstitutionDeleteModel(**data)
- result = await InstitutionService.delete_institution_service(auth=auth, data=institution_delete_model)
- log.info(f"删除费控制度成功: institution_id={institution_delete_model.institution_id}, enterprise_id={institution_delete_model.enterprise_id}")
- return SuccessResponse(data=result, msg="删除费控制度成功")
- @InstitutionRouter.post(
- "/modify",
- summary="编辑费控制度",
- description="编辑费控制度 (alipay.ebpp.invoice.institution.modify)",
- # response_model=ResponseSchema[AlipayEbppInvoiceInstitutionModifyResponse],
- )
- async def modify_institution_controller(
- data: dict,
- auth: Annotated[AuthSchema, Depends(AuthPermission(["module_payment:expense:institution:modify"]))],
- ) -> JSONResponse:
- """编辑费控制度"""
- institution_modify_model = AlipayEbppInvoiceInstitutionModifyModel(**data)
- result = await InstitutionService.modify_institution_service(auth=auth, data=institution_modify_model)
- log.info(f"编辑费控制度成功: institution_id={institution_modify_model.institution_id}")
- return SuccessResponse(data=result, msg="编辑费控制度成功")
|