bind('goods', function (BalanceDeductionSettingManager $deductionSettingManager, array $params) { return new BalanceGoodsDeductionSetting($params[0]); }); /** * 余额抵扣商城设置 */ $this->bind('shop', function (BalanceDeductionSettingManager $deductionSettingManager, array $params) { return new BalanceShopDeductionSetting(); }); } /** * @param Goods $goods * @return BalanceDeductionSettingCollection */ public function getDeductionSettingCollection(Goods $goods) { $deductionSettingCollection = collect(); foreach ($this->getBindings() as $key => $value) { $deductionSettingCollection->push($this->make($key, [$goods])); } // 按权重排序 $deductionSettingCollection = $deductionSettingCollection->sortBy(function (DeductionSettingInterface $deductionSetting) { return $deductionSetting->getWeight(); }); return new BalanceDeductionSettingCollection($deductionSettingCollection); } }