feat:新增接口

This commit is contained in:
2026-09-11 11:05:52 +08:00
parent 2004b8fcf4
commit 78e326db59
18 changed files with 766 additions and 0 deletions
+31
View File
@@ -0,0 +1,31 @@
"""资金账户路由:余额查询、余额加减(业务在 service/account.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.account import AdjustReq
from service import account as account_service
from utils.response import success
router = APIRouter()
@router.get("/account/balance", summary="查询当前用户余额")
async def balance(
user: SysUser = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
result = await account_service.get_balance(db, user)
return success(result.model_dump(mode="json"))
@router.post("/account/adjust", summary="调整余额(add=充值 / sub=提现)")
async def adjust(
req: AdjustReq,
user: SysUser = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
result = await account_service.adjust_balance(db, user, req.direction, req.amount)
return success(result.model_dump(mode="json"))
+20
View File
@@ -0,0 +1,20 @@
"""持仓路由:查询当前用户持仓(业务在 service/holdings.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 service import holdings as holdings_service
from utils.response import success
router = APIRouter()
@router.get("/holdings", summary="查询当前用户持仓(持有中)")
async def list_holdings(
user: SysUser = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
result = await holdings_service.get_holdings(db, user)
return success([h.model_dump(mode="json") for h in result])
+23
View File
@@ -0,0 +1,23 @@
"""申购路由:申购基金产品(业务在 service/purchase.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.purchase import PurchaseReq
from service import purchase as purchase_service
from utils.response import success
router = APIRouter()
@router.post("/purchase", summary="申购基金产品")
async def purchase(
req: PurchaseReq,
user: SysUser = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
result = await purchase_service.purchase(db, user, req.product_id, req.amount)
return success(result.model_dump(mode="json"))
+22
View File
@@ -0,0 +1,22 @@
"""赎回路由:赎回基金产品(业务在 service/redeem.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.redeem import RedeemReq
from service import redeem as redeem_service
from utils.response import success
router = APIRouter()
@router.post("/redeem", summary="赎回基金产品")
async def redeem(
req: RedeemReq,
user: SysUser = Depends(get_current_user),
db: AsyncSession = Depends(get_db),
):
result = await redeem_service.redeem(db, user, req.product_id, req.shares)
return success(result.model_dump(mode="json"))