ETest-Vue-FastAPI/ruoyi-fastapi-backend/module_admin/system/controller/test_form_controller.py

96 lines
3.1 KiB
Python

"""
测试表单模板表控制层
"""
from fastapi import APIRouter, Depends, Query
from sqlalchemy.ext.asyncio import AsyncSession
from config.database import get_db
from module_admin.system.entity.vo.test_form_vo import (
TestFormModel, TestFormPageModel, DeleteTestFormModel
)
from module_admin.system.service.test_form_service import TestFormService
from module_admin.service.login_service import LoginService
from module_admin.entity.vo.user_vo import CurrentUserModel
from utils.response_util import ResponseUtil
# 路由前缀
router = APIRouter(prefix='/system/test_form', tags=['测试表单模板'])
@router.get('/list')
async def get_test_form_list(
page_num: int = Query(1, ge=1),
page_size: int = Query(10, ge=1, le=100),
name: str = Query(None),
form_type: str = Query(None),
is_active: int = Query(None),
db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""获取表单列表"""
query_obj = TestFormPageModel(
page_num=page_num,
page_size=page_size,
name=name,
form_type=form_type,
is_active=is_active
)
result = await TestFormService.get_test_form_list(db, query_obj, is_page=True)
return ResponseUtil.success(dict_content=result)
@router.get('/list_by_type/{form_type}')
async def get_forms_by_type(
form_type: str,
db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""根据类型获取表单列表(不分页)"""
result = await TestFormService.get_forms_by_type(db, form_type)
return ResponseUtil.success(data=result)
@router.get('/{id}')
async def get_test_form_detail(
id: int,
db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""获取表单详情"""
result = await TestFormService.get_test_form_detail(db, id)
return ResponseUtil.success(data=result)
@router.post('/add')
async def add_test_form(
model: TestFormModel,
db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""新增表单"""
result = await TestFormService.add_test_form(db, model, current_user.user.user_id)
return ResponseUtil.success(msg=result['message'])
@router.put('/edit')
async def update_test_form(
model: TestFormModel,
db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""修改表单"""
result = await TestFormService.update_test_form(db, model, current_user.user.user_id)
return ResponseUtil.success(msg=result['message'])
@router.delete('/delete/{ids}')
async def delete_test_form(
ids: str,
db: AsyncSession = Depends(get_db),
current_user: CurrentUserModel = Depends(LoginService.get_current_user)
):
"""删除表单"""
model = DeleteTestFormModel(ids=ids)
result = await TestFormService.delete_test_form(db, model, current_user.user.user_id)
return ResponseUtil.success(msg=result['message'])