fix: computed fields missing in anniversary endpoints + missing account_id validation in installment update

This commit is contained in:
祀梦
2026-05-17 12:00:54 +08:00
parent 3c03866021
commit 5f23b8ef5b
3 changed files with 38 additions and 18 deletions

View File

@@ -390,6 +390,11 @@ def update_installment(installment_id: int, data: DebtInstallmentUpdate, db: Ses
installment = get_or_404(db, DebtInstallment, installment_id, "分期计划")
update_data = data.model_dump(exclude_unset=True)
if "account_id" in update_data:
account = get_or_404(db, FinancialAccount, update_data["account_id"], "账户")
if account.account_type != "debt":
raise HTTPException(status_code=400, detail="分期计划只能关联欠款类型的账户")
for field, value in update_data.items():
setattr(installment, field, value)

View File

@@ -219,10 +219,10 @@ def create_anniversary(data: AnniversaryCreate, db: Session = Depends(get_db)):
db.refresh(db_anniversary)
today = date.today()
next_date, days_until, year_count = compute_next_info(db_anniversary, today)
result = enrich_anniversary(db_anniversary, today)
logger.info(f"创建纪念日成功: id={db_anniversary.id}, title={db_anniversary.title}")
return db_anniversary
return result
except Exception as e:
db.rollback()
logger.error(f"创建纪念日失败: {str(e)}")
@@ -234,7 +234,9 @@ def get_anniversary(anniversary_id: int, db: Session = Depends(get_db)):
"""获取单个纪念日"""
try:
anniversary = get_or_404(db, Anniversary, anniversary_id, "纪念日")
return anniversary
today = date.today()
result = enrich_anniversary(anniversary, today)
return result
except HTTPException:
raise
except Exception as e: