6
0
Fork 0

调整后台砍价订单记录查询

release
vine_liutk 2022-04-12 16:17:15 +08:00
parent 078a52f206
commit 4055e850f4
2 changed files with 88 additions and 2 deletions

View File

@ -2,6 +2,7 @@
namespace App\Admin\Controllers;
use App\Admin\Renderable\Grid\Filter\BargainOrderSnIn;
use App\Admin\Repositories\BargainOrder;
use App\Models\BargainOrder as BargainOrderModel;
use App\Models\BargainOrderLog;
@ -35,9 +36,20 @@ class BargainOrderController extends AdminController
$grid->column('bargain_price')->display(function ($v) {
return bcdiv($v, 100, 2);
})->prepend('¥');
$grid->column('status');
$grid->column('status')->using([
0=>'未开始',
1=>'砍价中',
2=>'已砍完',
])->dot([
0=>'primary',
1=>'warning',
2=>'success',
]);
$grid->column('expire_at');
$grid->column('mallOrder.sn');
$grid->column('mallOrder.sn')->filter(BargainOrderSnIn::make([
0 => '未下单',
1 => '已下单',
]));
$grid->column('remark');
$grid->column('created_at');
$grid->column('updated_at')->sortable();

View File

@ -0,0 +1,74 @@
<?php
namespace App\Admin\Renderable\Grid\Filter;
use Dcat\Admin\Grid\Column\Filter;
use Dcat\Admin\Grid\Column\Filter\Checkbox;
use Dcat\Admin\Grid\Model;
class BargainOrderSnIn extends Filter
{
use Checkbox;
/**
* @var array
*/
protected $options = [];
/**
* CheckFilter constructor.
*
* @param array $options
*/
public function __construct(array $options)
{
$this->options = $options;
$this->class = [
'all' => uniqid('column-filter-all-'),
'item' => uniqid('column-filter-item-'),
];
}
/**
* Add a binding to the query.
*
* @param array $value
* @param Model $model
*/
public function addBinding($value, Model $model)
{
if (empty($value)) {
return;
}
$all = [0, 1];
if (array_diff($all, $value)) {//无差别则直接跳过
//判断查询的状态有哪些;
$model->where(function ($query) use ($value) {
foreach ($value as $status) {
switch ($status) {
case 0:
$query->orWhere(function ($q) {
return $q->whereNull('order_id')->orWhere('order_id', 0);
});
break;
case 1:
$query->orWhereNotNull('order_id');
break;
}
}
});
}
}
/**
* Render this filter.
*
* @return string
*/
public function render()
{
return $this->renderCheckbox();
}
}