| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- <?php
- namespace addons\Sudoku\common\logic\order;
- use common\logic\order\marketing\BaseMarketing;
- use common\logic\order\marketing\FreeShippingMarketing;
- use common\traits\ErrorTrait;
- use Exception;
- /**
- * 订单优惠相关处理
- * @Author bing
- * @DateTime 2021-09-22 18:16:58
- * @copyright: Copyright (c) 2020 广东七件事集团
- */
- class OrderMarketingLogic
- {
- use ErrorTrait;
- public $_handlers = [
- FreeShippingMarketing::class, // 运费减免处理
- ];
- public function run(OrderFormLogic $form, $isNewRecord = false)
- {
- try{
- $extra = [];
- $group_order_goods = $form['group_order_goods'];
- foreach ($group_order_goods as &$item) {
- foreach ($this->_handlers as $key => $handler) {
- $item = $handler::compute($item, $form, $extra);
- if($item === false) throw new Exception($handler::getStaticError());
- }
- $form['total_pay_money'] += $item['mch_order_info']['pay_money'];// 计算总额
- }
- return $form;
- }catch(Exception $e){
- $this->setError($e->getMessage());
- return false;
- }
- }
- }
|