setting = $goods->hasOneSale; $this->is_point_goods = (int)PointMallGoodsModel::where('goods_id',$goods->id)->value('id'); } // todo 这个方法应该放在订单抵扣设置中 public function isEnableDeductDispatchPrice() { Log::debug("监听订单抵扣设置",\Setting::get('point.set.point_freight')); return \Setting::get('point.set.point_freight'); } public function isDispatchDisable() { // 商品抵扣设置为0,则商品不参与抵扣 return !\Setting::get('point.set.point_freight') || $this->setting->max_point_deduct === '0'; } // 是否禁用最大值 public function isMaxDisable() { if($this->is_point_goods > 0) return true;// 积分商品禁用最大值 return !\Setting::get('point.set.point_deduct') || $this->setting->max_point_deduct === '0'; } public function isMinDisable() { if($this->is_point_goods > 0) return false;// 积分商品禁用最小值 return !\Setting::get('point.set.point_deduct') || $this->setting->min_point_deduct === '0'; } public function getMaxFixedAmount() { return str_replace('%', '', $this->setting->max_point_deduct) ?: false; } public function getMaxPriceProportion() { if (!$this->setting->max_point_deduct) { return false; } return str_replace('%', '', $this->setting->max_point_deduct); } public function getMaxDeductionType() { // 商品抵扣设置为空,则商品未设置独立抵扣 if($this->setting->max_point_deduct === ''){ return false; } if(strexists($this->setting->max_point_deduct, '%')){ return 'GoodsPriceProportion'; } return 'FixedAmount'; } public function getMinFixedAmount() { return str_replace('%', '', $this->setting->min_point_deduct) ?: false; } public function getMinPriceProportion() { if (!$this->setting->min_point_deduct) { return false; } return str_replace('%', '', $this->setting->min_point_deduct); } public function getMinDeductionType() { // 商品抵扣设置为空,则商品未设置独立抵扣 if($this->setting->min_point_deduct === ''){ return false; } if(strexists($this->setting->min_point_deduct, '%')){ return 'GoodsPriceProportion'; } return 'FixedAmount'; } public function getDeductionAmountType() { return false; } public function getAffectDeductionAmount() { if($this->is_point_goods > 0) return false;// 积分商品固定可以抵扣小数 if (\Setting::get('point.set.point_deduction_integer')) { return 'integer'; } return false; } }