from fastapi import APIRouter, Request from core.constant import PermissionName from core.decorators import Authorize from domain.dtos import SysDictDataUpdateDto, PageDto from domain.services import SysDictService, get_dict_service diict_router = APIRouter(prefix="/dict", tags=["系统字典管理"]) @diict_router.post("/type/page", summary="查询字典") @Authorize(PermissionName.SYS_DICT_QUERY) async def get_dict_type_page( request: Request, dict_service: SysDictService = get_dict_service(), ): page_dict = await request.json() page_dto = PageDto(**page_dict) dicts = await dict_service.get_page_list(page_dto) return dicts @diict_router.post("/data/page", summary="查询字典数据") @Authorize(PermissionName.SYS_DICT_QUERY) async def get_dict_data_page( request: Request, dict_service: SysDictService = get_dict_service(), ): page_dict = await request.json() page_dto = PageDto(**page_dict) dicts = await dict_service.get_dict_data_page(page_dto) return dicts @diict_router.post("/data/all", summary="查询所有字典数据") @Authorize(PermissionName.SYS_DICT_QUERY) async def get_dict_datas_page( _: Request, dict_service: SysDictService = get_dict_service(), ): dicts = await dict_service.get_all_dict_data() return dicts @diict_router.post("/data/update", summary="更新字典数据") @Authorize(PermissionName.SYS_DICT_UPDATE) async def update_dict_data( request: Request, dict_service: SysDictService = get_dict_service(), ): dict_data = await request.json() dict_data_dto = SysDictDataUpdateDto(**dict_data) await dict_service.update_dict_data(dict_data_dto)