From 1750f17f41fe17c2dc678704fa1077f1cec9a73c Mon Sep 17 00:00:00 2001 From: iven Date: Wed, 3 Jun 2026 00:58:58 +0800 Subject: [PATCH] =?UTF-8?q?fix(diary):=20=E4=BF=AE=E5=A4=8D=20class=5Fserv?= =?UTF-8?q?ice=20unwrap()=20=E2=80=94=20=E6=94=B9=E4=B8=BA=E4=BB=8E=20Mode?= =?UTF-8?q?l=20=E5=AE=89=E5=85=A8=E5=8F=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - join_class 中 member_count.unwrap() 和 version.unwrap() 替换为 在 Model → ActiveModel 转换前直接读取 model 字段值 - 消除潜在的 panic 风险,保持代码可读性 审计 ID: B-01 --- crates/erp-diary/src/service/class_service.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/crates/erp-diary/src/service/class_service.rs b/crates/erp-diary/src/service/class_service.rs index aedd09f..a198758 100644 --- a/crates/erp-diary/src/service/class_service.rs +++ b/crates/erp-diary/src/service/class_service.rs @@ -193,11 +193,12 @@ impl ClassService { member_model.insert(db).await?; // 6. 更新 member_count + let current_count = class_model.member_count; + let current_version = class_model.version; let mut active_class: school_class::ActiveModel = class_model.into(); - let new_count = active_class.member_count.unwrap() + 1; - active_class.member_count = Set(new_count); + active_class.member_count = Set(current_count + 1); active_class.updated_at = Set(now); - active_class.version = Set(active_class.version.unwrap() + 1); + active_class.version = Set(current_version + 1); let updated_class = active_class.update(db).await?; // 7. 成功加入 → 清除错误计数