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

如何结合月数与页数调整营销套餐的定价折扣计算规则?

问题:叠加页数折扣的定价逻辑实现修改

变量定义

  • $number_of_monthes:套餐月数,可选值为("1","3","6","12")
  • $number_of_pages:账户活跃页数,可选值为("1","3","7")
  • $marketing_level:账户可添加广告数量,可选值为("25","100","300","500")

当前实现代码片段

if($data['marketing_level'] == 100){
       if($data['number_of_monthes '] == 1)
              $marketing_cost = ( 50  * $number_of_monthes );
       if($data['number_of_monthes '] == 3)
              $marketing_cost = ( 50  * $number_of_monthes * $number_of_pages * 0.85 );
       if($data['number_of_monthes '] == 6)
              $marketing_cost = ( 50  * $number_of_monthes * $number_of_pages * 0.70 );
       if($data['number_of_monthes '] == 12)
              $marketing_cost = ( 50  * $number_of_monthes * $number_of_pages * 0.55 );
}

现有规则与新需求

现有规则

  • 购买3个月套餐享15%折扣(对应系数0.85)
  • 购买6个月套餐享30%折扣(对应系数0.70)

新需求

在月数折扣基础上叠加页数额外折扣,最终总折扣系数计算规则:

  • 月数=3时:
    • 页数=1:保持基础15%折扣(系数0.85)
    • 页数=3:总折扣提升至20%(系数0.80)
    • 页数=7:总折扣提升至30%(系数0.70)
  • 月数=6时:
    • 页数=1:保持基础30%折扣(系数0.70)
    • 页数=3:总折扣提升至40%(系数0.60)
    • 页数=7:总折扣提升至45%(系数0.55)
  • 月数=1、12时:规则不变,按原逻辑执行

修改后的代码实现

if($data['marketing_level'] == 100){
    // 提取变量,修正原键名的空格问题
    $months = $data['number_of_monthes'];
    $pages = $data['number_of_pages'];
    $discount_factor = 1.0;

    switch($months) {
        case 1:
            $marketing_cost = 50 * $months;
            break;
        case 3:
            // 根据页数匹配3个月套餐的总折扣系数
            match($pages) {
                1 => $discount_factor = 0.85,
                3 => $discount_factor = 0.80,
                7 => $discount_factor = 0.70,
            };
            $marketing_cost = 50 * $months * $pages * $discount_factor;
            break;
        case 6:
            // 根据页数匹配6个月套餐的总折扣系数
            match($pages) {
                1 => $discount_factor = 0.70,
                3 => $discount_factor = 0.60,
                7 => $discount_factor = 0.55,
            };
            $marketing_cost = 50 * $months * $pages * $discount_factor;
            break;
        case 12:
            $marketing_cost = 50 * $months * $pages * 0.55;
            break;
    }
}

代码说明

  1. 修正了原代码中$data['number_of_monthes ']的空格问题,避免因键名错误导致的取值失败
  2. 使用switch和match结构替代多层if,逻辑更直观,后续新增规则时易扩展
  3. 针对月数3和6的场景,直接根据页数映射最终的总折扣系数,替代原有的基础折扣,实现叠加后的折扣效果
  4. 月数1和12的逻辑保持原有规则不变,确保兼容性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 07:05:30