xieruidong il y a 2 ans
Parent
commit
3836f80a16

+ 1 - 7
application/api/controller/mall/GoodsCart.php

@@ -126,15 +126,9 @@ class GoodsCart extends Api
             $use=false;
             $couponAmount=0;
             $coupon=$user->coupon()->findOrFail($data['coupon_id']);
-            $couponGoods=$coupon->bindGoods()->column('goods_id');
             foreach ($info['goods'] as $goods){
                 $amount=bcmul($goods['sku']['amount'],$goods['num']);
-                if(
-                    (($coupon['type']==Coupon::T_FULL && $amount>=$coupon['amount_full'])||
-                    ($coupon['type']==Coupon::T_WU && $amount>$coupon['amount'])) &&
-                    in_array($goods['goods_id'],$couponGoods)
-                ){
-                    $use=true;
+                if($coupon->canUse($amount,$goods['goods_id'])){
                     $couponAmount=$coupon['amount'];
                     break;
                 }

+ 9 - 5
application/common/model/UserCoupon.php

@@ -53,11 +53,15 @@ class UserCoupon extends Model
         return $this->getAttr('type')==Coupon::T_FULL;
     }
 
-    public function canUse(GoodsSku $sku){
-        $goods=$sku->goods;
-        $fitAmount=false;
-        if($this['type']==Coupon::T_FULL && $sku['']){
+    public function canUse($amount,$goods_id){
+        $couponGoods=$this->bindGoods()->column('goods_id');
+        if(
+            (($this['type']==Coupon::T_FULL && $amount>=$this['amount_full'])||
+                ($this['type']==Coupon::T_WU && $amount>$this['amount'])) &&
+            in_array($goods_id,$couponGoods)
+        ){
+            return true;
         }
-        $this->bindGoods()->where('goods_id',$goods['id'])->find();
+        return false;
     }
 }

+ 0 - 12
application/common/service/CouponService.php

@@ -29,17 +29,5 @@ class CouponService{
     }
 
     public function check(){
-        $check=[
-            'can_use'=>false,
-            'amount'=>0
-        ];
-        if(is_array($this->sku)){
-            foreach ($this->sku as $skuId){
-                $sku=GoodsSku::show()->findOrFail($skuId);
-                if($this->coupon->canUse($sku)){
-                    $check['can_use']=true;
-                }
-            }
-        }
     }
 }