feat(valuation): 添加update_calc方法并更新相关字段类型
为ValuationController添加update_calc方法用于计算更新 将updated_at等字段改为Optional类型 修复heritage_level字段获取方式 更新docker镜像版本至v2.7
This commit is contained in:
parent
01ed8fb25b
commit
b10c357a56
@ -166,7 +166,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
|
||||
# 步骤1:立即更新计算输入参数(不管后续是否成功)
|
||||
try:
|
||||
await valuation_controller.update(
|
||||
await valuation_controller.update_calc(
|
||||
valuation_id,
|
||||
ValuationAssessmentUpdate(
|
||||
calculation_input=input_data,
|
||||
@ -212,7 +212,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
# api_calc_fields["flow_correction"] = None
|
||||
|
||||
if api_calc_fields:
|
||||
await valuation_controller.update(
|
||||
await valuation_controller.update_calc(
|
||||
valuation_id,
|
||||
ValuationAssessmentUpdate(**api_calc_fields)
|
||||
)
|
||||
@ -225,7 +225,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
|
||||
# 步骤2:更新计算结果字段(模型估值B、市场估值C、最终估值AB、完整计算结果)
|
||||
try:
|
||||
await valuation_controller.update(
|
||||
await valuation_controller.update_calc(
|
||||
valuation_id,
|
||||
ValuationAssessmentUpdate(
|
||||
model_value_b=calculation_result.get('model_value_b'),
|
||||
@ -280,7 +280,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
base_pledge_rate_value = "0.5" # 固定值:基础质押率 = 0.5
|
||||
flow_correction_value = "0.3" # 固定值:流量修正系数 = 0.3
|
||||
|
||||
await valuation_controller.update(
|
||||
await valuation_controller.update_calc(
|
||||
valuation_id,
|
||||
ValuationAssessmentUpdate(
|
||||
dynamic_pledge_rate=drp_result,
|
||||
@ -309,7 +309,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
|
||||
# 步骤4:最后更新状态为成功
|
||||
try:
|
||||
result = await valuation_controller.update(
|
||||
result = await valuation_controller.update_calc(
|
||||
valuation_id,
|
||||
ValuationAssessmentUpdate(
|
||||
status='success'
|
||||
@ -362,7 +362,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
fail_update_fields.update(api_calc_fields)
|
||||
|
||||
try:
|
||||
await valuation_controller.update(
|
||||
await valuation_controller.update_calc(
|
||||
valuation_id,
|
||||
ValuationAssessmentUpdate(**fail_update_fields)
|
||||
)
|
||||
@ -372,7 +372,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
||||
# 如果保存失败,至少更新状态
|
||||
try:
|
||||
fail_update = ValuationAssessmentUpdate(status='rejected')
|
||||
await valuation_controller.update(valuation_id, fail_update)
|
||||
await valuation_controller.update_calc(valuation_id, fail_update)
|
||||
except Exception:
|
||||
pass
|
||||
else:
|
||||
|
||||
@ -127,7 +127,7 @@ class UserValuationController:
|
||||
inheritor_ages=valuation.inheritor_ages,
|
||||
inheritor_age_count=valuation.inheritor_age_count,
|
||||
inheritor_certificates=valuation.inheritor_certificates,
|
||||
heritage_level=valuation.heritage_level,
|
||||
heritage_level=getattr(valuation, "heritage_level", None),
|
||||
heritage_asset_level=valuation.heritage_asset_level,
|
||||
patent_application_no=valuation.patent_application_no,
|
||||
patent_remaining_years=valuation.patent_remaining_years,
|
||||
@ -197,7 +197,7 @@ class UserValuationController:
|
||||
inheritor_ages=valuation.inheritor_ages,
|
||||
inheritor_age_count=valuation.inheritor_age_count,
|
||||
inheritor_certificates=valuation.inheritor_certificates,
|
||||
heritage_level=valuation.heritage_level,
|
||||
heritage_level=getattr(valuation, "heritage_level", None),
|
||||
heritage_asset_level=valuation.heritage_asset_level,
|
||||
patent_application_no=valuation.patent_application_no,
|
||||
patent_remaining_years=valuation.patent_remaining_years,
|
||||
|
||||
@ -847,6 +847,17 @@ class ValuationController:
|
||||
out = ValuationAssessmentOut.model_validate(valuation)
|
||||
return await self._attach_user_phone(out)
|
||||
|
||||
async def update_calc(self, valuation_id: int, data: ValuationAssessmentUpdate) -> Optional[ValuationAssessmentOut]:
|
||||
valuation = await self.model.filter(id=valuation_id, is_active=True).first()
|
||||
if not valuation:
|
||||
return None
|
||||
update_data = data.model_dump(exclude_unset=True)
|
||||
if update_data:
|
||||
await valuation.update_from_dict(update_data)
|
||||
await valuation.save()
|
||||
out = ValuationAssessmentOut.model_validate(valuation)
|
||||
return await self._attach_user_phone(out)
|
||||
|
||||
async def _attach_user_phone(self, out: ValuationAssessmentOut) -> ValuationAssessmentOut:
|
||||
user = await AppUser.filter(id=out.user_id).first()
|
||||
out.user_phone = getattr(user, "phone", None) if user else None
|
||||
|
||||
@ -193,7 +193,7 @@ class ValuationAssessmentOut(ValuationAssessmentBase):
|
||||
status: str = Field(..., description="评估状态")
|
||||
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
||||
created_at: datetime = Field(..., description="创建时间")
|
||||
updated_at: datetime = Field(..., description="更新时间")
|
||||
updated_at: Optional[datetime] = Field(None, description="更新时间")
|
||||
audited_at: Optional[datetime] = Field(None, description="审核时间")
|
||||
is_active: bool = Field(..., description="是否激活")
|
||||
|
||||
@ -246,7 +246,7 @@ class UserValuationOut(ValuationAssessmentBase):
|
||||
status: str = Field(..., description="评估状态")
|
||||
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
||||
created_at: datetime = Field(..., description="创建时间")
|
||||
updated_at: datetime = Field(..., description="更新时间")
|
||||
updated_at: Optional[datetime] = Field(None, description="更新时间")
|
||||
is_active: Optional[bool] = Field(None, description="是否激活")
|
||||
|
||||
class Config:
|
||||
@ -290,7 +290,7 @@ class UserValuationDetail(ValuationAssessmentBase):
|
||||
status: str = Field(..., description="评估状态")
|
||||
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
||||
created_at: datetime = Field(..., description="创建时间")
|
||||
updated_at: datetime = Field(..., description="更新时间")
|
||||
updated_at: Optional[datetime] = Field(None, description="更新时间")
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
@ -422,7 +422,7 @@ class ValuationCalculationStepOut(ValuationCalculationStepBase):
|
||||
id: int = Field(..., description="主键ID")
|
||||
valuation_id: int = Field(..., description="关联的估值评估ID")
|
||||
created_at: datetime = Field(..., description="创建时间")
|
||||
updated_at: datetime = Field(..., description="更新时间")
|
||||
updated_at: Optional[datetime] = Field(None, description="更新时间")
|
||||
|
||||
class Config:
|
||||
from_attributes = True
|
||||
|
||||
BIN
web1/dist.zip
Normal file
BIN
web1/dist.zip
Normal file
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user