链街Dcat后台
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.
 
 
 
 

101 lines
3.7 KiB

<?php
namespace App\Admin\Renderable;
use Dcat\Admin\Grid;
use App\Admin\Common\Type;
use App\Admin\Repositories\CommonEmpty;
use Dcat\Admin\Grid\LazyRenderable;
use App\Models\FinancialRecord;
class StoreBalance extends LazyRenderable
{
protected $title = '商户余额明细';
public function grid(): Grid
{
// 获取外部传递的参数
$userId = $this->user_id ?? 0;
$model = FinancialRecord::getFinancialRecordModel($userId);
if(!$model){
return Grid::make(new CommonEmpty(), function (Grid $grid) {
$grid->column('id','商 户 未 绑 定 提 现 用 户 懒 ID !');
$grid->disableRowSelector();
$grid->disableActions();
$grid->disablePagination();
});
}
$model = $model::where('user_type', Type::USER_TYPE_STORE)->where('user_id',$userId);
return Grid::make($model, function (Grid $grid) {
$grid->column('id','ID');
$grid->column('user_type','账户类型')->display(function($userType){
$item = Type::USER_TYPE_LIST[$userType] ?? '';
return $item;
});
$grid->column('money_type','流水类型')->display(function($moneyType){
$item = Type::MONEY_TYPE_LIST[$moneyType] ?? '';
return $item;
});
$grid->column('money','金额');
$grid->column('current_balance','入账前余额');
$grid->column('comment','描述')->width('16%');
$grid->column('status','状态')
->using(
FinancialRecord::$status
)
->label(
config('label.status_label')
);
$grid->column('created_at')->display(function($createdAt){
return date('Y-m-d H:i:s',$createdAt);
});
// 搜索
$grid->filter(function (Grid\Filter $filter){
$userTypeList = Type::USER_TYPE_LIST;
$moneyTypeList = Type::MONEY_TYPE_LIST;
$sourceTYpeList = Type::SOURCE_TYPE_LIST;
unset($userTypeList[0],$moneyTypeList[0]);
$filter->equal('id','流水表ID')->width(3);
$filter->equal('user_id','账户ID')->width(3);
$filter->equal('current_balance','账户余额')->width(3);
$filter->equal('money','流水金额')->width(3);
$filter->equal('source_id','关联流水ID')->width(3);
$filter->equal('money_type','流水类型')->select($moneyTypeList)->width(4);
// $filter->equal('user_type','账户类型')->select($userTypeList)->width(4);
$filter->equal('source_type','关联类型')->select($sourceTYpeList)->width(4);
$filter->whereBetween('created_at',function($q){
$start = $this->input['start'] ?? null;
$end = $this->input['end'] ?? null;
if($start !== null){
$q->where('created_at','>=',strtotime($start));
}
if($end !== null){
$q->where('created_at','<=',strtotime($end));
}
})->datetime()->width(7);
});
$grid->model()->orderBy('id','desc');
// 每页10条
$grid->paginate(10);
$grid->disableActions();
$grid->disableRowSelector();
});
}
public function default()
{
// 获取外部传递的参数
$userId = $this->payload['user_id'] ?? 0;
return [
'user_id' => $userId,
];
}
}