xieruidong il y a 2 ans
Parent
commit
3f7a8e7f5c

+ 1 - 1
application/admin/controller/Coupon.php

@@ -85,7 +85,7 @@ class Coupon extends Backend
             ]);
             if($data['type']==1){
                 $this->validate($data,[
-                    'amount_full|满金额'=>['require','egt:'.input('row.amount')],
+                    'amount_full|满金额'=>['require','egt:'.input('row.amount')],
                 ]);
             }
             Db::startTrans();

+ 1 - 1
application/admin/validate/Coupon.php

@@ -11,7 +11,7 @@ class Coupon extends Validate
      */
     protected $rule = [
         'amount|金额'=>['require'],
-        'amount_full|满金额'=>['require','requireIf:type,1'],
+        'amount_full|满金额'=>['require','requireIf:type,1'],
         'num|数量'=>['require','gt:0'],
         'time_start|开始时间'=>['require','gt:0'],
         'time_end|结束时间'=>['require','gt:0'],

+ 1 - 1
application/admin/view/coupon/add.html

@@ -41,7 +41,7 @@
         <div class="col-xs-12 col-sm-8">
             <input
                     id="c-name"
-                    data-rule=""
+                    data-rule="required"
                     data-params='{}'
                     data-source="goods"
                     class="form-control selectpage"

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

@@ -93,7 +93,7 @@ class GoodsCart extends Api
 
     /**
      * 购物车列表
-     * @ApiParams (name=coupon_use,description=是否使用优惠券)
+     * @ApiParams (name=coupon_use,description="是否使用优惠券使用传1")
      * @ApiParams (name=coupon_id,description=优惠券id)
      * @ApiReturnParams (name=amount_total,description=总金额)
      * @ApiReturnParams (name=amount_coupon,description=优惠券优惠金额)
@@ -102,6 +102,9 @@ class GoodsCart extends Api
      * @ApiReturnParams (name=goods,description=商品列表)
      */
     public function index(){
+        $data=$this->_validate([
+            'coupon_id'=>['integer','requireIf:coupon_use,1'],
+        ]);
         $user=$this->auth->getUser();
         $info=[
             'amount_total'=>0,
@@ -110,6 +113,12 @@ class GoodsCart extends Api
             'num_install'=>0,
             'goods'=>[]
         ];
+
+        if(!empty($data['coupon_use'])){
+            $coupon=$user->coupon()->findOrFail($data['coupon_id']);
+
+        }
+
         $info['goods']=$user->cart()
             ->with(['goods','sku'])
             ->select()->toArray();

+ 2 - 0
application/common/model/Coupon.php

@@ -13,6 +13,8 @@ class Coupon extends Model
         1=>'满减券',
         2=>'无门槛券'
     ];
+    const T_FULL=1;
+    const T_WU=2;
 
     /**
      * @return string[]

+ 13 - 0
application/common/model/UserCoupon.php

@@ -48,4 +48,17 @@ class UserCoupon extends Model
             ->where('order_info_id',0)
             ->where('time_end','>',$time);
     }
+
+    public function needMax(){
+        return $this->getAttr('type')==Coupon::T_FULL;
+    }
+
+    public function canUse(GoodsSku $sku){
+        $goods=$sku->goods;
+        $fitAmount=false;
+        if($this['type']==Coupon::T_FULL && $goods['amount']){
+
+        }
+        $this->bindGoods()->where('goods_id',$goods['id'])->find();
+    }
 }

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

@@ -0,0 +1,45 @@
+<?php
+namespace app\common\service;
+
+use app\common\model\GoodsSku;
+use app\common\model\UserCoupon;
+use traits\think\Instance;
+
+class CouponService{
+    use Instance;
+    /** @var UserCoupon */
+    protected $coupon;
+    protected $sku;
+
+    /**
+     * @param UserCoupon $coupon
+     */
+    public function setCoupon(UserCoupon $coupon)
+    {
+        $this->coupon = $coupon;
+        return $this;
+    }
+
+    /**
+     */
+    public function setSku($sku)
+    {
+        $this->sku = $sku;
+        return $this;
+    }
+
+    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;
+                }
+            }
+        }
+    }
+}

+ 1 - 1
public/assets/js/backend/coupon.js

@@ -30,7 +30,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'id', title: __('Id')},
                         {field: 'type', title: __('类型'),searchList:types,formatter: Table.api.formatter.label},
                         {field: 'amount', title: __('金额'), operate:'BETWEEN'},
-                        {field: 'amount_full', title: __('满减金额'), operate:'BETWEEN'},
+                        {field: 'amount_full', title: __('金额'), operate:'BETWEEN'},
                         {field: 'num', title: __('Num')},
                         {field: 'num_send', title: __('Num_send')},
                         {field: 'time_start', title: __('开始时间'), operate:'RANGE', addclass:'datetimerange', autocomplete:false},