From ba22d178d3f66ca29547b29137060553de8975f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 2 Oct 2026 14:21:01 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=8D=E6=9E=84=EF=BC=9A=E4=BC=9A=E5=91=98?= =?UTF-8?q?=E9=A2=86=E5=9F=9F=E6=A8=A1=E5=9D=97=E5=BD=92=E5=B9=B6=E5=88=B0?= =?UTF-8?q?=20membership=20=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 把 membership_catalog/cycle/limits/upgrade 四个文件移入 src/membership/ 并去掉公共前缀 - 新增 membership/mod.rs 统一声明子模块并按依赖顺序导出 - lib.rs 改为 pub mod membership,删除旧的四个模块声明 - membership/upgrade.rs 内部引用改为同级模块路径 - 无行为变化,cargo test -p module-runtime 全通过 Co-authored-by: Junie --- server-rs/crates/module-runtime/src/lib.rs | 10 ++-------- .../catalog.rs} | 0 .../cycle.rs} | 0 .../limits.rs} | 0 .../module-runtime/src/membership/mod.rs | 20 +++++++++++++++++++ .../upgrade.rs} | 6 +++--- 6 files changed, 25 insertions(+), 11 deletions(-) rename server-rs/crates/module-runtime/src/{membership_catalog.rs => membership/catalog.rs} (100%) rename server-rs/crates/module-runtime/src/{membership_cycle.rs => membership/cycle.rs} (100%) rename server-rs/crates/module-runtime/src/{membership_limits.rs => membership/limits.rs} (100%) create mode 100644 server-rs/crates/module-runtime/src/membership/mod.rs rename server-rs/crates/module-runtime/src/{membership_upgrade.rs => membership/upgrade.rs} (98%) diff --git a/server-rs/crates/module-runtime/src/lib.rs b/server-rs/crates/module-runtime/src/lib.rs index 2cb68ce6b..bcec66d2e 100644 --- a/server-rs/crates/module-runtime/src/lib.rs +++ b/server-rs/crates/module-runtime/src/lib.rs @@ -4,15 +4,8 @@ pub mod civil_calendar; pub use civil_calendar::*; mod llm_billing; pub use llm_billing::*; -mod membership_cycle; -pub use membership_cycle::*; -mod membership_limits; -pub use membership_limits::*; -mod membership_catalog; -pub use membership_catalog::*; -mod membership_upgrade; -pub use membership_upgrade::*; mod application; +pub mod membership; pub use agc_models::*; mod commands; mod domain; @@ -23,6 +16,7 @@ pub use application::*; pub use commands::*; pub use domain::*; pub use errors::*; +pub use membership::*; use shared_kernel::format_rfc3339 as format_shared_rfc3339; use time::OffsetDateTime; diff --git a/server-rs/crates/module-runtime/src/membership_catalog.rs b/server-rs/crates/module-runtime/src/membership/catalog.rs similarity index 100% rename from server-rs/crates/module-runtime/src/membership_catalog.rs rename to server-rs/crates/module-runtime/src/membership/catalog.rs diff --git a/server-rs/crates/module-runtime/src/membership_cycle.rs b/server-rs/crates/module-runtime/src/membership/cycle.rs similarity index 100% rename from server-rs/crates/module-runtime/src/membership_cycle.rs rename to server-rs/crates/module-runtime/src/membership/cycle.rs diff --git a/server-rs/crates/module-runtime/src/membership_limits.rs b/server-rs/crates/module-runtime/src/membership/limits.rs similarity index 100% rename from server-rs/crates/module-runtime/src/membership_limits.rs rename to server-rs/crates/module-runtime/src/membership/limits.rs diff --git a/server-rs/crates/module-runtime/src/membership/mod.rs b/server-rs/crates/module-runtime/src/membership/mod.rs new file mode 100644 index 000000000..5edfeeb37 --- /dev/null +++ b/server-rs/crates/module-runtime/src/membership/mod.rs @@ -0,0 +1,20 @@ +//! 会员计费领域层(纯函数,无 IO)。 +//! +//! 只放会员侧的规则计算:档位目录与解析、自然月账期推进、并发上限哨兵与补差升级报价。 +//! SpacetimeDB 写入与事务编排留在 `spacetime-module`,HTTP 契约留在 `api-server`。 +//! +//! 子模块按依赖顺序排列: +//! - [`catalog`]:档位枚举 → 可下单套餐(价格 / 每期泥点 / 模型权限 / 并发)。 +//! - [`cycle`]:北京时间自然月账期(1/31 → 2/28 → 3/31,每期从原始锚点重算)。 +//! - [`limits`]:并发上限哨兵,`>= 128` 视为「不设上限」。 +//! - [`upgrade`]:补差升级报价与允许操作矩阵。 + +mod catalog; +mod cycle; +mod limits; +mod upgrade; + +pub use catalog::*; +pub use cycle::*; +pub use limits::*; +pub use upgrade::*; diff --git a/server-rs/crates/module-runtime/src/membership_upgrade.rs b/server-rs/crates/module-runtime/src/membership/upgrade.rs similarity index 98% rename from server-rs/crates/module-runtime/src/membership_upgrade.rs rename to server-rs/crates/module-runtime/src/membership/upgrade.rs index 029f7274f..3f5661eba 100644 --- a/server-rs/crates/module-runtime/src/membership_upgrade.rs +++ b/server-rs/crates/module-runtime/src/membership/upgrade.rs @@ -15,8 +15,8 @@ use serde::{Deserialize, Serialize}; -use crate::membership_catalog::resolve_runtime_profile_membership_plan_snapshot; -use crate::membership_cycle::membership_cycle_remaining_micros; +use super::catalog::resolve_runtime_profile_membership_plan_snapshot; +use super::cycle::membership_cycle_remaining_micros; use crate::{RuntimeProfileMembershipCycleKind, RuntimeProfileMembershipPlan}; /// 比例分母:百万分之一。 @@ -194,7 +194,7 @@ fn ceil_div(numerator: u128, denominator: u128) -> u64 { #[cfg(test)] mod tests { use super::*; - use crate::membership_cycle::beijing_local_micros; + use crate::membership::cycle::beijing_local_micros; const DAY_MICROS: i64 = 86_400_000_000;