feat:新增接口
This commit is contained in:
+5
-1
@@ -3,7 +3,11 @@
|
||||
"""
|
||||
from fastapi import APIRouter
|
||||
|
||||
from api.routers import auth
|
||||
from api.routers import account, auth, holdings, purchase, redeem
|
||||
|
||||
api_router = APIRouter()
|
||||
api_router.include_router(auth.router, prefix="/api", tags=["认证"])
|
||||
api_router.include_router(account.router, prefix="/api", tags=["资金账户"])
|
||||
api_router.include_router(holdings.router, prefix="/api", tags=["持仓"])
|
||||
api_router.include_router(purchase.router, prefix="/api", tags=["交易"])
|
||||
api_router.include_router(redeem.router, prefix="/api", tags=["交易"])
|
||||
|
||||
@@ -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"))
|
||||
@@ -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])
|
||||
@@ -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"))
|
||||
@@ -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"))
|
||||
Reference in New Issue
Block a user