From f1b79f9f1fbc464a76100b1b5ba4312b07ea2dc4 Mon Sep 17 00:00:00 2001 From: liangyuyan <1103300295@qq.com> Date: Mon, 19 Oct 2020 15:31:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8-=E6=B7=BB=E5=8A=A0t?= =?UTF-8?q?ags=E9=97=AE=E9=A2=98=20=E4=BC=98=E6=83=A0=E5=88=B8-=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E7=BB=9F=E8=AE=A1=E4=BD=BF=E7=94=A8=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Admin/Controllers/v3/CouponController.php | 39 ++++++++++++++++--- app/Models/v3/Coupon.php | 4 +- app/Models/v3/CouponUse.php | 11 +++++- 3 files changed, 46 insertions(+), 8 deletions(-) diff --git a/app/Admin/Controllers/v3/CouponController.php b/app/Admin/Controllers/v3/CouponController.php index 67653d8..87a3c62 100644 --- a/app/Admin/Controllers/v3/CouponController.php +++ b/app/Admin/Controllers/v3/CouponController.php @@ -15,6 +15,7 @@ use App\Models\v3\Coupon as CouponModel; use App\Models\v3\Market as MarketModel; use App\Models\v3\Category as CategoryModel; use Dcat\Admin\Form\NestedForm; +use App\Models\v3\CouponUse as UseModel; class CouponController extends AdminController { @@ -38,7 +39,12 @@ class CouponController extends AdminController $grid->inventory; $grid->inventory_use; - $grid->use_number; + $grid->use_number->display(function($use){ + $id = $this->id; + $number = UseModel::getUseCount([['coupon_id','=',$id]])->toArray(); + $item = isset($number[0]['total']) ? $number[0]['total'] : 0; + return $item; + }); $grid->active_type_text; $grid->status ->using( @@ -75,6 +81,9 @@ class CouponController extends AdminController $filter->in('status')->multipleSelect($status); }); + $grid->model()->orderBy('id', 'desc'); + // 每页10条 + $grid->paginate(10); $grid->disableBatchDelete(); // $grid->disableCreateButton(); $grid->disableDeleteButton(); @@ -224,13 +233,33 @@ class CouponController extends AdminController // $form->text('usable_number')->width(2)->default(1)->disable(); $form->saving(function (Form $form){ - + $tags = $form->input('tags'); + $activityAvailable = $form->input('activity_available'); if( $form->discount_type == 2 && ($form->discounts <= 0 || $form->discounts >= 10)){ return $form->error('优惠金额请输入1~10之间的数字'); } - $form->activity_available = empty($form->input('activity_available'))? [] : $form->input('activity_available'); - $form->tags = empty($form->input('tags'))? [] : $form->input('tags'); - $form->tags = empty($form->input('tags'))? [] : $form->input('tags'); + $tagsArr = []; + if(!empty($tags)){ + foreach($tags as $kt => $tag){ + if(empty($tag)){ + unset($tags[$kt]); + continue; + } + $tagsArr[] = $tag; + } + }; + $form->tags = json_encode($tagsArr); + $availableArr = []; + if(!empty($activityAvailable)){ + foreach($activityAvailable as $ka => $available){ + if(empty($available)){ + unset($activityAvailable[$ka]); + continue; + } + $availableArr[] = $available; + } + }; + $form->activity_available = json_encode($availableArr); $form->remark = empty($form->input('remark')) ? '' : $form->input('remark'); }); diff --git a/app/Models/v3/Coupon.php b/app/Models/v3/Coupon.php index 785c961..dcf5966 100644 --- a/app/Models/v3/Coupon.php +++ b/app/Models/v3/Coupon.php @@ -47,8 +47,8 @@ class Coupon extends Model protected $casts = [ 'market_ids'=>'array', 'category_ids'=>'array', - 'tags'=>'array', - 'activity_available'=>'array' + // 'tags'=>'json', + // 'activity_available'=>'array' ]; public function getStatusTextAttribute() diff --git a/app/Models/v3/CouponUse.php b/app/Models/v3/CouponUse.php index 9b0fcea..68f8213 100644 --- a/app/Models/v3/CouponUse.php +++ b/app/Models/v3/CouponUse.php @@ -3,12 +3,21 @@ namespace App\Models\v3; use Dcat\Admin\Traits\HasDateTimeFormatter; - use Illuminate\Database\Eloquent\Model; +use Illuminate\Support\Facades\DB; class CouponUse extends Model { use HasDateTimeFormatter; protected $table = 'lanzu_coupon_use'; + /** + * 根据条件 获取使用数量 + */ + public static function getUseCount($where) + { + $data = self::select(DB::raw(' COUNT(id) as total,coupon_id'))->where($where)->groupBy('coupon_id')->get(); + return $data; + } + }