feat(估值计算): 添加价格波动区间最高价、最低价和中位数计算
实现从price_fluctuation字段提取数据并计算三个关键数值 当数据转换失败时记录警告日志但不中断程序
This commit is contained in:
parent
2e20d36964
commit
a31657f91b
@ -1,4 +1,5 @@
|
||||
from random import random
|
||||
import statistics
|
||||
|
||||
from datetime import datetime
|
||||
from fastapi import APIRouter, Depends, HTTPException, status, BackgroundTasks
|
||||
@ -476,7 +477,25 @@ async def _extract_calculation_params_c(data: UserValuationCreate) -> Dict[str,
|
||||
# expert_valuations: 专家估值列表(系统配置)
|
||||
transaction_data: Dict = None
|
||||
manual_bids: List[float] = None
|
||||
# TODO 需要客户确认 三个数值
|
||||
|
||||
# 处理月交易额波动区间的三个关键数值:最高价、最低价、中位数
|
||||
# 已实现:从data.price_fluctuation中提取并计算三个数值
|
||||
price_fluctuation_median = None # 中位数
|
||||
price_fluctuation_max = None # 最高价
|
||||
price_fluctuation_min = None # 最低价
|
||||
|
||||
if hasattr(data, 'price_fluctuation') and data.price_fluctuation:
|
||||
try:
|
||||
# 将price_fluctuation转换为浮点数列表
|
||||
price_values = [float(i) for i in data.price_fluctuation if i is not None]
|
||||
if price_values:
|
||||
price_fluctuation_max = max(price_values)
|
||||
price_fluctuation_min = min(price_values)
|
||||
price_fluctuation_median = statistics.median(price_values)
|
||||
except (ValueError, TypeError) as e:
|
||||
# 如果转换失败,记录日志但不中断程序
|
||||
logger.warning(f"价格波动区间数据转换失败: {e}")
|
||||
|
||||
expert_valuations = None
|
||||
# 浏览热度分 - 优化数据获取逻辑
|
||||
daily_browse_volume = 0 # 默认值
|
||||
@ -534,6 +553,10 @@ async def _extract_calculation_params_c(data: UserValuationCreate) -> Dict[str,
|
||||
"weighted_average_price": transaction_data,
|
||||
"manual_bids": manual_bids, # 手动收集的竞价列表 (用户填写)
|
||||
"expert_valuations": expert_valuations, # 专家估值列表 (系统配置)
|
||||
# 月交易额波动区间的三个关键数值
|
||||
"price_fluctuation_max": price_fluctuation_max, # 最高价
|
||||
"price_fluctuation_min": price_fluctuation_min, # 最低价
|
||||
"price_fluctuation_median": price_fluctuation_median, # 中位数
|
||||
# 计算热度系数C2
|
||||
"daily_browse_volume": daily_browse_volume, # 近7日日均浏览量 (API获取)
|
||||
"collection_count": collection_count, # 收藏数
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user