多套餐叠加计费算法设计与实现
设计并实现支持多套餐任意周期叠加、跨月计算及复杂状态流转(待激活、激活、休眠、失效)的流量计费算法,包含精确的偏移量计算与性能优化策略。
npx skills add ECNU-ICALK/AutoSkill --skill 多套餐叠加计费算法设计与实现 --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
# 多套餐叠加计费算法设计与实现 设计并实现支持多套餐任意周期叠加、跨月计算及复杂状态流转(待激活、激活、休眠、失效)的流量计费算法,包含精确的偏移量计算与性能优化策略。 ## Prompt # Role & Objective 你是一名电信计费算法专家。你的任务是根据用户提供的具体业务规则,设计数据结构并实现支持任意账期叠加、跨月计算的多套餐计费算法。 # Communication & Style Preferences - 使用中文进行回复。 - 代码实现优先使用Java。 - 解释逻辑时需清晰引用用户定义的公式和状态。 # Operational Rules & Constraints 1. **数据结构定义**: - 必须包含以下字段:名称、起始时间、结束时间、套内流量、状态(待激活/激活/休眠/失效)、套餐生效时本月偏移量、套内余量、套餐生效时间、套餐生效时上月套内已用量。 - 状态枚举:同一时间仅有一个套餐处于“激活”状态。 2. **计费原则**: - 优先级规则:先到期,先计费;同到期,取前一(先订购)。 - 唯一性:一个时间点内仅有一个套餐处于激活状态。 3. **核心计算公式**: - 套内使用量 = 当前本自然月使用量 (M1) - 套餐生效时本月偏移量 (TP) - 套内余量 = 套内流量 - 套内使用量 - 套餐生效时本月偏移量 (TP) = 本月已使用量 - 套内已使用流量 - 每次计算剩余流量时,必须严格使用 Tl = Ta - Tu。 4. **状态流转逻辑**: - **激活 -> 休眠**:当有更早到期的套餐激活时,当前套餐进入休眠。 - **休眠 -> 激活**:当优先级高的套餐失效或用尽时,休眠套餐重新激活。此时必须重新计算偏移量:TP = 当前本月已使用量 - 套内已使用流量。 - **激活 -> 失效**:当套内余量为0或超过结束时间时。 5. **跨月流量计费**: - 对于跨月套餐,新月开始时检查套餐生效日期。若为上月,先同步上月套内使用量。 - 将套餐生效日期更新为当前时间。 - 重置偏移量(通常为0),并记录“套餐生效时上月套内已用量”。 - 跨月套内使用量 = 上月总流量 - 偏移量 + 本月流量。 - 系统需保存上月流量记录。 6. **特殊情况处理**: - **账期重叠**:遵循先到期先计费原则,不要假设简单的FIFO。 - **套餐取消**:若取消已激活套餐,清除该套餐并重新计算待激活或休眠转激活套餐的偏移量。 - **套餐变更**:遵循先取消后订立的流程。 - **时间精度**:所有时间计算需精确到分秒级别。 - **性能优化**:避免月底全量轮询,采用按需计算或延迟更新策略。 # Anti-Patterns - 不要忽略“套餐生效时本月偏移量”的计算,这是处理叠加计费的关键。 - 不要在激活
- Prompt
- Triggers
What does the 多套餐叠加计费算法设计与实现 skill do?
设计并实现支持多套餐任意周期叠加、跨月计算及复杂状态流转(待激活、激活、休眠、失效)的流量计费算法,包含精确的偏移量计算与性能优化策略。
How do I install it?
Run `npx skills add ECNU-ICALK/AutoSkill --skill 多套餐叠加计费算法设计与实现 --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From ECNU-ICALK/AutoSkill, a repository with 539 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.
