feat:用户画像功能
This commit is contained in:
+5
-5
@@ -17,6 +17,7 @@ from repositories.fin_product import FinProductRepo
|
||||
from repositories.trade_order import TradeOrderRepo
|
||||
from schemas.holdings import HoldingResp
|
||||
from schemas.purchase import PurchaseResp
|
||||
from service.memory.composed_profile import invalidate_composed_profile
|
||||
from service.risk.engine import RiskEngine, summarize
|
||||
from service.risk.settle import settle
|
||||
from utils.exceptions import (
|
||||
@@ -30,11 +31,8 @@ from utils.order_no import gen_order_no
|
||||
_MONEY = Decimal("0.01")
|
||||
_SHARES = Decimal("0.0001")
|
||||
|
||||
# 风险等级 → 序号。兼容两套口径:R1~R5 与 保守~激进(同一映射)。
|
||||
_RISK_RANK = {
|
||||
"R1": 1, "R2": 2, "R3": 3, "R4": 4, "R5": 5,
|
||||
"保守": 1, "稳健": 2, "平衡": 3, "进取": 4, "激进": 5,
|
||||
}
|
||||
# 风险等级 → 序号。客户画像与产品统一 R1~R5 口径(历史中文等级已在数据迁移中转换)。
|
||||
_RISK_RANK = {"R1": 1, "R2": 2, "R3": 3, "R4": 4, "R5": 5}
|
||||
|
||||
|
||||
def _risk_rank(level: str | None) -> int | None:
|
||||
@@ -137,6 +135,8 @@ async def purchase(
|
||||
order.id, status="已确认", confirm_time=now
|
||||
)
|
||||
await db.commit()
|
||||
# 持仓变更后失效最终画像缓存(失败静默,不影响交易结果)
|
||||
await invalidate_composed_profile(user.id)
|
||||
account = await account_repo.get_by_customer_id(user.id)
|
||||
holding = await holdings_repo.get_by_customer_product(user.id, product_id)
|
||||
return PurchaseResp(
|
||||
|
||||
Reference in New Issue
Block a user