""" 测试表单模板表控制层 """ 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) ): """获取表单列表""" # 直接使用字典传递参数,避免 Pydantic alias 问题 query_obj = { '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'])