feat:新增基金产品列表接口,历史业绩接口,客户注册提交接口,问卷提交接口
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
"""产品路由:列表 + 历史业绩(匿名可访问,业务在 service/product.py)。"""
|
||||
from datetime import date
|
||||
|
||||
from fastapi import APIRouter, Depends, Query
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from config.deps import get_db
|
||||
from service.product import get_history, list_products
|
||||
from utils.response import success
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.get("/products")
|
||||
async def products(
|
||||
page: int = Query(1, ge=1),
|
||||
page_size: int = Query(10, ge=1, le=100),
|
||||
keyword: str | None = Query(None, max_length=64),
|
||||
product_type: str | None = Query(None, max_length=32),
|
||||
risk_level: str | None = Query(None, max_length=8),
|
||||
status: str = Query("在售", max_length=16),
|
||||
sort_by: str = Query("create_time", max_length=32),
|
||||
sort_order: str = Query("desc", max_length=4),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
data = await list_products(
|
||||
db,
|
||||
page=page,
|
||||
page_size=page_size,
|
||||
keyword=keyword,
|
||||
product_type=product_type,
|
||||
risk_level=risk_level,
|
||||
status=status,
|
||||
sort_by=sort_by,
|
||||
sort_order=sort_order,
|
||||
)
|
||||
return success(data)
|
||||
|
||||
|
||||
@router.get("/products/{product_code}/history")
|
||||
async def history(
|
||||
product_code: str,
|
||||
start_date: date | None = Query(None),
|
||||
end_date: date | None = Query(None),
|
||||
series: str = Query("nav", max_length=16),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
data = await get_history(db, product_code, start_date, end_date, series)
|
||||
return success(data)
|
||||
@@ -0,0 +1,23 @@
|
||||
"""问卷路由:风险测评提交(需登录,业务在 service/questionnaire.py)。"""
|
||||
from fastapi import APIRouter, Depends
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from api.deps import get_current_user
|
||||
from config.deps import get_db
|
||||
from model.sys_user import SysUser
|
||||
from schemas.questionnaire import RiskAssessmentSubmitReq
|
||||
from service.questionnaire import submit_assessment
|
||||
from utils.response import success
|
||||
|
||||
router = APIRouter()
|
||||
|
||||
|
||||
@router.post("/risk-assessment/submit")
|
||||
async def submit(
|
||||
body: RiskAssessmentSubmitReq,
|
||||
user: SysUser = Depends(get_current_user),
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
answers = [a.model_dump() for a in body.answers]
|
||||
data = await submit_assessment(db, user.id, body.questionnaire_id, answers)
|
||||
return success(data)
|
||||
Reference in New Issue
Block a user