You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计用户本年度及本月采购总额并核算对应折扣?

采购数据统计与折扣计算实现方案

实现思路

  • 解析采购记录中的日期字符串,提取年、月信息
  • 按用户ID分组,分别统计目标年度采购总额和目标月度采购总额
  • 根据预设折扣规则,计算每个用户可享受的总折扣

代码实现

# 原始采购数据
purchases = [
    {"id": "123", 'price':16000, 'date': "(2022, 3, 12)"},
    {"id": "123", 'price':4000, 'date': "(2022, 11, 20)"}
]

# 定义要统计的目标年份和目标月份(可根据实际需求调整)
TARGET_YEAR = 2022
TARGET_MONTH = 11

# 初始化用户统计字典,存储每个用户的年度/月度采购总额
user_stats = {}

for purchase in purchases:
    user_id = purchase["id"]
    price = purchase["price"]
    # 解析日期字符串:去除括号后分割为年、月、日
    date_parts = purchase["date"].strip("()").split(",")
    year, month, _ = map(int, date_parts)
    
    # 初始化用户统计数据(首次出现时)
    if user_id not in user_stats:
        user_stats[user_id] = {"annual_total": 0, "monthly_total": 0}
    
    # 累加年度采购总额(仅统计目标年份的订单)
    if year == TARGET_YEAR:
        user_stats[user_id]["annual_total"] += price
        # 累加目标月份的采购总额
        if month == TARGET_MONTH:
            user_stats[user_id]["monthly_total"] += price

# 计算并输出每个用户的折扣信息
for user_id, stats in user_stats.items():
    annual_total = stats["annual_total"]
    monthly_total = stats["monthly_total"]
    total_discount = 0
    
    # 基础折扣:年度总额≥15000享20%折扣
    if annual_total >= 15000:
        total_discount += 20
        # 额外折扣:同时月度总额≥3000再加15%
        if monthly_total >= 3000:
            total_discount += 15
    
    print(f"用户ID: {user_id}")
    print(f"{TARGET_YEAR}年度采购总额: {annual_total} 元")
    print(f"{TARGET_YEAR}年{TARGET_MONTH}月采购总额: {monthly_total} 元")
    print(f"可享受总折扣: {total_discount}%")
    print(f"实际需支付原价的 {100 - total_discount}%")
    print("-" * 20)

代码说明

  • 日期解析:通过字符串处理提取年、月,避免使用eval提升安全性
  • 分组统计:使用字典按用户ID聚合数据,确保每个用户的采购总额准确累加
  • 折扣逻辑:严格遵循规则,先判断年度总额是否达标,再叠加月度额外折扣

运行结果

用户ID: 123
2022年度采购总额: 20000 元
2022年11月采购总额: 4000 元
可享受总折扣: 35%
实际需支付原价的 65%
--------------------

内容的提问来源于stack exchange,提问作者Pani Hardoy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 03:50:13