| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010 | 
							- <?php
 
- namespace App\Admin\Controllers\Person;
 
- use App\Admin\Exports\Person\MemberExport;
 
- use App\Http\Controllers\Controller;
 
- use App\Models\CategoryMajor;
 
- use App\Models\CompanyInterView;
 
- use App\Models\Member;
 
- use App\Models\MemberInfo;
 
- use App\Models\MembersHandsel;
 
- use App\Models\MembersLog;
 
- use App\Models\Order;
 
- use App\Models\PersonalJobsApply;
 
- use App\Models\PersonalServiceStickLog;
 
- use App\Models\Resume;
 
- use App\Models\ResumeImg;
 
- use App\Models\SmsRule;
 
- use App\Models\Subsite;
 
- use App\Models\SubsiteResume;
 
- use App\Models\Category;
 
- use App\Models\CategoryDistrict;
 
- use App\Services\Common\SmsService;
 
- use Encore\Admin\Auth\Permission;
 
- use Encore\Admin\Controllers\HasResourceActions;
 
- use Encore\Admin\Facades\Admin;
 
- use Encore\Admin\Form;
 
- use Encore\Admin\Grid;
 
- use Encore\Admin\Layout\Content;
 
- use Encore\Admin\Show;
 
- use Encore\Admin\Widgets\Tab;
 
- use Illuminate\Http\Request;
 
- use Illuminate\Support\Facades\Cache;
 
- use Illuminate\Validation\Rule;
 
- use App\Admin\Extensions\Form\ValidateForm;
 
- use Illuminate\Support\Facades\DB;
 
- class MemberController extends Controller
 
- {
 
-     use HasResourceActions;
 
-     protected $smsService;
 
-     public function __construct(SmsService $smsService)
 
-     {
 
-         $this->smsService = $smsService;
 
-     }
 
-     
 
-     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));
 
-     }
 
-     
 
-     public function show($id, Content $content)
 
-     {
 
-         return $content
 
-             ->header('个人会员')
 
-             ->description('详情')
 
-             ->body($this->detail($id));
 
-     }
 
-     
 
-     public function edit($id, Content $content)
 
-     {
 
-         Permission::check('person_member_edit');
 
-         return $content
 
-             ->header('个人会员')
 
-             ->description('编辑')
 
-             ->body($this->editForm($id)->edit($id));
 
-     }
 
-     
 
-     public function create(Content $content)
 
-     {
 
-         Permission::check('person_member_add');
 
-         return $content
 
-             ->header('个人会员')
 
-             ->description('新增')
 
-             ->body($this->form());
 
-     }
 
-     
 
-     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(" <button class='btn btn-primary btn-xs business' id=".$actions->row['id'].">业务</button>");
 
-             }
 
-             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
 
- <div class="btn-group" data-toggle="buttons">
 
-     <label class="btn btn-google btn-sm" id="update_password" title="重置密码">
 
-         <i class="fa fa-audio-description"></i>
 
-         <input type="radio" class="user-gender">重置密码
 
-     </label>
 
- </div>
 
- EOT;
 
-                 $tools->append($but);
 
-             }
 
-         });
 
-         if (Admin::user()->can('person_member_export')) {
 
-             $grid->disableExport(false); 
 
-             $grid->exporter(new MemberExport()); 
 
-         }
 
-         $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;
 
-     }
 
-     
 
-     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;
 
-     }
 
-     
 
-     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->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('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('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->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();
 
-         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->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();
 
-             } 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('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);
 
-                 
 
-             } 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('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();
 
-             }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->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();
 
-         $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);
 
-     }
 
-     
 
-     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('<div>重置的新密码为123456,是否重置?</div>');
 
-         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(123456)]);
 
-         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 "<span style='color:green;'>+".$points."</span>";
 
-                         } else {
 
-                             return "<span style='color:red;'>-".$points."</span>";
 
-                         }
 
-                     })->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]);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |