zhaoqingang
2025-04-11 afc68af3a67b2f936429feb3a68c1f09e03ce930
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
from fastapi import APIRouter, Depends
from app.api import Response, pwd_context, get_current_user
from app.models import MenuInfo, MenuStatus
from app.models.base_model import get_db
from app.models.user_model import UserModel
from app.service.resource import get_resource_tree, get_resource_info, delete_resource_info, create_menu, \
    edit_resource_data, edit_resource_status
 
menu_router = APIRouter()
 
 
@menu_router.get("/tree_select", response_model=Response)
async def resource_tree_select(current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    return Response(code=200, msg="", data=await get_resource_tree(db))
 
@menu_router.get("/{menuId}", response_model=Response)
async def resource_info(menuId, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
 
    return Response(code=200, msg="", data=await get_resource_info(db, menuId))
 
 
@menu_router.delete("/{menuId}", response_model=Response)
async def delete_resource(menuId, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    msg = await delete_resource_info(db, menuId)
    if msg:
        return Response(code=400, msg=f"{msg}", data={})
    return Response(code=200, msg="menu delete successfully", data={})
 
 
 
@menu_router.post("/add_menu", response_model=Response)
async def resource_add_menu(menu: MenuInfo, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    if not menu.menuName:
        return Response(code=400, msg="The menuName cannot be empty!")
    if menu.status not in ["0", "1"]:
        return Response(code=400, msg="The status cannot be {}!".format(menu.status))
    is_create = await create_menu(db, menu.menuName, menu.component, menu.path, menu.orderNum, menu.perms, menu.menuType, menu.description, menu.parentId, menu.status,menu.icon)
    if not is_create:
        return Response(code=500, msg="menu create failure", data={})
    return Response(code=200, msg="menu create successfully", data={})
 
 
@menu_router.put("/edit_menu", response_model=Response)
async def resource_edit_menu(menu: MenuInfo, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    if not menu.menuName:
        return Response(code=400, msg="The menuName cannot be empty!")
    if menu.status not in ["0", "1"]:
        return Response(code=400, msg="The status cannot be {}!".format(menu.status))
    is_create = await edit_resource_data(db, menu.menuId, menu.menuName, menu.component, menu.path, menu.orderNum, menu.perms, menu.menuType, menu.description, menu.parentId, menu.status,menu.icon)
    if not is_create:
        return Response(code=500, msg="menu edit failure", data={})
    return Response(code=200, msg="menu edit successfully", data={})
 
 
@menu_router.put("/status", response_model=Response)
async def resource_edit_status(menu: MenuStatus, current_user: UserModel = Depends(get_current_user), db=Depends(get_db)):
    if menu.status not in ["0", "1"]:
        return Response(code=400, msg="The status cannot be {}!".format(menu.status))
    # is_create = await edit_resource_status(db, menu.menuId, menu.status)
    msg = await edit_resource_status(db, menu.menuId, str(menu.status))
    if msg:
        return Response(code=400, msg=f"{msg}", data={})
    return Response(code=200, msg="menu status update successfully", data={})