Spaces:
Paused
Paused
| from datetime import datetime | |
| from typing import Annotated | |
| from fastapi import Path, Query, Request, Response | |
| from pydantic_validation_decorator import ValidateFields | |
| from sqlalchemy.ext.asyncio import AsyncSession | |
| from common.annotation.log_annotation import Log | |
| from common.aspect.db_seesion import DBSessionDependency | |
| from common.aspect.interface_auth import UserInterfaceAuthDependency | |
| from common.aspect.pre_auth import CurrentUserDependency, PreAuthDependency | |
| from common.enums import BusinessType | |
| from common.router import APIRouterPro | |
| from common.vo import DataResponseModel, DynamicResponseModel, ResponseBaseModel | |
| from module_admin.entity.vo.menu_vo import DeleteMenuModel, MenuModel, MenuQueryModel, MenuTreeModel | |
| from module_admin.entity.vo.role_vo import RoleMenuQueryModel | |
| from module_admin.entity.vo.user_vo import CurrentUserModel | |
| from module_admin.service.menu_service import MenuService | |
| from utils.log_util import logger | |
| from utils.response_util import ResponseUtil | |
| menu_controller = APIRouterPro( | |
| prefix='/system/menu', order_num=5, tags=['系统管理-菜单管理'], dependencies=[PreAuthDependency()] | |
| ) | |
| async def get_system_menu_tree( | |
| request: Request, | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| menu_query_result = await MenuService.get_menu_tree_services(query_db, current_user) | |
| logger.info('获取成功') | |
| return ResponseUtil.success(data=menu_query_result) | |
| async def get_system_role_menu_tree( | |
| request: Request, | |
| role_id: Annotated[int, Path(description='角色ID')], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| role_menu_query_result = await MenuService.get_role_menu_tree_services(query_db, role_id, current_user) | |
| logger.info('获取成功') | |
| return ResponseUtil.success(model_content=role_menu_query_result) | |
| async def get_system_menu_list( | |
| request: Request, | |
| menu_query: Annotated[MenuQueryModel, Query()], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| menu_query_result = await MenuService.get_menu_list_services(query_db, menu_query, current_user) | |
| logger.info('获取成功') | |
| return ResponseUtil.success(data=menu_query_result) | |
| async def add_system_menu( | |
| request: Request, | |
| add_menu: MenuModel, | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| add_menu.create_by = current_user.user.user_name | |
| add_menu.create_time = datetime.now() | |
| add_menu.update_by = current_user.user.user_name | |
| add_menu.update_time = datetime.now() | |
| add_menu_result = await MenuService.add_menu_services(query_db, add_menu) | |
| logger.info(add_menu_result.message) | |
| return ResponseUtil.success(msg=add_menu_result.message) | |
| async def edit_system_menu( | |
| request: Request, | |
| edit_menu: MenuModel, | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| current_user: Annotated[CurrentUserModel, CurrentUserDependency()], | |
| ) -> Response: | |
| edit_menu.update_by = current_user.user.user_name | |
| edit_menu.update_time = datetime.now() | |
| edit_menu_result = await MenuService.edit_menu_services(query_db, edit_menu) | |
| logger.info(edit_menu_result.message) | |
| return ResponseUtil.success(msg=edit_menu_result.message) | |
| async def delete_system_menu( | |
| request: Request, | |
| menu_ids: Annotated[str, Path(description='需要删除的菜单ID')], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| ) -> Response: | |
| delete_menu = DeleteMenuModel(menuIds=menu_ids) | |
| delete_menu_result = await MenuService.delete_menu_services(query_db, delete_menu) | |
| logger.info(delete_menu_result.message) | |
| return ResponseUtil.success(msg=delete_menu_result.message) | |
| async def query_detail_system_menu( | |
| request: Request, | |
| menu_id: Annotated[int, Path(description='菜单ID')], | |
| query_db: Annotated[AsyncSession, DBSessionDependency()], | |
| ) -> Response: | |
| menu_detail_result = await MenuService.menu_detail_services(query_db, menu_id) | |
| logger.info(f'获取menu_id为{menu_id}的信息成功') | |
| return ResponseUtil.success(data=menu_detail_result) | |