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; + } + }