header('个人积分')
->description('列表')
->body($this->grid());
}
/**
* Show interface.
*
* @param mixed $id
* @param Content $content
* @return Content
*/
public function show($id, Content $content)
{
return $content
->header('个人积分')
->description('详细')
->body($this->detail($id));
}
/**
* Edit interface.
*
* @param mixed $id
* @param Content $content
* @return Content
*/
public function edit($id, Content $content)
{
return $content
->header('个人积分')
->description('编辑')
->body($this->editForm($id)->edit($id));
}
/**
* Create interface.
*
* @param Content $content
* @return Content
*/
public function create(Content $content)
{
return $content
->header('个人积分')
->description('创建')
->body($this->createForm());
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new MembersHandsel);
$grid->model()->when(get_subsite_id()>0, function ($query) {
$query->whereHas('members',function ($query){
$query->where('subsite_id', get_subsite_id());
});
})->where('utype', 2)->orderBy('id', 'desc');
$grid->id('ID');
$grid->uid('会员ID');
$grid->utype('会员类型')->display(function ($utype) {
if ($utype==1) {
return '企业';
} else {
return '个人';
}
})->width(100);
$grid->points('操作积分')->display(function ($points) {
if ($this->operate==1) {
return "+".$points."";
} else {
return "-".$points."";
}
})->width(100);
$grid->htype_cn('操作说明')->width(150);
$grid->created_at('添加时间')->sortable();
$grid->updated_at('更新时间')->sortable();
$grid->disableCreateButton();
$grid->disableExport();
$grid->actions(function ($actions) use ($grid) {
if (Admin::user()->can('person_point_delete')) {
$actions->disableDelete(false);
}
if (Admin::user()->can('person_point_edit')) {
$actions->disableEdit(false);
}
});
if (Admin::user()->can('person_point_delete')) {
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete(false);
});
});
}
$grid->filter(function ($filter) {
$filter->disableIdFilter();
$filter->equal('uid', '会员ID');
$filter->like('htype_cn', '操作说明');
});
return $grid;
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(MembersHandsel::findOrFail($id));
$show->id('ID');
$show->uid('会员ID');
$show->utype('会员类型')->as(function ($utype) {
if ($utype==1) {
return '企业';
} else {
return '个人';
}
});
$show->points('操作积分')->as(function ($points) {
if ($this->operate == 1) {
return '+'.$points;
} else {
return '-'.$points;
}
});
$show->created_at('添加时间');
$show->updated_at('更新时间');
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new MembersHandsel);
$form->display('id');
$form->display('created_at');
$form->display('updated_at');
return $form;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function editForm($id)
{
$form = new Form(new MembersHandsel);
$form->setAction(route('admin.personal.addPoints'));
$MembersHandsel = MembersHandsel::findOrFail($id);
$utype = $MembersHandsel->utype;
$points = MembersHandsel::find($id)->membersPoints()->where('utype', $utype)->first();
$form->display('points_num', '会员积分')->setWidth(2)->with(function () use ($points) {
return $points->points;
});
$form->radio('points_type', '操作积分')->options([1 => '增加', 2=> '减少'])->default(1);
$form->switch('ismany', '是否收费?');
$form->number('many_point', '增减积分')->default(0)->min(0);
$form->number('amount', '收费金额')->default(0)->min(0);
$form->text('explain', '操作说明')->setWidth(8);
$form->hidden('points_id')->default($points->id);
return $form;
}
protected function createForm()
{
$form = new Form(new MembersHandsel);
$form->display('id');
$form->display('created_at');
$form->display('updated_at');
return $form;
}
/**
* Store a newly created resource in storage.
*
* @return mixed
*/
public function store()
{
return $this->createForm()->store();
}
/**
* Update the specified resource in storage.
*
* @param int $id
*
* @return \Illuminate\Http\Response|\Symfony\Component\HttpFoundation\Response
*/
public function update($id)
{
return $this->editForm()->update($id);
}
public function addPoints()
{
$id = request()->points_id;
if (!$id) {
admin_toastr('积分ID不存在!', 'error');
}
$type = request()->points_type;
$points = request()->many_point;
if ($type==1) {
$res = MembersPoint::where('id', $id)->increment('points', $points);
} else {
$res = MembersPoint::where('id', $id)->decrement('points', $points);
}
if ($res) {
admin_toastr('操作成功!', 'success');
} else {
admin_toastr('操作失败!', 'error');
}
return back();
}
}