| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace common\logic\order\marketing;
- use common\helpers\ArrayHelper;
- use Yii;
- /**
- * 邮费满减
- */
- class FreightFullReduceMarketing extends BaseMarketing{
- public function execute( $form){}
- /**
- * @notes: 邮费满减计算,暂时不计算多商户
- * @param $item
- * @param $form
- * @return mixed
- * @author: lun
- * @Time: 2022/12/14 13:56
- */
- public static function compute($item, &$form)
- {
- $reduce = 0;// 减免M金额
- $first_goods_id = key($item['goods']);
- if (!empty($form['sku'][$first_goods_id]['goods']['goods_source'])) return $item;// 供应链商品直接跳过
- $shipping_fee = $item['mch_order_info']['shipping_money'] ?? 0;
- if ($shipping_fee && empty($item['mch_order_info']['mch_id'])) {
- $config = Yii::$app->services->setting->mall->get($form['mall_id'], 'freight');
- if (!empty($config['is_open'])) {
- $arr = json_decode($config['full_reduce'], true);
- $arr = ArrayHelper::arraySort($arr, 'full', 'desc');
- foreach ($arr as $val) {
- if ($val['full'] <= $shipping_fee) {
- $reduce = $val['reduce'];
- break;
- }
- }
- if ($reduce > $shipping_fee) $reduce = $shipping_fee;
- }
- if ($reduce) {
- $item['mch_order_info']['reduce_shipping_money'] = $reduce;
- $item['mch_order_info']['pay_money'] = $item['mch_order_info']['pay_money'] - $reduce;
- $prev_freight_reduce = $form->marketing['deduct']['freight_reduce']['money'] ?? 0;
- $form->marketing['deduct']['freight_reduce'] = ['name' => "满邮减免", 'money' => $reduce + $prev_freight_reduce];
- // $form['total_pay_money'] = round($form['total_pay_money'] - $reduce,2);// 计算总额
- }
- }
- return $item;
- }
- }
|