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