Pārlūkot izejas kodu

【Add】优惠券增加商品排除范围

liuxiangxin 5 mēneši atpakaļ
vecāks
revīzija
a79ca50610

+ 164 - 0
app/Http/Controllers/Admin/CouponProductExclude.php

@@ -0,0 +1,164 @@
+<?php namespace App\Http\Controllers\Admin;
+
+use App\Http\Requests\Admin\CouponProductExclude as Request;
+use App\Models\Product;
+use App\Models\CouponProductExclude as Model;
+use App\Models\Coupon;
+
+/**
+ * 优惠券排除规则产品范围
+ *
+ * @author    刘相欣
+ *
+ */
+class CouponProductExclude extends Auth{
+	
+	protected function _initialize(){
+		parent::_initialize();
+		$this->assign('breadcrumb1','营销管理');
+		$this->assign('breadcrumb2','优惠券排除商品');
+	}
+
+	/**
+	 * 列表页
+	 * 
+	 * */
+    public function index(Model $Model,Coupon $Coupon,Product $Product){
+		// 接收参数
+		$couponCode				= request('coupon_code','');
+		$productCode			= request('product_code','');
+		$productId				= $Product->codeToId($productCode);
+		$couponId				= $Coupon->codeToId($couponCode);
+		// 查询条件
+		$map 					= [];
+		// 组合条件
+		if( $couponId )			$map[] = ['coupon_product_exclude.coupon_id','=',$couponId];
+		if( $productId )		$map[] = ['product.id','=',$productId];
+		// 查询数据
+		$list					= $Model->query()
+									->join('product','coupon_product_exclude.product_id','=','product.id')
+									->join('coupon','coupon.id','=','coupon_product_exclude.coupon_id')
+									->where($map)
+									->orderByDesc('id')
+									->select(['coupon_product_exclude.*','product.name as product_name','coupon.name as coupon_name'])
+									->paginate(config('page_num',10));
+		// 循环处理数据
+		foreach ($list as $key => $value) {
+			$value['coupon_code'] = $Coupon->idToCode($value['coupon_id']);
+			$value['product_code'] = $Product->idToCode($value['product_id']);
+			// 重组
+			$list[$key]			= $value;
+		}
+		// 分配数据
+		$this->assign('empty', '<tr><td colspan="20">~~暂无数据</td></tr>');
+		$this->assign('list',$list);
+		// 加载模板
+		return 					$this->fetch();
+    }
+
+	/**
+	 * 添加
+	 * 
+	 * */
+	public function add(Request $request,Model $Model,Product $Product,Coupon $Coupon){
+		if( request()->isMethod('post') ){
+			// 验证参数
+			$request->scene('add')->validate();
+			// 接收数据
+			$productCode			= request('product_code','');
+			$couponCode				= request('coupon_code','');
+			$data['product_id']		= $Product->codeToId($productCode);
+			$data['coupon_id']		= $Coupon->codeToId($couponCode);
+			// 如果操作失败
+			if( !$data['product_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的产品编码']);
+			if( !$data['coupon_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的优惠券编码']);
+			// 查询产品ID是否存在
+			$oldId					= $Model->query()->where([['coupon_id','=',$data['coupon_id']],['product_id','=',$data['product_id']]])->value('id');
+			// 重复提醒
+			if( $oldId ) 			return json_send(['code'=>'error','msg'=>'产品编码已存在']);
+			// 写入数据表
+			$id						= $Model->add($data);
+			// 如果操作失败
+			if( !$id ) 				return json_send(['code'=>'error','msg'=>'新增失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,1,[],$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'新增成功','action'=>'add']);
+		}
+		// 分配数据
+		$this->assign('crumbs','新增');
+		// 加载模板
+		return						$this->fetch(); 
+	}
+
+	/**
+	 * 修改
+	 * 
+	 * */
+	public function edit(Request $request,Model $Model,Product $Product,Coupon $Coupon){
+		// 接收参数
+		$id							= request('id',0);
+		// 查询用户
+		$oldData					= $Model->where(['id'=>$id])->first();
+		// 修改
+		if(request()->isMethod('post')){
+			// 验证参数
+			$request->scene('edit')->validate();
+			// 接收数据
+			$productCode			= request('product_code','');
+			$couponCode				= request('coupon_code','');
+			$data['product_id']		= $Product->codeToId($productCode);
+			$data['coupon_id']		= $Coupon->codeToId($couponCode);
+			// 如果操作失败
+			if( !$data['product_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的产品编码']);
+			if( !$data['coupon_id'] ) return json_send(['code'=>'error','msg'=>'请填写正确的优惠券编码']);
+			// 查询产品ID是否存在
+			$oldId					= $Model->query()->where([['coupon_id','=',$data['coupon_id']],['product_id','=',$data['product_id']]])->value('id');
+			// 重复提醒
+			if( $oldId && $oldId != $id ) return json_send(['code'=>'error','msg'=>'产品编码已存在']);
+			// 写入数据表
+			$result					= $Model->edit($id,$data);
+			// 如果操作失败
+			if( !$result ) 			return json_send(['code'=>'error','msg'=>'新增失败']);
+			// 记录行为
+			$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,$data);
+			// 告知结果
+			return					json_send(['code'=>'success','msg'=>'修改成功','action'=>'edit']);
+		}
+		// 错误告知
+		if( !$oldData )				return $this->error('查无数据');
+		// 产品编码
+		$oldData['product_code'] 	= $Product->idToCode($oldData['product_id']);
+		$oldData['coupon_code'] 	= $Coupon->idToCode($oldData['coupon_id']);
+		// 分配数据
+		$this->assign('oldData',$oldData);
+		$this->assign('crumbs','修改');
+		// 加载模板
+		return						$this->fetch();
+	}
+
+	/**
+	 * 修改状态
+	 * 
+	 * */
+	public function set_status(Request $request,Model $Model){
+		// 验证参数
+		$request->scene('set_status')->validate();
+		// 设置状态
+		$id				= request('id',0);
+		$status			= request('status',0);
+		// 查询用户
+		$oldData		= $Model->where(['id'=>$id])->first();
+		// 如果用户不存在
+		if( !$oldData )	return json_send(['code'=>'error','msg'=>'数据不存在']);
+		// 执行修改
+		$result			= $Model->edit($id,['status'=>$status]);		
+		// 提示新增失败
+		if( !$result )	return json_send(['code'=>'error','msg'=>'设置失败']);
+		// 记录行为
+		$this->addAdminHistory(admin('uid'),$Model->getTable(),$id,2,$oldData,['status'=>$status]);
+		// 告知结果
+		return 			json_send(['code'=>'success','msg'=>'设置成功','path'=>'']);
+	}
+
+}

+ 43 - 11
app/Http/Controllers/Api/CustomCoupon.php

@@ -6,6 +6,7 @@ use App\Models\CouponRebate;
 use App\Models\CustomCoupon as Model;
 use App\Http\Requests\Api\Coupon\Custom as Request;
 use App\Models\Coupon;
+use App\Models\CouponProductExclude;
 use App\Models\Custom;
 
 /**
@@ -23,7 +24,7 @@ class CustomCoupon extends Api{
 	 * @param	string		$code		授权码
 	 * 
 	 * */
-	public function get_list(Model $Model,CouponRebate $CouponRebate,CouponProduct $CouponProduct){
+	public function get_list(Model $Model,CouponRebate $CouponRebate,CouponProduct $CouponProduct,CouponProductExclude $CouponProductExclude){
 		// 接口验签
 		// $this->verify_sign();
 		// 检查登录
@@ -38,6 +39,8 @@ class CustomCoupon extends Api{
 		$rebates					= $CouponRebate->getRebatesByCouponIds(array_column($Paginator->items(),'coupon_id'));
 		// 商品范围
 		$products					= $CouponProduct->getProductList(array_column($Paginator->items(),'coupon_id'));
+		// 排除商品
+		$productsExclude			= $CouponProductExclude->getProductList(array_column($Paginator->items(),'coupon_id'));
 		// 循环处理数据
 		foreach ($Paginator as $key => $value) {
 			$rebateScope			= [];
@@ -63,23 +66,36 @@ class CustomCoupon extends Api{
 			$productScope			= [];
 			// 状态可用 且指定商品
 			if( $value['status'] == 0 && $value['type_id'] == 1 ) {
-				// 获取赠品列表
+				// 循环商品范围
 				foreach ($products as $vv) {
-					// 获取优惠券的赠品
+					// 获取商品范围
 					if( $vv['coupon_id'] == $value['coupon_id'] ) {
-						// 赠品信息
+						// 商品范围
 						$productScope[] = $vv['product_id'];
 					}
 				}
 			}
+			// 状态可用 且排除商品
+			if( $value['status'] == 0 && $value['type_id'] == 3 ) {
+				// 循环排除范围
+				foreach ($productsExclude as $vv) {
+					// 排除范围
+					if( $vv['coupon_id'] == $value['coupon_id'] ) {
+						// 排除范围
+						$productExclude[] = $vv['product_id'];
+					}
+				}
+			}
 			// 商品范围
-			$value['product_scope']	= $productScope;
+			$value['product_scope']		= $productScope;
+			// 排除范围
+			$value['product_exclude']	= $productExclude;
 			// 时间
-			$value['exp_time']		= date('Y-m-d H:i:s',$value['exp_time']);
+			$value['exp_time']			= date('Y-m-d H:i:s',$value['exp_time']);
 			// 优惠券回馈类型
-			$value['rebate']		= $value['rebate_type'] == 1 ? $value['rebate'] : intval($value['rebate']);
+			$value['rebate']			= $value['rebate_type'] == 1 ? $value['rebate'] : intval($value['rebate']);
 			// 重组
-			$list[$key]				= $value;
+			$list[$key]					= $value;
 		}
 		// 获取数据
 		$data['total']				= $Paginator->total();
@@ -98,7 +114,7 @@ class CustomCoupon extends Api{
 	 * @param	string		$code		授权码
 	 * 
 	 * */
-	public function get_checked(Model $Model,CouponRebate $CouponRebate,CouponProduct $CouponProduct){
+	public function get_checked(Model $Model,CouponRebate $CouponRebate,CouponProduct $CouponProduct,CouponProductExclude $CouponProductExclude){
 		// 接口验签
 		// $this->verify_sign();
 		// 检查登录
@@ -111,6 +127,8 @@ class CustomCoupon extends Api{
 		$products					= $CouponProduct->getProductList(array_column($list,'coupon_id'));
 		// 通过优惠券ID,查询赠品
 		$rebates					= $CouponRebate->getRebatesByCouponIds(array_column($list,'coupon_id'));
+		// 排除商品
+		$productsExclude			= $CouponProductExclude->getProductList(array_column($list,'coupon_id'));
 		// 循环处理数据
 		foreach ($list as $key => $value) {
 			// 适用范围
@@ -119,15 +137,29 @@ class CustomCoupon extends Api{
 			if( $value['type_id'] == 1 ){
 				// 获取适用的商品范围
 				foreach ($products as $vv) {
-					// 获取优惠券指定的商品
+					// 获取优商品范围
 					if( $vv['coupon_id'] == $value['coupon_id'] ) {
 						unset($vv['coupon_id']);
 						$productScope[] = $vv;
 					}
 				}
 			}
-			// 适用范围
+			// 状态可用 且排除商品
+			if( $value['type_id'] == 3 ) {
+				// 循环排除范围
+				foreach ($productsExclude as $vv) {
+					// 排除范围
+					if( $vv['coupon_id'] == $value['coupon_id'] ) {
+						unset($vv['coupon_id']);
+						// 排除范围
+						$productExclude[] = $vv;
+					}
+				}
+			}
+			// 商品范围
 			$value['product_scope']	= $productScope;
+			// 排除范围
+			$value['product_exclude']= $productExclude;
 			// 赠品范围
 			$rebateScope			= [];
 			// 获取赠品列表

+ 52 - 0
app/Http/Requests/Admin/CouponProductExclude.php

@@ -0,0 +1,52 @@
+<?php namespace App\Http\Requests\Admin;
+
+use App\Http\Requests\BaseRequest;
+
+/**
+ * 优惠券商品排除验证器
+ * 
+ */
+class CouponProductExclude extends BaseRequest
+{
+    /**
+     * 获取应用于请求的规则
+     *
+     * @return array
+     */
+    public function rules()
+    {
+        // 返回结果
+        return      [
+            // 有时候我们希望某个字段在第一次验证失败后就停止运行验证规则,只需要将 bail 添加到规则中:
+            // 验证字段,验证规则,提示信息
+	        'product_code' 		=> 'required',
+            'coupon_id' 	    => 'required',
+	        'id'                => 'required|integer|gt:0',
+        ];
+    }
+
+    
+    // 场景列表
+    protected   $scenes         = [
+		'add'  		            => ['name'],
+        'edit'  		        => ['id','name'],
+        'set_status'  		    => ['id'],
+	];
+
+    /**
+     * 获取已定义验证规则的错误消息
+     *
+     * @return array
+     */
+    public function messages()
+    {
+        return [
+            'product_code.required'     => '产品编码必填',
+            'coupon_id.required'	    => '优惠券必选',
+            'id.required'               => 'ID未知',
+            'id.integer'                => 'ID格式错误',
+            'id.gt'   		            => 'ID格式错误',
+        ];
+    }
+    
+}

+ 105 - 0
app/Models/CouponProductExclude.php

@@ -0,0 +1,105 @@
+<?php namespace App\Models;
+
+use Illuminate\Database\Eloquent\Factories\HasFactory;
+use Illuminate\Database\Eloquent\Model;
+
+/**
+ * 优惠券商品排除范围模型
+ * 
+ */
+class CouponProductExclude extends Model
+{
+    use HasFactory;
+
+    // 与模型关联的表名
+    protected $table = 'coupon_product_exclude';
+    // 是否主动维护时间戳
+    public $timestamps = false;
+    // 定义时间戳字段名
+    // const CREATED_AT = 'insert_time';
+    // const UPDATED_AT = 'update_time';
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function add($data)
+    {
+        // 时间
+        $data['insert_time']				= time();
+        $data['update_time']				= time();
+        // 写入数据表
+        $id						            = $this->query()->insertGetId($data);
+        // 返回结果
+        return                              $id;
+    }
+
+    /**
+     * 添加数据
+     * 
+     */
+    public function edit($id,$data)
+    {
+        // 更新时间
+        $data['update_time']                = time();
+        // 写入数据表
+        $result						        = $this->query()->where(['id'=>$id])->update($data);
+        // 返回结果
+        return                              $result;
+    }
+
+    /**
+     * 查询多个优惠券的商品范围列表
+     * 
+     * @param   array  $couponIds  适用产品的列表
+     * 
+     */
+    public function getProductList($couponIds)
+    {
+        // 写入数据表
+        $result						        = $this->query()->whereIn('coupon_id',$couponIds)->get(['coupon_id','product_id'])->toArray();
+        // 返回结果
+        return                              $result;
+    }
+
+
+    /**
+     * 查询单个优惠券的商品范围
+     * 
+     * @param   array  $couponId  优惠券的
+     * 
+     */
+    public function getProducts($couponId)
+    {
+        // 写入数据表
+        $result						        = $this->query()->where([['coupon_id','=',$couponId]])->pluck('product_id')->toArray();
+        // 返回结果
+        return                              $result;
+    }
+
+
+    /**
+     * 查询单个优惠券的商品范围
+     * 
+     * @param   array  $couponId  优惠券的
+     * 
+     */
+    public function getProductListByCouponIds($couponIds)
+    {
+        // 写入数据表
+        $list						    = $this->query()
+                                            ->join('product','coupon_product_exclude.product_id','=','product.id')
+                                            ->whereIn('coupon_id',$couponIds)
+                                            ->get(['product.name as product_name','product.id as product_id','product.thumb as thumb','product.price as price','product.market_price as market_price','product.stock as stock'])
+                                            ->toArray();
+        // 返回结果
+        foreach ($list as $key => $value)   {
+            // 缩略图处理
+            $value['thumb']                 = $value['thumb'] ? path_compat($value['thumb']) : '';
+            $list[$key]                     = $value;
+        }
+        // 返回结果
+        return                              $list;
+    }
+
+}

+ 19 - 1
app/Models/CustomCoupon.php

@@ -71,6 +71,8 @@ class CustomCoupon extends Model
         $coupon                     = $coupon->toArray();
         // 查询优惠券的商品范围
         $coupon['product_scope']    = $coupon['type_id'] == 1 ? (new CouponProduct())->getProducts($coupon['coupon_id']) : [];
+        // 查询优惠券的商品范围
+        $coupon['product_exclude']  = $coupon['type_id'] == 3 ? (new CouponProductExclude())->getProducts($coupon['coupon_id']) : [];
         // 获取赠品信息
         $coupon['rebate_scope']     = $coupon['rebate_type'] == 3 ? (new CouponRebate())->getProductByCouponId($coupon['coupon_id']) : [];
         // 返回结果
@@ -144,7 +146,18 @@ class CustomCoupon extends Model
                 // 如果在商品范围
                 if( isset($productPrice[$productId]['price_total']) )  $totalPrice = $totalPrice + $productPrice[$productId]['price_total'];
             }
-        }else{
+        // 排除的商品,不参与
+        } elseif ( $coupon['product_exclude'] ) {
+            // 去重,避免重复计算
+            $coupon['product_exclude']    = array_values(array_unique($coupon['product_exclude']));
+            // 循环产品价格
+            foreach ( $productPrice as  $productId=>$value ) {
+                // 如果产品在排除范围内
+                if( in_array($productId,$coupon['product_exclude']) )  continue;
+                // 计算总价
+                $totalPrice = $totalPrice + $value['price_total'];
+            }
+        } else{
             $totalPrice				        = array_sum(array_column($productPrice,'price_total'));
         }
         // 如果没有达标
@@ -190,6 +203,11 @@ class CustomCoupon extends Model
                 // 跳过,不做计算
                 continue;
             }
+            // 如果有商品排除范围,且产品id在商品排除范围的
+            if( !empty($coupon['product_exclude']) && in_array($productId,$coupon['product_exclude']) ) {
+                // 跳过,不做计算
+                continue;
+            }
             // 优惠价格 = 价格占总价的比例 * 优惠的总价
             $value['rebate_price']          = number_format( $rebatePrice * ($value['price_total'] / $totalPrice) , 2 , '.' ,'');
             // 重组

+ 1 - 0
resources/views/admin/coupon/add.blade.php

@@ -69,6 +69,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<select name="type_id" class="form-control" >
 			<option value="2" >全部商品</option>
 			<option value="1" >指定商品</option>
+			<option value="3" >排除商品</option>
 		</select>
 	</div>
 	<div class="form-group col-sm-2">

+ 1 - 0
resources/views/admin/coupon/edit.blade.php

@@ -69,6 +69,7 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 		<select name="type_id" class="form-control" >
 			<option value="2" @if ( $oldData['type_id'] == '2' ) selected="selected" @endif>全部商品</option>
 			<option value="1" @if ( $oldData['type_id'] == '1' ) selected="selected" @endif>指定商品</option>
+			<option value="3" @if ( $oldData['type_id'] == '3' ) selected="selected" @endif>排除商品</option>
 		</select>
 	</div>
 	<div class="form-group col-sm-2">

+ 2 - 0
resources/views/admin/coupon/index.blade.php

@@ -88,6 +88,8 @@ style="margin: 0 auto;width: 96%;padding: 30px 0px;"
 						<td> 
 							@if ( $a['type_id'] == 1 )
 								<a href="{{url('admin/coupon_product/index?'.http_build_query(['coupon_code'=>$a['coupon_code']]))}}">指定商品</a>
+							@elseif ( $a['type_id'] == 3 )
+							<a href="{{url('admin/coupon_product_exclude/index?'.http_build_query(['coupon_code'=>$a['coupon_code']]))}}">排除商品</a>
 							@else
 								全部商品
 							@endif

+ 20 - 0
resources/views/admin/coupon_product_exclude/add.blade.php

@@ -0,0 +1,20 @@
+@extends('admin.public.base')
+@section('body_class')
+style="margin: 0 auto;width: 96%;padding: 30px 0px;"
+@endsection
+@section('content')
+<form class="post-form" action="" method="post">
+	<div class="form-group col-sm-12">
+		<label class="control-label">优惠券编码</label>
+		<input class="form-control" required="required" type="text" placeholder="优惠券编码" name="coupon_code" value="{{request('coupon_code','')}}" />
+	</div>
+	<div class="form-group col-sm-12">
+		<label class="control-label">产品编码</label>
+		<input class="form-control" required="required" type="text" placeholder="产品编码" name="product_code" value="" />
+	</div>
+	<div class="form-group col-sm-12">
+		@csrf
+		<input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />
+	</div>
+</form>
+@endsection

+ 21 - 0
resources/views/admin/coupon_product_exclude/edit.blade.php

@@ -0,0 +1,21 @@
+@extends('admin.public.base')
+@section('body_class')
+style="margin: 0 auto;width: 96%;padding: 30px 0px;"
+@endsection
+@section('content')
+<form class="post-form" action="" method="post">
+<div class="form-group col-sm-12">
+		<label class="control-label">优惠券编码</label>
+		<input class="form-control" required="required" type="text" placeholder="优惠券编码" name="coupon_code" value="{{$oldData['coupon_code']}}" />
+	</div>
+	<div class="form-group col-sm-12">
+		<label class="control-label">产品编码</label>
+		<input class="form-control" required="required" type="text" placeholder="产品编码" name="product_code" value="{{$oldData['product_code']}}" />
+	</div>
+	<div class="form-group col-sm-12">
+		@csrf
+		<input type="hidden" name="id" id="id" value="{{$oldData['id']}}" />
+		<input id="send" type="submit" value="提交" class="btn btn-primary btn-block" />
+	</div>
+</form>
+@endsection

+ 77 - 0
resources/views/admin/coupon_product_exclude/index.blade.php

@@ -0,0 +1,77 @@
+@extends('admin.public.base')
+@section('body_class')
+style="margin: 0 auto;width: 96%;padding: 30px 0px;"
+@endsection
+@section('content')
+
+@if(check_auth('admin/coupon_product_exclude/add'))
+	<div class="page-header">
+		<a href="{{url('admin/coupon_product_exclude/add?'.http_build_query(['coupon_code'=>request('coupon_code','')]))}}" class="btn btn-primary">新增</a>
+	</div>
+@endif
+
+<form action="" method="get" class="form-horizontal form-line">
+	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-2" style="margin-right: 2px;">
+		<input type="text" class="form-control" name="coupon_code" value="{{request('coupon_code','')}}" placeholder="请输入优惠券编码查询" />
+	</div>
+	<div class="form-group col col-lg-2 col-md-2 col-sm-2 col-xs-2" style="margin-right: 2px;">
+		<input type="text" class="form-control" name="product_code" value="{{request('product_code','')}}" placeholder="请输入产品编码查询" />
+	</div>
+	<input type="submit" class="btn btn-sm btn-primary" value="查询"/>
+	<a href="{{url('admin/coupon_product_exclude/index')}}" class="btn btn-sm btn-default" >重置</a>
+</form>
+
+<div class="row">
+	<div class="col-xs-12">	
+		<div class="table-responsive">
+			<table class="table table-striped table-bordered table-hover">
+				<thead>
+					<tr>
+						<th>ID</th>
+						<th>优惠券编码</th>
+						<th>优惠券名称</th>
+						<th>产品编码</th>
+						<th>产品名称</th>
+						<th>状态</th>
+						<th>修改时间</th>
+						<th>操作</th>									
+					</tr>
+				</thead>
+				
+				<tbody>
+						@foreach ($list as $a)
+						<tr>
+							<th>{{$a['id']}}</th>
+							<td>{{$a['coupon_code']}}</td>
+							<td>{{$a['coupon_name']}}</td>
+							<td>{{$a['product_code']}}</td>
+							<td>{{$a['product_name']}}</td>
+							<td>{{$a['status']?'停用':'启用'}}</td>
+							<td> {{date('Y/m/d H:i:s',$a['update_time'])}}</td>
+							<td>
+								@if(check_auth('admin/coupon_product_exclude/edit'))
+								<a href="{{url('admin/coupon_product_exclude/edit?'.http_build_query(['id'=>$a['id']]))}}" class="btn btn-sm btn-warning" >编辑</a>
+								@endif
+								@if(check_auth('admin/coupon_product_exclude/set_status'))
+									@if($a['status'])
+									<a data-url="{{url('admin/coupon_product_exclude/set_status?'.http_build_query(['id'=>$a['id'],'status'=>0]))}}" class="set_status btn btn-sm btn-success" >启用</a>
+									@else
+									<a data-url="{{url('admin/coupon_product_exclude/set_status?'.http_build_query(['id'=>$a['id'],'status'=>1]))}}" class="set_status btn btn-sm btn-danger" >停用</a>
+									@endif
+								@endif
+							</td>							
+						</tr>  
+						@endforeach
+						<tr>
+							<td colspan="20" class="page">{{$list->render()}}</td>
+						</tr>
+						<tr>
+							<td colspan="20">总计 {{$list->total()}} 个商店</td>
+						</tr>
+				</tbody>
+				
+			</table>
+		</div>
+	</div>
+</div>
+@endsection

+ 10 - 0
routes/web.php

@@ -204,6 +204,16 @@ Route::middleware('admin')->prefix('admin')->group(function(){
     // 状态
     Route::any('coupon_product/set_status',[App\Http\Controllers\Admin\CouponProduct::class,'set_status']);
 
+    /* 优惠券发放规则-商品排除范围 */
+    // 列表
+    Route::any('coupon_product_exclude/index',[App\Http\Controllers\Admin\CouponProductExclude::class,'index']);
+    // 详情
+    Route::any('coupon_product_exclude/add',[App\Http\Controllers\Admin\CouponProductExclude::class,'add']);
+    // 详情
+    Route::any('coupon_product_exclude/edit',[App\Http\Controllers\Admin\CouponProductExclude::class,'edit']);
+    // 状态
+    Route::any('coupon_product_exclude/set_status',[App\Http\Controllers\Admin\CouponProductExclude::class,'set_status']);
+
     /* 优惠券 */
     // 列表
     Route::any('custom_coupon/index',[App\Http\Controllers\Admin\CustomCoupon::class,'index']);