smsService = $smsService; } /** * Index interface. * * @param Content $content * @return Content */ public function index(Content $content) { Permission::check('person_member'); $grid=$this->grid()->render(); return $content ->header('个人会员') ->description('列表') ->body(view('admin.members.index')->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)); } /** * Edit interface. * * @param mixed $id * @param Content $content * @return Content */ public function edit($id, Content $content) { Permission::check('person_member_edit'); return $content ->header('个人会员') ->description('编辑') ->body($this->editForm($id)->edit($id)); } /** * Create interface. * * @param Content $content * @return Content */ public function create(Content $content) { Permission::check('person_member_add'); return $content ->header('个人会员') ->description('新增') ->body($this->form()); } /** * Make a grid builder. * * @return Grid */ protected function grid() { $grid = new Grid(new Member); $grid->model() /*->when(get_subsite_id()>0, function ($query) { $query->where('subsite_id', get_subsite_id()); $query->whereHas('subsite',function ($query){ $query->where('effective', 1); }); })*/ ->orderBy('id', '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->last_login_time('最后登录时间')->display(function ($last_login_time) { return $last_login_time ? date('Y-m-d H:i:s', $last_login_time) : ''; })->sortable(); if (Admin::user()->can('person_member_add')) { $grid->disableCreateButton(false); } $grid->actions(function ($actions) { if (Admin::user()->can('perosn_business')) { $actions->append(" "); } if (Admin::user()->can('person_member_delete')) { $actions->disableDelete(false); } if (Admin::user()->can('person_member_edit')) { $actions->disableEdit(false); } }); $grid->tools(function ($tools) { if (Admin::user()->can('person_member_reset_password')) { $but = << EOT; $tools->append($but); } }); if (Admin::user()->can('person_member_export')) { $grid->disableExport(false); //显示导出按钮 $grid->exporter(new MemberExport()); //传入自己在第1步创建的导出类 } $grid->filter(function ($filter) { $filter->column(1/2, function ($filter) { $filter->equal('id', '会员ID'); $filter->like('username', '用户名'); $filter->like('memberInfo.id_card', '身份证'); $filter->between('created_at', '注册时间')->datetime(); }); $filter->column(1/2, function ($filter) { $filter->like('email', 'Email'); $filter->like('mobile', '手机号码'); if(get_subsite_id()==0 && get_subsite_open()){ $filter->equal('subsite_id', '所属分站')->select(array_column(get_all_subsite(), 'sitename', 'id')); } }); }); return $grid; } /** * Make a show builder. * * @param mixed $id * @return Show */ protected function detail($id) { $show = new Show(Member::findOrFail($id)); $show->username('用户名'); $show->mobile('mobile', '手机号'); $show->email('email', '邮箱'); $show->image('avatars', '用户头像'); $show->reg_address('注册地址'); $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('创建时间'); return $show; } /** * Make a form builder. * * @return Form */ protected function form() { $form = new ValidateForm(new Member); $form->tab('账号资料',function ($form) { $form->text('username', '用户名')->rules('required|between:6,16|regex:/^[a-zA-Z][a-zA-Z0-9]{6,16}+$/|unique:members', [ 'required' => '会员名为必填信息', 'between' => '会员名长度为6~16个字符', 'regex' => '会员名为字母或字母+数字', 'unique' => '会员名已存在' ])->setWidth(3)->setMustMark(); $form->mobile('mobile', '手机号')->rules('required|unique:members', [ 'required' => '手机号为必填信息', 'unique' => '手机号已存在', ])->setWidth(3)->setMustMark(); $form->radio('mobile_audit', '手机认证')->options([1 => '认证通过', 0 => '未认证'])->default(0); $form->email('email', 'Email')->rules('required|unique:members', [ 'required' => 'Email为必填信息', 'unique' => 'Email已存在' ])->setWidth(3)->setMustMark(); $form->radio('email_audit', '邮箱认证')->options([1 => '认证通过', 0 => '未认证'])->default(0); $form->password('password', '密码')->rules('required|confirmed|between:6,16', [ 'required' => '密码为必填信息', 'between' => '密码长度要求为6~16' ])->setWidth(3)->setMustMark(); $form->password('password_confirmation', '确认密码')->rules('required|between:6,16')->setWidth(3)->setMustMark(); $form->radio('display_images', '是否显示头像')->options([1 => '显示', 2 => '隐藏'])->default(1); $form->image('avatars', '用户头像')->setWidth(4); })->tab('基本资料',function ($form) { $form->radio('display_name', '是否公开姓名')->setWidth(3)->options([1 => '公开', 3 => '隐藏'])->default(config('aix.personal_set.per_set.per_set.resume_display_default'))->setMustMark(); $form->text('realname', '姓名')->setWidth(3)->rules('required', [ 'required' => '姓名为必填信息' ])->setMustMark(); $form->radio('sex', '性别')->setWidth(3)->options([1 => '男', 2 => '女'])->default(1)->setMustMark(); $birthday = []; $year = date('Y')-16; for($i=1950;$i<$year;$i++){ $birthday[$i] = $i; } $form->select('birthday', '出生年份')->setWidth(3)->options($birthday)->default(1990)->setMustMark(); // $form->select('card_t_cn', '证件类型')->setWidth(3)->options(Category::where('alias','AIX_card_type')->pluck('demand','id'))->rules('required',[ // 'required'=>'请选择证件类型' // ])->setMustMark(); $form->text('id_card', '证件号')->setWidth(3)->rules('required|unique:member_infos', [ 'required' => '证件号为必填信息', 'unique' => '该证件号已存在' ])->setMustMark(); $form->select('province', '居住地省份')->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择居住地省份' ])->setMustMark(); $form->select('city', '居住地城市')->setWidth(3)->load('area', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择居住地城市' ])->setMustMark(); // $form->select('area', '居住地县区')->setWidth(3)->rules('required', [ // 'required'=>'请选择居住地县区' // ])->setMustMark(); $form->select('education', '最高学历')->setWidth(3)->options(Category::where('alias','AIX_education')->pluck('demand','id'))->rules('required', [ 'required'=>'请选择最高学历' ])->setMustMark(); $form->select('major1', '专业方向')->options(CategoryMajor::where('parent_id',0)->pluck('name', 'id'))->setWidth(3)->load('major2', admin_base_path("/sys/category/categoryMaj")); // $form->select('major2', '详细专业')->setWidth(3); $form->select('experience', '工作经验')->options(Category::where('alias','AIX_experience')->pluck('demand','id'))->setWidth(3)->rules('required', [ 'required'=>'请选择工作经验' ])->setMustMark(); })->tab('联系方式',function ($form) { $form->select('province1', '籍贯所属省份')->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city1', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择籍贯所属省份' ])->setMustMark(); $form->select('city1', '籍贯所属城市')->setWidth(3)->load('area1', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择籍贯所属城市' ])->setMustMark(); // $form->select('area1', '籍贯所属县区')->setWidth(3)->rules('required', [ // 'required'=>'请选择相籍贯所属县区' // ])->setMustMark(); $form->number('height', '身高')->setWidth(3); $form->select('marriage', '婚姻状况')->options(['1'=>'未婚','2'=>'已婚','3'=>'保密'])->setWidth(3); $form->number('qq', 'QQ')->setWidth(3); $form->text('weixin', '微信')->setWidth(3); $form->hidden('subsite_id', '所属分站')->default(get_subsite_id()); }); return $form; } public function store(Request $request) { $data = $this->form()->getValidateInput();//这个方法会调用Form自带的验证和表单处理(文件上传等)验证错误会直接返回错误.不需要判断; if($data['password'] != $data['password_confirmation']) { admin_toastr('两次密码输入不同', 'error'); return back(); } $member_data = [ 'username' => $data['username'], 'password' => bcrypt($data['password']), 'mobile' => $data['mobile'], 'mobile_audit' => $data['mobile_audit'], 'email' => $data['email'], 'email_audit' => $data['email_audit'], 'avatars' => $data['avatars'], 'subsite_id' => $data['subsite_id'], 'reg_time' => time(), 'reg_ip' => ip2long('127.0.0.1'), 'last_login_ip' => ip2long('127.0.0.1'), 'reg_address' => '本机地址', 'last_login_time' => time(), 'status' => 1, ]; $member_info_data = [ 'display_name'=>$data['display_name'], 'realname'=>$data['realname'], 'sex'=>$data['sex'], 'sex_cn'=>$data['sex']==1?'男':'女', 'birthday'=>$data['birthday'], 'card_t_cn'=>306, 'id_card'=>$data['id_card'], 'residence'=>$data['province'].'.'.$data['city'].'.0', 'education'=>$data['education'], 'education_cn'=>get_category($data['education']), 'experience'=>$data['experience'], 'experience_cn'=>get_category($data['experience']), 'phone'=>$data['mobile'], 'email'=>$data['email'], 'height'=>$data['height'], 'qq'=>$data['qq'], 'weixin'=>$data['weixin'], 'marriage'=>$data['marriage'], 'images'=>$data['avatars'], 'marriage_cn'=>$data['marriage']==1?'未婚':($data['marriage']==2?'已婚':'保密'), 'householdaddress'=>$data['province1'].'.'.$data['city1'].'.0', ]; $member_info_data['residence_cn'] =get_district_cn($member_info_data['residence']); $member_info_data['householdaddress_cn'] =get_district_cn($member_info_data['householdaddress']); DB::beginTransaction(); try { $member = Member::create($member_data); if(!$member){ throw new \Exception('新增失败'); } $member_info_data['uid'] = $member->id; if(!MemberInfo::create($member_info_data)){ throw new \Exception('新增失败'); } $this->memberSms('sms_quick_register', $data['mobile'],$data['username'], $data['password']); DB::commit(); admin_toastr('新增成功', 'success'); } catch (\Exception $e) { DB::rollback(); admin_toastr($e->getMessage(), 'error'); return back(); } return redirect(route("members.index")); } protected function editForm($id) { $subsiteArr = []; $form = new ValidateForm(new Member); $user = Member::findOrFail($id); $userinfo = MemberInfo::where('uid',$id)->first(); if(get_subsite_open()){ $subsiteArr = array_column(get_all_subsite(), 'sitename', 'id'); } $form->tab('账号资料',function ($form) use($user,$id ,$subsiteArr){ $form->display('reg_time', '注册时间')->setWidth(2)->with(function ($reg_time) { return date('Y-m-d H:i:s', $reg_time); }); $form->display('reg_ip', '注册IP')->setWidth(2)->with(function ($reg_ip) { return long2ip($reg_ip); }); $form->display('last_login_time', '最后登录时间')->setWidth(2)->with(function ($last_login_time) { return $last_login_time ? date('Y-m-d H:i:s', $last_login_time) : ''; }); $form->display('last_login_ip', '最后登录IP')->setWidth(2)->with(function ($last_login_ip) { return long2ip($last_login_ip); }); $form->display('reg_address', '注册地址')->setWidth(4); $form->html('基本信息'); $form->text('username', '用户名')->rules( [ 'required', 'between:6,16|regex:/^[a-zA-Z][a-zA-Z0-9]{6,16}+$/', Rule::unique('members')->ignore($id), ], [ 'required' => '会员名为必填信息', 'between' => '会员名长度为6~16个字符', 'regex' => '会员名为字母或字母+数字', 'unique' => '会员名已存在' ] )->setWidth(3)->setMustMark(); $form->mobile('mobile', '手机号')->rules( [ 'required', Rule::unique('members')->ignore($id), ], [ 'required' => '手机号码为必填信息', 'unique' => '手机号已存在', ] )->setWidth(4)->setMustMark(); $form->radio('mobile_audit','手机认证')->options([1=>'认证通过',0=>'未认证'])->default($user->mobile_audit); $form->email('email', 'Email')->rules( [ 'required', 'regex:/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/', Rule::unique('members')->ignore($id), ], [ 'required' => 'email为必填信息', 'regex' => 'email格式不正确', 'unique' => 'email已存在', ] )->setWidth(3)->setMustMark(); $form->radio('email_audit','邮箱认证')->options([1=>'认证通过',0=>'未认证'])->default($user->email_audit); $form->switch('status', '用户状态'); if (get_subsite_id()==0 && get_subsite_open()) { $form->radio('subsite_id', '分站')->options($subsiteArr)->default($user->subsite_id); } else { $form->hidden('subsite_id'); } })->tab('基本资料',function ($form) use ($id,$userinfo){ $form->radio('display_name', '是否公开姓名')->setWidth(3)->options([1 => '公开', 3 => '隐藏'])->default(isset($userinfo->display_name) ? $userinfo->display_name : '')->rules('required', [ 'required' => '请选择是否公开姓名' ])->setMustMark(); $form->text('realname', '姓名')->setWidth(3)->default(isset($userinfo->realname) ? $userinfo->realname : '')->rules('required', [ 'required' => '姓名为必填信息' ])->setMustMark(); $form->radio('sex', '性别')->setWidth(3)->options([1 => '男', 2 => '女'])->default(isset($userinfo->sex) ? $userinfo->sex : '')->rules('required', [ 'required' => '请选择性别' ])->setMustMark(); $birthday = []; $year = date('Y')-16; for($i=1950;$i<$year;$i++){ $birthday[$i] = $i; } $form->select('birthday', '出生年份')->setWidth(3)->options($birthday)->default(isset($userinfo->birthday) ? $userinfo->birthday : '')->setMustMark(); // $form->select('card_t_cn', '证件类型')->setWidth(3)->options(Category::where('alias','AIX_card_type')->pluck('demand','id'))->rules('required',[ // 'required'=>'请选择证件类型' // ])->default(isset($userinfo->card_t_cn) ? $userinfo->card_t_cn : '')->setMustMark(); $form->text('id_card', '证件号')->setWidth(3)->rules( [ 'required', Rule::unique('member_infos')->ignore($id,'uid'), ], [ 'required' => '证件号为必填信息', 'unique' => '证件号已存在', ] )->default(isset($userinfo->id_card) ? $userinfo->id_card : '')->setMustMark(); if (isset($userinfo->residence)) { $residenceArr = string_to_array('.', $userinfo->residence); } if(isset($residenceArr)) { $form->select('province', '居住地省份')->setWidth(3)->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择居住地省份' ])->default(isset($residenceArr[0])?$residenceArr[0]:0)->setMustMark(); $form->select('city', '居住地城市')->setWidth(3)->options(CategoryDistrict::categoryDis(isset($residenceArr[0])?$residenceArr[0]:0))->load('area', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择居住地城市' ])->default(isset($residenceArr[1])?$residenceArr[1]:0)->setMustMark(); // $form->select('area', '居住地县区')->setWidth(3)->options(CategoryDistrict::categoryDis(isset($residenceArr[1])?$residenceArr[1]:0))->rules('required', [ // 'required'=>'请选择居住地县区' // ])->default(isset($residenceArr[2])?$residenceArr[2]:0)->setMustMark(); } else { $form->select('province', '居住地省份')->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择居住地省份' ])->setMustMark(); $form->select('city', '居住地城市')->setWidth(3)->load('area', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择居住地城市' ])->setMustMark(); // $form->select('area', '居住地县区')->setWidth(3)->rules('required', [ // 'required'=>'请选择居住地县区' // ])->setMustMark(); } $form->select('education', '最高学历')->setWidth(3)->options(Category::where('alias','AIX_education')->pluck('demand','id'))->rules('required', [ 'required'=>'请选择最高学历' ])->default(isset($userinfo->education) ? $userinfo->education : '')->setMustMark(); if(isset($userinfo->major)){ $parent_id = CategoryMajor::where('id',$userinfo->major)->value('parent_id'); $form->select('major1', '专业方向')->options(CategoryMajor::where('parent_id',0)->pluck('name', 'id'))->setWidth(3)->load('major2', admin_base_path("/sys/category/categoryMaj"))->default($parent_id); //$form->select('major2', '详细专业')->setWidth(3)->options(CategoryMajor::where('parent_id',$parent_id)->pluck('name', 'id'))->default($userinfo->major); } else { $form->select('major1', '专业方向')->options(CategoryMajor::where('parent_id',0)->pluck('name', 'id'))->setWidth(3)->load('major2', admin_base_path("/sys/category/categoryMaj")); //$form->select('major2', '详细专业')->setWidth(3); } $form->select('experience', '工作经验')->options(Category::where('alias','AIX_experience')->pluck('demand','id'))->setWidth(3)->rules('required', [ 'required'=>'请选择工作经验' ])->default(isset($userinfo->experience) ? $userinfo->experience : '')->setMustMark(); })->tab('联系方式',function ($form) use ($userinfo){ if(isset($userinfo->householdaddress)) { $householdaddressArr = string_to_array('.', $userinfo->householdaddress); } if(isset($householdaddressArr)) { $form->select('province1', '籍贯所属省份')->setWidth(3)->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city1', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择籍贯所属省份' ])->default(isset($householdaddressArr[0])?$householdaddressArr[0]:0)->setMustMark(); $form->select('city1', '籍贯所属城市')->setWidth(3)->options(CategoryDistrict::categoryDis(isset($householdaddressArr[0])?$householdaddressArr[0]:0))->load('area1', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择籍贯所属城市' ])->default(isset($householdaddressArr[1])?$householdaddressArr[1]:0)->setMustMark(); // $form->select('area1', '籍贯所属县区')->setWidth(3)->options(CategoryDistrict::categoryDis(isset($householdaddressArr[1])?$householdaddressArr[1]:0))->rules('required', [ // 'required'=>'请选择相籍贯所属县区' // ])->default(isset($householdaddressArr[2])?$householdaddressArr[2]:0)->setMustMark(); }else { $form->select('province1', '籍贯所属省份')->options(CategoryDistrict::List()->pluck('name', 'id'))->setWidth(3)->load('city1', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择籍贯所属省份' ])->setMustMark(); $form->select('city1', '籍贯所属城市')->setWidth(3)->load('area1', admin_base_path("/sys/category/categoryDis"))->rules('required', [ 'required'=>'请选择籍贯所属城市' ])->setMustMark(); // $form->select('area1', '籍贯所属县区')->setWidth(3)->rules('required', [ // 'required'=>'请选择相籍贯所属县区' // ])->setMustMark(); } $form->number('height', '身高')->setWidth(3)->default(isset($userinfo->height) ? $userinfo->height : ''); $form->select('marriage', '婚姻状况')->options(['1'=>'未婚','2'=>'已婚','3'=>'保密'])->setWidth(3)->default(isset($userinfo->marriage) ? $userinfo->marriage : ''); $form->number('qq', 'QQ')->setWidth(3)->default(isset($userinfo->qq) ? $userinfo->qq : ''); $form->text('weixin', '微信')->setWidth(3)->default(isset($userinfo->weixin) ? $userinfo->weixin : ''); }); return $form; } public function update($id) { $data = $this->editForm($id)->getValidateInput();//这个方法会调用Form自带的验证和表单处理(文件上传等)验证错误会直接返回错误.不需要判断; $member_data = [ 'username' => $data['username'], 'mobile' => $data['mobile'], 'mobile_audit' => $data['mobile_audit'], 'email' => $data['email'], 'email_audit' => $data['email_audit'], 'subsite_id' => $data['subsite_id'], 'reg_time' => time(), 'reg_ip' => ip2long('127.0.0.1'), 'last_login_ip' => ip2long('127.0.0.1'), 'reg_address' => '本机地址', 'last_login_time' => time(), 'status' => 1, ]; $member_info_data = [ 'display_name'=>$data['display_name'], 'realname'=>$data['realname'], 'sex'=>$data['sex'], 'sex_cn'=>$data['sex']==1?'男':'女', 'birthday'=>$data['birthday'], 'card_t_cn'=>306, 'id_card'=>$data['id_card'], 'residence'=>$data['province'].'.'.$data['city'].'.0', 'education'=>$data['education'], 'education_cn'=>get_category($data['education']), 'experience'=>$data['experience'], 'experience_cn'=>get_category($data['experience']), 'phone'=>$data['mobile'], 'email'=>$data['email'], 'height'=>$data['height'], 'qq'=>$data['qq'], 'weixin'=>$data['weixin'], 'marriage'=>$data['marriage'], 'marriage_cn'=>$data['marriage']==1?'未婚':($data['marriage']==2?'已婚':'保密'), 'householdaddress'=>$data['province1'].'.'.$data['city1'].'.0', ]; DB::beginTransaction(); try { if (!Member::where('id', $id)->update($member_data)) { throw new \Exception('编辑失败'); } if(MemberInfo::where('uid', $id)->first()) { if (!MemberInfo::where('uid', $id)->update($member_info_data)) { throw new \Exception('编辑失败'); } }else { $member_info_data['uid'] = $id; if (!MemberInfo::create($member_info_data)) { throw new \Exception('编辑失败'); } } $subsite_id =$data['subsite_id']; if ($subsite_id!==null) { $resume = Resume::where('uid', $id)->select('id', 'subsite_id')->get()->toArray(); if (!empty($resume)) { $resume_id = array_column($resume, 'id'); $subsite_id_arr = array_unique(array_column($resume, 'subsite_id')); Resume::whereIn('id', $resume_id)->update(['subsite_id'=>$subsite_id]); event_search_update(Resume::class, implode(',', $resume_id), 'update'); $SubsiteResume = SubsiteResume::whereIn('resume_id', $resume_id)->where('subsite_id', $subsite_id)->select('id')->get()->toArray(); if ($SubsiteResume) { SubsiteResume::destroy(array_column($SubsiteResume, 'id')); } SubsiteResume::whereIn('subsite_id', $subsite_id_arr)->whereIn('resume_id', $resume_id)->update(['subsite_id'=>$subsite_id]); } event_search_update(Resume::class, [['where','uid', $id]], 'update'); } DB::commit(); admin_toastr('编辑成功', 'success'); } catch (\Exception $e) { DB::rollback(); admin_toastr($e->getMessage(), 'error'); return back(); } return redirect(route("members.index")); } public function destroy($id) { if (!$id) { $data = [ 'status' => false, 'message' => '会员信息不存在!!', ]; return response()->json($data); } $id_arr = explode(',', $id); \DB::beginTransaction(); try { Member::destroy($id_arr); MemberInfo::whereIn('uid', $id_arr)->delete(); Resume::whereIn('uid', $id_arr)->delete(); ResumeImg::whereIn('uid', $id_arr)->delete(); $data = [ 'status' => true, 'message' => '删除成功!', ]; $condition = [['whereIn','uid', $id_arr]]; event_search_update(Resume::class, $condition, 'delete'); \DB::commit(); return response()->json($data); } catch (\Exception $e) { \DB::rollback(); $data = [ 'status' => false, 'message' => '删除失败!', ]; return response()->json($data); } } public function manager($id) { $member = Member::findOrFail($id); if (!$member) { return false; } return redirect()->route('person.resume'); } public function managerInto($id) { $member = Member::findOrFail($id); if (!$member) { return false; } $key=uniqid(); Cache::put($key, $member, 1); $url=route('auth.thirdlogin.background', ['ticket' => $key])."?redirect_url=".urlencode(route('person.index')); return redirect($url); } /** * return json */ public function auditPassword(Request $request) { $id = $request->id; $form = new \Encore\Admin\Widgets\Form(); $form->action(route('admin.personal.auditPass')); $form->disableReset(); $form->hidden('id', 'ID')->default($id); $form->html('
重置的新密码为Aa123456,是否重置?
'); return json_encode(['html'=>$form->render(),'detail'=>'重置密码']); } public function auditPass(Request $request) { $id = $request->id; $arr = array_filter(explode(',', $id)); if (empty($arr)) { admin_toastr('数据异常', 'error'); return back(); } $result = Member::whereIn('id', $arr)->update(['password'=>\Hash::make('Aa123456')]); if ($result) { admin_toastr('重置成功', 'success'); } else { admin_toastr('重置失败', 'error'); } return back(); } public function userInfoTab(Content $content, Request $request) { $uid = $request->uid; $utype = 2; $type = $request->type; if (empty($uid) ) { admin_toastr('数据异常', 'error'); return back(); } $tab = new Tab(); $title = [ 'points'=>'积分管理', 'order'=>'充值/订单', 'subscribe'=>'简历推广', 'apply'=>'申请的职位', 'interview'=>'面试邀请', 'log'=>'会员日志', ]; foreach ($title as $key => $val) { switch ($key) { case 'points': $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(['uid'=>$uid,'utype'=>$utype])->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->disableTools(); $grid->disableActions(); $grid->setName($key); $grid->disableRowSelector(); $grid->setPaginatorBaseUrl($key); break; case 'order': $grid = new Grid(new Order); $grid ->model()->where(['uid'=>$uid,'utype'=>$utype]) ->when(get_subsite_id()>0, function ($querys) use ($utype) { if ($utype ==1) { $relations = 'companys'; } else { $relations = 'members'; } $querys->whereHas($relations, function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderBy('created_at', 'desc')->orderBy("is_pay", 'asc'); $grid->id('ID'); $grid->is_pay('支付状态')->display(function ($is_pay) { if ($is_pay == 1) { return '待付款'; } elseif ($is_pay == 2) { return "已付款"; } else { return '已取消'; } }); $grid->amount('金额')->width(150); if ($utype == 1) { $grid->column('companys.companyname', '企业名称')->width(200); } else { $grid->column('members.username', '会员名称')->width(200); } $grid->service_name('说明')->width(150);; if ($utype == 1) { $grid->column('companys.username', '企业会员')->width(200); } else { $grid->column('members.username', '个人会员')->width(200); } $grid->oid('订单号')->width(200); $grid->payment_cn('支付方式')->width(150); $grid->created_at('申请时间')->sortable(); $grid->disableTools(); $grid->disableActions(); $grid->setName($key); $grid->disableRowSelector(); $grid->setPaginatorBaseUrl($key); break; case 'subscribe': $grid = new Grid(new PersonalServiceStickLog); $grid->model()->where('resume_uid',$uid)->when(get_subsite_id()>0, function ($query) { $query->whereHas('resume', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderBy('created_at', 'DESC'); $grid->column('resume.fullname', '姓名')->width(200);; $grid->resume_uid('会员ID'); $grid->days('推广天数')->width(100); $grid->addtime('开始时间')->display(function ($addtime) { return date('Y-m-d H:i:s', $addtime); })->sortable(); $grid->endtime('结束时间')->display(function ($endtime) { return date('Y-m-d H:i:s', $endtime); })->sortable(); $grid->disableTools(); $grid->disableActions(); $grid->setName($key); $grid->disableRowSelector(); $grid->setPaginatorBaseUrl($key); break; case 'apply': $grid = new Grid(new PersonalJobsApply); $grid->model()->where('personal_uid',$uid)->when(get_subsite_id()>0, function ($query) { $query->whereHas('resumes', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderBy('id', 'desc'); $grid->id('ID'); $grid->jobs_name('职位名称')->width(200); $grid->company_name('公司名称')->width(200); $grid->resume_name('简历名称')->width(150); $grid->is_reply('反馈状态')->display(function ($is_reply) { switch ($is_reply) { case 1: $is_reply = '企业未查看'; break; case 2: $is_reply = '待反馈'; break; case 3: $is_reply = '合适'; break; case 4: $is_reply = '不合适'; break; case 5: $is_reply = '待定'; break; case 6: $is_reply = '未接通'; break; default: $is_reply = '企业未查看'; break; } return $is_reply; }); $grid->column('members.subsite_id', '所属分站')->display(function ($subsite_id) { if ($subsite_id) { $Subsite = Subsite::find($subsite_id); return isset($Subsite->sitename) ? $Subsite->sitename : '未知'; } return '总站'; })->width(150); $grid->created_at('申请时间')->sortable(); $grid->updated_at('更新时间')->sortable(); $grid->disableTools(); $grid->disableActions(); $grid->setName($key); $grid->disableRowSelector(); $grid->setPaginatorBaseUrl($key); break; case 'interview': $grid = new Grid(new CompanyInterView); $grid->model()->where('resume_uid',$uid)->when(get_subsite_id()>0, function ($query) { $query->whereHas('resumes', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderBy('id', 'desc'); $grid->id('ID'); $grid->jobs_name('职位名称')->width(200); $grid->company_name('公司名称')->width(200); $grid->resume_name('简历名称')->width(150); $grid->personal_look('查看状态')->display(function ($personal_look) { switch ($personal_look) { case 1: $personal_look = '未查看'; break; case 2: $personal_look = '已查看'; break; default: $personal_look = '未查看'; break; } return $personal_look; }); $grid->interview_time('邀请时间')->display(function ($interview_time) { return date('Y-m-d H:i:s', $interview_time); })->sortable(); $grid->column('members.subsite_id', '所属分站')->display(function ($subsite_id) { if ($subsite_id) { $Subsite = Subsite::find($subsite_id); return isset($Subsite->sitename) ? $Subsite->sitename : '未知'; } return '总站'; })->width(150); $grid->created_at('申请时间')->sortable(); $grid->updated_at('更新时间')->sortable(); $grid->disableTools(); $grid->disableActions(); $grid->setName($key); $grid->disableRowSelector(); $grid->setPaginatorBaseUrl($key); break; case 'log': $grid = new Grid(new MembersLog); $grid->model()->where(['log_uid'=>$uid,'log_utype'=>$utype])->when(get_subsite_id()>0, function ($query) { $query->whereHas('members', function ($query) { $query->where('subsite_id', get_subsite_id()); }); })->orderBy('id', 'desc'); $grid->id('ID'); $grid->log_username('用户名')->width(200); $grid->log_value('日志说明')->width(300); $grid->log_ip('ip')->display(function ($log_ip){ return long2ip($log_ip); })->width(150); $grid->log_address('登录地址')->width(150); $grid->log_utype('会员类型')->display(function ($log_utype) { if($log_utype==1){ return '企业'; }else{ return '个人'; } }); $grid->log_source('操作途径')->width(150); $grid->created_at('申请时间')->sortable(); $grid->updated_at('更新时间')->sortable(); $grid->disableTools(); $grid->disableActions(); $grid->setName($key); $grid->disableRowSelector(); $grid->setPaginatorBaseUrl($key); break; } $tab->add($val, view('admin.company.content')->with('contents', $grid), $type == $key); } return $content ->header('会员信息') ->description('列表') ->body($tab); } protected function memberSms($sms_id, $mobile, $username, $password) { $SmsRule = SmsRule::where('alias', $sms_id)->first(); if (isset($SmsRule->status) && !empty($SmsRule->status)) { if ($mobile) { $this->smsService->sendSms($mobile, $sms_id, ['username'=>$username,'password'=>$password]); } } } }