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:立即更新计算输入参数(不管后续是否成功)
|
# 步骤1:立即更新计算输入参数(不管后续是否成功)
|
||||||
try:
|
try:
|
||||||
await valuation_controller.update(
|
await valuation_controller.update_calc(
|
||||||
valuation_id,
|
valuation_id,
|
||||||
ValuationAssessmentUpdate(
|
ValuationAssessmentUpdate(
|
||||||
calculation_input=input_data,
|
calculation_input=input_data,
|
||||||
@ -212,7 +212,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
|||||||
# api_calc_fields["flow_correction"] = None
|
# api_calc_fields["flow_correction"] = None
|
||||||
|
|
||||||
if api_calc_fields:
|
if api_calc_fields:
|
||||||
await valuation_controller.update(
|
await valuation_controller.update_calc(
|
||||||
valuation_id,
|
valuation_id,
|
||||||
ValuationAssessmentUpdate(**api_calc_fields)
|
ValuationAssessmentUpdate(**api_calc_fields)
|
||||||
)
|
)
|
||||||
@ -225,7 +225,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
|||||||
|
|
||||||
# 步骤2:更新计算结果字段(模型估值B、市场估值C、最终估值AB、完整计算结果)
|
# 步骤2:更新计算结果字段(模型估值B、市场估值C、最终估值AB、完整计算结果)
|
||||||
try:
|
try:
|
||||||
await valuation_controller.update(
|
await valuation_controller.update_calc(
|
||||||
valuation_id,
|
valuation_id,
|
||||||
ValuationAssessmentUpdate(
|
ValuationAssessmentUpdate(
|
||||||
model_value_b=calculation_result.get('model_value_b'),
|
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
|
base_pledge_rate_value = "0.5" # 固定值:基础质押率 = 0.5
|
||||||
flow_correction_value = "0.3" # 固定值:流量修正系数 = 0.3
|
flow_correction_value = "0.3" # 固定值:流量修正系数 = 0.3
|
||||||
|
|
||||||
await valuation_controller.update(
|
await valuation_controller.update_calc(
|
||||||
valuation_id,
|
valuation_id,
|
||||||
ValuationAssessmentUpdate(
|
ValuationAssessmentUpdate(
|
||||||
dynamic_pledge_rate=drp_result,
|
dynamic_pledge_rate=drp_result,
|
||||||
@ -309,7 +309,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
|||||||
|
|
||||||
# 步骤4:最后更新状态为成功
|
# 步骤4:最后更新状态为成功
|
||||||
try:
|
try:
|
||||||
result = await valuation_controller.update(
|
result = await valuation_controller.update_calc(
|
||||||
valuation_id,
|
valuation_id,
|
||||||
ValuationAssessmentUpdate(
|
ValuationAssessmentUpdate(
|
||||||
status='success'
|
status='success'
|
||||||
@ -362,7 +362,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
|||||||
fail_update_fields.update(api_calc_fields)
|
fail_update_fields.update(api_calc_fields)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
await valuation_controller.update(
|
await valuation_controller.update_calc(
|
||||||
valuation_id,
|
valuation_id,
|
||||||
ValuationAssessmentUpdate(**fail_update_fields)
|
ValuationAssessmentUpdate(**fail_update_fields)
|
||||||
)
|
)
|
||||||
@ -372,7 +372,7 @@ async def _perform_valuation_calculation(user_id: int, data: UserValuationCreate
|
|||||||
# 如果保存失败,至少更新状态
|
# 如果保存失败,至少更新状态
|
||||||
try:
|
try:
|
||||||
fail_update = ValuationAssessmentUpdate(status='rejected')
|
fail_update = ValuationAssessmentUpdate(status='rejected')
|
||||||
await valuation_controller.update(valuation_id, fail_update)
|
await valuation_controller.update_calc(valuation_id, fail_update)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -127,7 +127,7 @@ class UserValuationController:
|
|||||||
inheritor_ages=valuation.inheritor_ages,
|
inheritor_ages=valuation.inheritor_ages,
|
||||||
inheritor_age_count=valuation.inheritor_age_count,
|
inheritor_age_count=valuation.inheritor_age_count,
|
||||||
inheritor_certificates=valuation.inheritor_certificates,
|
inheritor_certificates=valuation.inheritor_certificates,
|
||||||
heritage_level=valuation.heritage_level,
|
heritage_level=getattr(valuation, "heritage_level", None),
|
||||||
heritage_asset_level=valuation.heritage_asset_level,
|
heritage_asset_level=valuation.heritage_asset_level,
|
||||||
patent_application_no=valuation.patent_application_no,
|
patent_application_no=valuation.patent_application_no,
|
||||||
patent_remaining_years=valuation.patent_remaining_years,
|
patent_remaining_years=valuation.patent_remaining_years,
|
||||||
@ -197,7 +197,7 @@ class UserValuationController:
|
|||||||
inheritor_ages=valuation.inheritor_ages,
|
inheritor_ages=valuation.inheritor_ages,
|
||||||
inheritor_age_count=valuation.inheritor_age_count,
|
inheritor_age_count=valuation.inheritor_age_count,
|
||||||
inheritor_certificates=valuation.inheritor_certificates,
|
inheritor_certificates=valuation.inheritor_certificates,
|
||||||
heritage_level=valuation.heritage_level,
|
heritage_level=getattr(valuation, "heritage_level", None),
|
||||||
heritage_asset_level=valuation.heritage_asset_level,
|
heritage_asset_level=valuation.heritage_asset_level,
|
||||||
patent_application_no=valuation.patent_application_no,
|
patent_application_no=valuation.patent_application_no,
|
||||||
patent_remaining_years=valuation.patent_remaining_years,
|
patent_remaining_years=valuation.patent_remaining_years,
|
||||||
|
|||||||
@ -847,6 +847,17 @@ class ValuationController:
|
|||||||
out = ValuationAssessmentOut.model_validate(valuation)
|
out = ValuationAssessmentOut.model_validate(valuation)
|
||||||
return await self._attach_user_phone(out)
|
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:
|
async def _attach_user_phone(self, out: ValuationAssessmentOut) -> ValuationAssessmentOut:
|
||||||
user = await AppUser.filter(id=out.user_id).first()
|
user = await AppUser.filter(id=out.user_id).first()
|
||||||
out.user_phone = getattr(user, "phone", None) if user else None
|
out.user_phone = getattr(user, "phone", None) if user else None
|
||||||
|
|||||||
@ -193,7 +193,7 @@ class ValuationAssessmentOut(ValuationAssessmentBase):
|
|||||||
status: str = Field(..., description="评估状态")
|
status: str = Field(..., description="评估状态")
|
||||||
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
||||||
created_at: datetime = Field(..., 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="审核时间")
|
audited_at: Optional[datetime] = Field(None, description="审核时间")
|
||||||
is_active: bool = Field(..., description="是否激活")
|
is_active: bool = Field(..., description="是否激活")
|
||||||
|
|
||||||
@ -246,7 +246,7 @@ class UserValuationOut(ValuationAssessmentBase):
|
|||||||
status: str = Field(..., description="评估状态")
|
status: str = Field(..., description="评估状态")
|
||||||
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
||||||
created_at: datetime = Field(..., 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="是否激活")
|
is_active: Optional[bool] = Field(None, description="是否激活")
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
@ -290,7 +290,7 @@ class UserValuationDetail(ValuationAssessmentBase):
|
|||||||
status: str = Field(..., description="评估状态")
|
status: str = Field(..., description="评估状态")
|
||||||
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
admin_notes: Optional[str] = Field(None, description="管理员备注")
|
||||||
created_at: datetime = Field(..., description="创建时间")
|
created_at: datetime = Field(..., description="创建时间")
|
||||||
updated_at: datetime = Field(..., description="更新时间")
|
updated_at: Optional[datetime] = Field(None, description="更新时间")
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
from_attributes = True
|
from_attributes = True
|
||||||
@ -422,7 +422,7 @@ class ValuationCalculationStepOut(ValuationCalculationStepBase):
|
|||||||
id: int = Field(..., description="主键ID")
|
id: int = Field(..., description="主键ID")
|
||||||
valuation_id: int = Field(..., description="关联的估值评估ID")
|
valuation_id: int = Field(..., description="关联的估值评估ID")
|
||||||
created_at: datetime = Field(..., description="创建时间")
|
created_at: datetime = Field(..., description="创建时间")
|
||||||
updated_at: datetime = Field(..., description="更新时间")
|
updated_at: Optional[datetime] = Field(None, description="更新时间")
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
from_attributes = True
|
from_attributes = True
|
||||||
|
|||||||
BIN
web1/dist.zip
Normal file
BIN
web1/dist.zip
Normal file
Binary file not shown.
4
估值字段.txt
4
估值字段.txt
@ -37,8 +37,8 @@
|
|||||||
|
|
||||||
|
|
||||||
export DOCKER_DEFAULT_PLATFORM=linux/amd64
|
export DOCKER_DEFAULT_PLATFORM=linux/amd64
|
||||||
docker build -t zfc931912343/guzhi-fastapi-admin:v2.6 .
|
docker build -t zfc931912343/guzhi-fastapi-admin:v2.7 .
|
||||||
docker push zfc931912343/guzhi-fastapi-admin:v2.6
|
docker push zfc931912343/guzhi-fastapi-admin:v2.7
|
||||||
|
|
||||||
|
|
||||||
# 运行容器
|
# 运行容器
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user