diff --git a/app/Admin/Controllers/CouponController.php b/app/Admin/Controllers/CouponController.php index 1a7d148..025163b 100644 --- a/app/Admin/Controllers/CouponController.php +++ b/app/Admin/Controllers/CouponController.php @@ -32,7 +32,6 @@ class CouponController extends AdminController $grid->inventory; $grid->inventory_use; $grid->active_type_text; - $grid->status ->using( config('coupon.status') @@ -116,8 +115,9 @@ class CouponController extends AdminController $form->select('active_type')->width(3)->options(config('coupon.active_type'))->default(1); /* 领取方式 */ - $receive = couponSettingModel::select('id','value','name')->where('category')->get(); - $form->select('receive_type')->width(3)->options([])->default(2); + $receive = couponSettingModel::select('id','name')->where('category',1)->get()->keyBy('id')->toArray(); + $receive = $this->keyToValue($receive,'id','name'); + $form->select('receive_type')->width(3)->options($receive)->default(2); $form->select('type')->width(3)->options(config('coupon.type'))->default(1)->disable(); $form->select('category')->width(3)->options(config('coupon.category'))->default(1)->disable(); @@ -135,6 +135,21 @@ class CouponController extends AdminController $form->display('created_at'); $form->display('updated_at'); + }); } + + /** + * 组装新数组 + */ + public function keyToValue($array, $key, $value){ + if(empty($array)){ + return $array; + } + $newArray = []; + foreach($array as $v){ + $newArray[$v[$key]] = $v[$value]; + } + return $newArray; + } } diff --git a/app/Admin/Repositories/Coupon.php b/app/Admin/Repositories/Coupon.php index b561d59..ed617bb 100644 --- a/app/Admin/Repositories/Coupon.php +++ b/app/Admin/Repositories/Coupon.php @@ -5,6 +5,8 @@ namespace App\Admin\Repositories; use App\Models\Coupon as Model; use Dcat\Admin\Grid\Model as GridModel; use Dcat\Admin\Repositories\EloquentRepository; +use App\Models\CouponUse as CouponUseModel; +use Illuminate\Support\Facades\DB; class Coupon extends EloquentRepository { @@ -15,4 +17,44 @@ class Coupon extends EloquentRepository */ protected $eloquentClass = Model::class; + /** + * 查询Grid表格数据. + * + * @param Grid\Model $model + * + * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator|Collection|array + */ + public function get(GridModel $model) + { + $this->setSort($model); + $this->setPaginate($model); + + $query = $this->newQuery(); + + if ($this->relations) { + $query->with($this->relations); + } + + $model->getQueries()->unique()->each(function ($value) use (&$query) { + if ($value['method'] == 'paginate') { + $value['arguments'][1] = $this->getGridColumns(); + } elseif ($value['method'] == 'get') { + $value['arguments'] = [$this->getGridColumns()]; + } + + $query = call_user_func_array([$query, $value['method']], $value['arguments'] ?? []); + }); + + // dd(CouponUseModel::where('system_coupon_id',16)->sum('number')); + // $u = DB::table('ims_system_coupon_user_use')->where('system_coupon_id',16)->count('number'); + // dd($u); + // $list = $query->toArray(); + // foreach($list as &$value){ + // // 查询使用数量 + // $value['use_total'] = CouponUseModel::where('system_coupon_id',16)->count('number'); + // dd( $value['use_total'] ); + // } + + return $query; + } } diff --git a/app/Models/Coupon.php b/app/Models/Coupon.php index 51763e3..ce52e50 100644 --- a/app/Models/Coupon.php +++ b/app/Models/Coupon.php @@ -12,7 +12,7 @@ class Coupon extends Model use SoftDeletes; protected $table = 'ims_system_coupon_user'; - + protected $perPage = 10; protected $appends = [ 'status_text', 'type_text', diff --git a/app/Models/CouponUse.php b/app/Models/CouponUse.php new file mode 100644 index 0000000..1dd5a5c --- /dev/null +++ b/app/Models/CouponUse.php @@ -0,0 +1,14 @@ +