You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.7 KiB
60 lines
1.7 KiB
<?php
|
|
|
|
namespace App\Admin\Repositories\v3;
|
|
|
|
use App\Models\v3\Coupon as Model;
|
|
use Dcat\Admin\Grid\Model as GridModel;
|
|
use Dcat\Admin\Repositories\EloquentRepository;
|
|
use App\Models\v3\CouponUse as CouponUseModel;
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class Coupon extends EloquentRepository
|
|
{
|
|
/**
|
|
* Model.
|
|
*
|
|
* @var string
|
|
*/
|
|
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;
|
|
}
|
|
}
|