header('顾问管理')
->description('列表')
->body(view('admin.company.consultant')->with(['gird'=>$this->grid()->render()]));
}
/**
* 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)
{
return $content
->header('顾问管理')
->description('编辑')
->body($this->editForm($id)->edit($id));
}
/**
* Create interface.
*
* @param Content $content
* @return Content
*/
public function create(Content $content)
{
return $content
->header('顾问管理')
->description('创建')
->body($this->createForm());
}
/**
* Make a grid builder.
*
* @param $type_id
* @return Grid
*/
protected function grid()
{
$grid = new Grid(new Consultant);
$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->name('顾问姓名')->width(200);
$grid->mobile('顾问手机')->width(200);
$grid->qq('顾问QQ')->width(200);
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->created_at('创建时间')->sortable();
$grid->updated_at('更新时间')->sortable();
$grid->actions(function ($actions) use ($grid) {
if (Admin::user()->can('company_consultant_set')) {
$url=route("consultant.list",['id'=>$actions->row['id']]);
$actions->prepend("");
}
if (Admin::user()->can('company_consultant_list_edit')) {
$actions->disableEdit(false);
}
if (Admin::user()->can('company_consultant_list_delete')) {
$actions->disableDelete(false);
}
$actions->disableView(true);
});
if (Admin::user()->can('company_consultant_list_delete')) {
$grid->tools(function ($tools) {
$tools->batch(function ($batch) {
$batch->disableDelete(false);
});
});
$grid->disableRowSelector(false);
}
if (Admin::user()->can('company_consultant_list_create')) {
$grid->disableCreateButton(false);
}
$grid->disableFilter();
return $grid;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function editForm($id)
{
$form = new Form(new Consultant);
$Con = Consultant::whereHas('adminUser')->find($id);
$form->text('name', '姓名')->rules([
'required', new ChineseUsernameRule()
])->setWidth(3)->setMustMark();
$form->mobile('mobile', '手机')->rules([
'required', new MobileRule()
])->setWidth(4)->setMustMark();
$form->text('telephone', '电话')->setWidth(3);
$form->text('qq', 'QQ')->rules([
'required', new QqRule()
])->setWidth(3)->setMustMark();
$no_user = AdminUser::whereDoesntHave('consultant')->pluck('username','id')->toArray();
$default = 0;
if($Con){
$no_user[$Con->adminUser->id] = $Con->adminUser->username;
$default = $Con->adminUser->id;
}
$form->select('admin_users_id','绑定用户')->options($no_user)->default($default)->setWidth(3);
$form->image('avatar', '照片')->setWidth(3);
$form->saving(function (Form $form){
if(!$form->admin_users_id){
$form->admin_users_id=0;
}
});
if (get_subsite_open()) {
if (get_subsite_id() == 0) {
//添加所属分站
$form->radio('subsite_id', '所属分站')
->options(array_column(get_all_subsite(), 'sitename', 'id'))
->default(0)->setWidth(6);
}
}
return $form;
}
protected function createForm()
{
$form = new Form(new Consultant);
$form->text('name', '姓名')->rules([
'required', new ChineseUsernameRule()
])->setWidth(3)->setMustMark();
$form->mobile('mobile', '手机')->rules([
'required', new MobileRule()
])->setWidth(4)->setMustMark();
$form->text('telephone', '电话')->setWidth(3);
$form->text('qq', 'QQ')->rules([
'required', new QqRule()
])->setWidth(3)->setMustMark();
$form->select('admin_users_id','绑定用户')->options(AdminUser::whereDoesntHave('consultant')->pluck('username','id'))->setWidth(3);
$form->image('avatar', '照片')->setWidth(3);
$form->saving(function (Form $form){
if(!$form->admin_users_id){
$form->admin_users_id=0;
}
});
if (get_subsite_open()) {
if (get_subsite_id() == 0) {
//添加所属分站
$form->radio('subsite_id', '所属分站')->options(array_column(get_all_subsite(), 'sitename', 'id'))->default(0)->setWidth(6);
}else{
$form->hidden('subsite_id')->default(get_subsite_id());
}
}
return $form;
}
/**
* Store a newly created resource in storage.
*
* @return mixed
*/
public function store()
{
return $this->createForm()->store();
}
public function update($id)
{
return $this->editForm($id)->update($id);
}
public function destroy($id)
{
if (!$id) {
$data = [
'status' => false,
'message' => '顾问不存在!!',
];
return response()->json($data);
}
$id_arr = explode(',', $id);
\DB::beginTransaction();
try {
Consultant::destroy($id_arr);
CompanyConsultant::whereIn('consultant_id', $id_arr)->delete();
$data = [
'status' => true,
'message' => '删除成功!',
];
\DB::commit();
return response()->json($data);
} catch (\Exception $e) {
\DB::rollback();
$data = [
'status' => false,
'message' => '删除失败!',
];
return response()->json($data);
}
}
/**
* Make a show builder.
*
* @param mixed $id
* @return Show
*/
protected function detail($id)
{
$show = new Show(Consultant::findOrFail($id));
return $show;
}
/**
* Make a form builder.
*
* @return Form
*/
protected function form()
{
$form = new Form(new Consultant);
$form->display('ID');
$form->switch('status');
$form->text('points', '积分');
$form->text('times', '每天赠送积分上限');
$form->display('Created at');
$form->display('Updated at');
return $form;
}
public function consultantList(Content $content)
{
$username = '';
$qq = '';
$id = request()->id;
if(empty($id)){
admin_toastr('顾问不存在!', 'error');
return back();
}
$grid = new Grid(new CompanyConsultant);
$grid->model()->whereHas('companys')->whereHas('consultants')->where('consultant_id', $id)->orderBy('id', 'desc');
$grid->column('companys.username','用户名')->display(function ($username){
return $username ? $username : '未填写';
});
$grid->column('companys.companyname','企业信息')->display(function ($companyname){
if($companyname){
return ''.$companyname.'';
}else{
return '未填写';
}
});
$grid->column('companys.audit','审核状态')->display(function ($audit){
if ($audit==3) {
return'审核未通过';
} elseif ($audit==1) {
return'审核通过';
} else {
return'等待审核';
}
});
$grid->column('companys.mobile','手机')->display(function ($mobile){
return $mobile ? $mobile : '未填写';
});
$grid->column('companys.email','邮箱')->display(function ($email){
return $email ? $email : '未填写';
});
$grid->column('companys.reg_time','注册时间')->display(function ($reg_time){
return $reg_time ? date('Y-m-d H:i:s', $reg_time) : '';
})->sortable();
$grid->column('companys.last_login_time','最后登录时间')->display(function ($last_login_time){
return $last_login_time ? date('Y-m-d H:i:s', $last_login_time) : '';
})->sortable();
$Consultant = Consultant::find($id);
if($Consultant){
$username = $Consultant->name;
$qq = $Consultant->qq;
}
$grid->filter(function ($filter) {
$filter->column(1/2, function ($filter) {
$filter->like('companys.username', '用户名');
$filter->like('companys.companyname', '企业信息');
});
$filter->column(1/2, function ($filter) {
$filter->like('companys.mobile', '手机');
$filter->like('companys.email', '邮箱');
});
});
$grid->actions(function ($actions){
$actions->disableView();
if (Admin::user()->can('company_consultant_reset')) {
$actions->append("");
}
});
$grid->tools(function ($tools){
if (Admin::user()->can('company_consultant_reset')) {
$but = <<
EOT;
$tools->append($but);
}
});
return $content
->header('顾问列表')
->description('顾问姓名:'.$username.',顾问QQ:'.$qq)
->body(view('admin.company.consultant_list')->with(['gird'=>$grid->render()]));
}
public function consultantReset(Request $request)
{
$id = $request->id;
$arr_id = array_filter(explode(',', $id));
if(empty($arr_id)){
return response()->json(['code'=>0,'info'=>'请勾选需要重置的会员']);
}
$result = CompanyConsultant::destroy($arr_id);
if($result){
return response()->json(['code'=>1,'info'=>'重置成功!']);
}else{
return response()->json(['code'=>0,'info'=>'重置失败!']);
}
}
}