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); } } }