""" {{ table.comment }} Router - 对齐JAVA Controller @author: {{ author }} @date: {{ date }} """ from datetime import datetime from fastapi import APIRouter, Depends, HTTPException, Header from sqlalchemy.orm import Session from typing import List, Optional from app.database import get_db from app.schemas.{{ table.name_lower }} import {{ table.entity }} from app.services.{{ table.name_lower }}_service import {{ table.entity }}Service from app.utils.result import Result, to_camel_dict router = APIRouter() @router.post("/page", summary="{{ table.comment }}分页列表查询") async def page( param: {{ table.entity }}, token: str = Header(..., description="认证token"), version: str = Header("1.0", description="版本号"), db: Session = Depends(get_db) ): """{{ table.comment }}分页列表查询 - 对齐JAVA: @PostMapping("/page")""" if not token: return Result.error("token不能为空") page_num = param.pageNum if param.pageNum else 1 page_size = param.pageSize if param.pageSize else 10 items, total = {{ table.entity }}Service.get_list( db=db, param=param, page=page_num, page_size=page_size ) page_data = { "records": [to_camel_dict(item) for item in items], "total": total, "size": page_size, "current": page_num, "pages": (total + page_size - 1) // page_size } return Result.OK(page_data) @router.post("/info", summary="{{ table.comment }}根据条件查询") async def info( param: {{ table.entity }}, token: str = Header(..., description="认证token"), version: str = Header("1.0", description="版本号"), db: Session = Depends(get_db) ): """{{ table.comment }}根据条件查询 - 对齐JAVA: @PostMapping("/info")""" if not token: return Result.error("token不能为空") data = {{ table.entity }}Service.info(db=db, param=param) return Result.OK(to_camel_dict(data)) @router.post("/add", summary="{{ table.comment }}新增") async def add( param: {{ table.entity }}, token: str = Header(..., description="认证token"), version: str = Header("1.0", description="版本号"), db: Session = Depends(get_db) ): """{{ table.comment }}新增 - 对齐JAVA: @PostMapping("/add")""" if not token: return Result.error("token不能为空") {{ table.entity }}Service.add(db=db, param=param) return Result.OK() @router.post("/modify", summary="{{ table.comment }}修改") async def modify( param: {{ table.entity }}, token: str = Header(..., description="认证token"), version: str = Header("1.0", description="版本号"), db: Session = Depends(get_db) ): """{{ table.comment }}修改 - 对齐JAVA: @PostMapping("/modify")""" if not token: return Result.error("token不能为空") info = {{ table.entity }}Service.get_by_id(db=db, id=param.id) if info is None: return Result.error(f"[{param.id}]记录不存在") {{ table.entity }}Service.modify(db=db, param=param) return Result.OK() @router.get("/remove/{id}", summary="{{ table.comment }}删除(单个条目)") async def remove( id: int, token: str = Header(..., description="认证token"), version: str = Header("1.0", description="版本号"), db: Session = Depends(get_db) ): """{{ table.comment }}删除(单个条目) - 对齐JAVA: @GetMapping("/remove/{id}")""" {{ table.entity }}Service.remove(db=db, id=id) return Result.OK() @router.post("/removes", summary="{{ table.comment }}删除(多个条目)") async def removes( ids: List[int], token: str = Header(..., description="认证token"), version: str = Header("1.0", description="版本号"), db: Session = Depends(get_db) ): """{{ table.comment }}删除(多个条目) - 对齐JAVA: @PostMapping("/removes")""" {{ table.entity }}Service.removes(db=db, ids=ids) return Result.OK()