memberRepository = $memberRepository;
$this->subsiteService = $subsiteService;
}
/**
* Index interface.
*
* @param Content $content
* @return Content
*/
public function index(Content $content)
{
$grid = $this->grid()->render();
return $content
->header('个人会员')
->description('列表')
->body(view('admin.recycle.member')->with('grid', $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));
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(Member::withTrashed()->findOrFail($id));
$show->id('ID');
$show->username('用户名');
$show->mobile('mobile', '手机号');
$show->email('email', '邮箱');
$show->image('avatars', '用户头像');
$show->reg_address('注册地址');
if(get_subsite_open()){
$show->subsite_id('分站')->as(function ($subsite_id) {
if ($subsite_id) {
$Subsite = Subsite::find($subsite_id);
return isset($Subsite->sitename) ? $Subsite->sitename : '未知';
}
return '总站';
});
}
$show->created_at('创建时间');
$show->deleted_at('删除时间');
return $show;
}
/**
* Make a grid builder.
*
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new Member);
$grid->model()->onlyTrashed()->orderBy('deleted_at', 'DESC');
$grid->id('ID');
$grid->username('用户名')->width(200);;
$grid->mobile('手机')->width(100);
$grid->email('Email')->width(150);
if(get_subsite_open()){
$grid->subsite_id('所属分站')->display(function ($subsite_id) {
if ($subsite_id) {
$Subsite = Subsite::find($subsite_id);
return isset($Subsite->sitename) ? $Subsite->sitename : '未知';
}
return '总站';
})->width(150);
}
$grid->reg_time('注册时间')->display(function ($reg_time) {
return date('Y-m-d H:i:s', $reg_time);
})->sortable();
$grid->deleted_at('删除时间')->display(function ($deleted_at) {
return $deleted_at;
})->sortable();
$grid->actions(function ($actions) {
if (userAdmin::user()->can('recycle_person_delete')) {
$actions->disableDelete(false);
}
if (userAdmin::user()->can('recycle_person_restore')) {
$actions->append("");
}
});
if (userAdmin::user()->can('recycle_person_restore') || userAdmin::user()->can('recycle_person_delete')) {
$grid->tools(function ($tools) {
if (userAdmin::user()->can('recycle_person_restore')) {
$but = <<
EOT;
$tools->append($but);
}
if (userAdmin::user()->can('recycle_person_delete')) {
$tools->batch(function ($batch) {
$batch->disableDelete(false);
});
}
});
} else {
$grid->disableRowSelector();
}
$grid->filter(function ($filter) {
$filter->column(1/2, function ($filter) {
$filter->equal('id', '会员ID');
$filter->like('username', '用户名');
$filter->between('created_at', '注册时间')->datetime();
});
$filter->column(1/2, function ($filter) {
$filter->like('email', 'Email');
$filter->like('mobile', '手机号码');
});
});
return $grid;
}
//还原个人。---meminfo需要加软删除。
public function restore($id)
{
$ids = array();
if ($id) {
$ids = explode(',', $id);
}
if (!$ids) {
return admin_toastr('请勾选需要还原的个人会员', 'error');
}
\DB::beginTransaction();
try {
Member::whereIn('id', $ids)->restore();
MemberInfo::whereIn('uid', $ids)->restore();
Resume::whereIn('uid', $ids)->restore();
$data = [
'status' => true,
'message' => '还原成功!',
];
$condition = [['whereIn','uid', $ids]];
event_search_update(Resume::class, $condition, 'update');
\DB::commit();
return response()->json($data);
} catch (\Exception $e) {
\DB::rollback();
$data = [
'status' => false,
'message' => $e->getMessage(),
];
return response()->json($data);
}
}
public function destroy($id)
{
$ids = array();
if ($id) {
$ids = explode(',', $id);
}
if (!$ids) {
return admin_toastr('请勾选需要删除的个人会员', 'error');
}
\DB::beginTransaction();
try {
Member::withTrashed()->whereIn('id', $ids)->forceDelete();
MemberInfo::withTrashed()->whereIn('uid', $ids)->forceDelete();
Resume::withTrashed()->whereIn('uid', $ids)->forceDelete();
$data = [
'status' => true,
'message' => '删除成功!',
];
\DB::commit();
return response()->json($data);
} catch (\Exception $e) {
\DB::rollback();
$data = [
'status' => false,
'message' => '删除失败!',
];
return response()->json($data);
}
}
}