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