getShopGoodsPrice() == 0) { return 0; } // (订单商品成交金额/订单中同种商品总成交金额 ) * 订单单品满减金额 return ($this->cartGoods->getPriceBefore($this->getCode()) / $this->getShopGoodsPrice()) * $this->enoughReduce(); } /** * @return int|mixed * @throws \app\common\exceptions\AppException */ protected function enoughReduce() { //只有商城订单参加 if($this->cartGoods->goods()->plugin_id != 0) { return 0; } $shopDiscountAmount = $this->cartGoods->getShop()->getDiscountAmount($this->getShopGoodsPrice()); return $shopDiscountAmount; //return $this->cartGoods->shop->getDiscount()->getAmountByCode($this->code)->getAmount(); } /** * 店铺中能够进行全场满减优惠的商品的价格总和 * @return float */ protected function getShopGoodsPrice() { return $this->cartGoods->shop->carts->sum(function (CartGoods $preCartGoods) { if ($preCartGoods->isChecked() && $preCartGoods->goods()->plugin_id == 0) { return $preCartGoods->getPriceBefore($this->getCode()); } return 0; // return $preCartGoods->getPriceBefore($this->getCode()); }); } }