diff --git a/app/Admin/Controllers/User/IndexController.php b/app/Admin/Controllers/User/IndexController.php index 4b5b260..e717aac 100644 --- a/app/Admin/Controllers/User/IndexController.php +++ b/app/Admin/Controllers/User/IndexController.php @@ -1,301 +1,299 @@ - - * @Date : 2019/9/18 14:50 - * @return Grid - */ - protected function grid() - { - $user = Auth::guard('admin')->user(); - $grid = new Grid(new User); - - $grid->actions(function ($actions) use ($user) { - $actions->disableDelete(); - $actions->disableView(); - - if ($actions->row->identity_id == 1) { - $actions->add(new RefD3Key); - $actions->add(new ReCode); - $actions->add(new Callback); - } - - if ($actions->row->identity_id == 1 && $user->id == 1) { - $actions->add(new Profit); - } - }); - - $grid->tools(function (Grid\Tools $tools) { - // $tools->append(new UserImport); - }); - - $grid->model()->orderBy('id', 'desc'); - - $grid->quickSearch('username')->placeholder('登录账户'); - - $grid->filter(function ($filter) { - $filter->column(1 / 2, function ($filter) { - $filter->like('username', '登录账户'); - $filter->like('server_id', '渠道编号'); - $filter->like('outlet_id', '网点编号'); - $filter->like('PaOutletId', '平安网点id'); - $filter->between('created_at', '注册时间')->datetime(); - }); - $filter->column(1 / 2, function ($filter) { - $filter->like('info.nickname', '渠道/网点'); - $filter->like('server_key', '服务秘钥'); - $filter->equal('identity.identity_id', '用户身份')->select([ - ' ' => '全部', - '1' => '渠道商', - '2' => '网点', - ]); - $filter->equal('type', '所属项目')->select([ - ' ' => '全部', - 'pingan' => '平安券', - 'wo' => '沃支付', - ]); - }); - }); - - $grid->column('id', '#ID#'); - $grid->column('username', '登录账户'); - $grid->column('渠道编号')->display(function () { - return $this->server_id; - }); - $grid->column('网点编号')->display(function () { - return $this->outlet_id ?? '---'; - }); - - $grid->column('平安网点id')->display(function () { - return $this->PaOutletId ?? '---'; - }); - - $grid->column('所属项目')->display(function () { - return $this->type_text; - }); - - $grid->column('回调地址')->display(function ($title, $column) { - return '点击查看'; - })->modal(function ($model) { - $data = [ - [ - $this->callback, - ], - ]; - - return new Table(['url'], $data); - - }); - - $grid->column('密钥')->display(function ($title, $column) { - return '点击查看'; - })->modal(function ($model) { - $data = [ - [ - '服务秘钥', $model->server_key ?? '---', - ], - [ - 'DES3秘钥', $model->des3key ?? '---', - ], - ]; - - return new Table(['名称', '参数'], $data); - - }); - - $grid->column('nickname', '渠道/网点'); - $grid->column('用户身份')->display(function () { - if ($this->identity_id == 1) { - return "

" . $this->identity_text . "

"; - } else { - return $this->identity_text; - } - - }); - - $grid->column('隶属渠道')->display(function () { - return $this->parent ? $this->parent->nickname : '---'; - }); - - if ($user->id == 1) { - $grid->column('分润规则')->display(function ($title, $column) { - return '点击展开'; - })->modal(function ($model) { - if ($model->code) { - $codes = $model->code->map(function ($code) { - return $code->only(['name', 'code', 'profit']); - }); - - return new Table(['名称', '规则项', '分润金额(元)'], $codes->toArray()); - } - - }); - } - - $grid->column('created_at', '注册时间'); - $grid->disableExport(false); - - $grid->export(function ($export) { - $export->except(['密钥', '分润规则']); - $export->column('用户身份', function ($value, $original) { - return strip_tags($value); - }); - $export->column('渠道编号', function ($value, $original) { - return $value . "\t"; - }); - $export->column('网点编号', function ($value, $original) { - return $value . "\t"; - }); - $export->filename('用户管理' . date("YmdHis")); - }); - - return $grid; - } - - /** - * Notes: - * @Author: - * @Date : 2019/9/18 14:50 - * @return Form - */ - protected function form() - { - $province = Area::where('parent_id', 1)->pluck('name', 'code'); - - $form = new Form(new User); - $identity = Identity::find(1); - - $form->text('username', '登录账户') - ->creationRules(['required', "unique:users", 'max:11'], ['max' => '小于11个字符']) - ->updateRules(['required', "unique:users,username,{{id}}"])->required(); - - $form->password('password', '登录密码') - ->creationRules('required|min:6', [ - 'required' => '必填', - 'min' => '密码不能少于6个字符', - ]); - - $form->text('PaOutletId', '平安网点id'); - - $form->select('type', '项目') - ->options(['pingan' => '平安券和自有券', 'wo' => '沃支付']) - ->load('parent_id', '/admin/user/parent') - ->required(); - - $form->select('parent_id', '隶属渠道') - ->options(function ($option, $info) { - $user = $this; - if (!$option || ($user && $user->identity_id == 2)) { - return User::with('info')->whereHas('identity', function ($q) { - $q->where('identity_id', 1); - })->when(isset($user->id), function ($q) use ($user) { - $q->where('type', $user->type); - })->orderBy('id', 'desc')->get()->pluck('nickname', 'id'); - } else { - return [0 => '没有隶属渠道']; - } - }) - ->default(function ($info) { - if ($info->model() && $info->model()->parent) { - return $info->model()->parent_id; - } else { - return 0; - } - }) - ->help('未选择隶属渠道创建渠道账号,选择隶属渠道创建网点账号'); - - $form->select('province_id', '行政省份') - ->options($province) - ->load('city_id', '/admin/ajax/areas/children') - ->required(); - - $form->select('city_id', '行政城市')->options(function ($option, $info) { - if ($option) { - return Area::whereHas('parent', function ($q) use ($info) { - $q->where('code', $this->province_id); - })->pluck('name', 'code'); - } - })->load('district_id', '/admin/ajax/areas/children')->required(); - - $form->select('district_id', '行政区域')->options(function ($option, $info) { - if ($option) { - return Area::whereHas('parent', function ($q) use ($info) { - $q->where('code', $this->city_id); - })->pluck('name', 'code'); - } - })->required(); - - $form->divider('用户资料'); - $form->text('info.nickname', '渠道/网点')->placeholder('请输入渠道/网点名称')->required(); - - $form->saved(function (Form $form) { - $user_id = $form->model()->id; - $user = User::find($user_id); - if ($user->identity_id == 1 && $user->code()->count() === 0) { - $userCodes = Identity::find(1)->codes->map(function ($code) { - return $code->only(['name', 'code', 'profit']); - }); - $user->code()->createMany($userCodes); - } - - if ($user->parent_id) { - if ($user->server_id != $user->parent->server_id) { - $user->server_id = $user->parent->server_id; - $user->save(); - } - } - - }); - - return $form; - } - - /** - * 获取隶属 - * @author 玄尘 2020-03-12 - * @param Request $request [description] - * @return [type] [description] - */ - public function getParent(Request $request) - { - $type = $request->get('q'); - - $users = User::whereHas('identity', function ($query) { - $query->where('identity_id', 1); - })->get(); - - $userRet = $users->map(function ($code) { - return [ - 'id' => $code->id, - 'text' => $code->info->nickname, - ]; - }); - $userRet->prepend(['id' => '', 'text' => '']); - - return $userRet; - } - -} + + * @Date : 2019/9/18 14:50 + * @return Grid + */ + protected function grid() + { + $user = Auth::guard('admin')->user(); + $grid = new Grid(new User); + + $grid->actions(function ($actions) use ($user) { + $actions->disableDelete(); + $actions->disableView(); + + if ($actions->row->identity_id == 1) { + $actions->add(new RefD3Key); + $actions->add(new ReCode); + $actions->add(new Callback); + } + + if ($actions->row->identity_id == 1 && $user->id == 1) { + $actions->add(new Profit); + } + }); + + $grid->tools(function (Grid\Tools $tools) { + // $tools->append(new UserImport); + }); + + $grid->model()->orderBy('id', 'desc'); + + $grid->quickSearch('username')->placeholder('登录账户'); + + $grid->filter(function ($filter) { + $filter->column(1 / 2, function ($filter) { + $filter->like('username', '登录账户'); + $filter->like('server_id', '渠道编号'); + $filter->like('outlet_id', '网点编号'); + $filter->like('PaOutletId', '平安网点id'); + $filter->between('created_at', '注册时间')->datetime(); + }); + $filter->column(1 / 2, function ($filter) { + $filter->like('info.nickname', '渠道/网点'); + $filter->like('server_key', '服务秘钥'); + $filter->equal('identity.identity_id', '用户身份')->select([ + ' ' => '全部', + '1' => '渠道商', + '2' => '网点', + ]); + $filter->equal('type', '所属项目')->select([ + ' ' => '全部', + 'pingan' => '平安券', + 'wo' => '沃支付', + ]); + }); + }); + + $grid->column('id', '#ID#'); + $grid->column('username', '登录账户'); + $grid->column('渠道编号')->display(function () { + return $this->server_id; + }); + $grid->column('网点编号')->display(function () { + return $this->outlet_id ?? '---'; + }); + + $grid->column('平安网点id')->display(function () { + return $this->PaOutletId ?? '---'; + }); + + $grid->column('所属项目')->display(function () { + return $this->type_text; + }); + + $grid->column('回调地址')->display(function ($title, $column) { + return '点击查看'; + })->modal(function ($model) { + $data = [ + [ + $this->callback, + ], + ]; + + return new Table(['url'], $data); + + }); + + $grid->column('密钥')->display(function ($title, $column) { + return '点击查看'; + })->modal(function ($model) { + $data = [ + [ + '服务秘钥', $model->server_key ?? '---', + ], + [ + 'DES3秘钥', $model->des3key ?? '---', + ], + ]; + + return new Table(['名称', '参数'], $data); + + }); + + $grid->column('nickname', '渠道/网点'); + $grid->column('用户身份')->display(function () { + if ($this->identity_id == 1) { + return "

" . $this->identity_text . "

"; + } else { + return $this->identity_text; + } + + }); + + $grid->column('隶属渠道')->display(function () { + return $this->parent ? $this->parent->nickname : '---'; + }); + + $grid->column('分润规则')->display(function ($title, $column) { + return '点击展开'; + })->modal(function ($model) { + if ($model->code) { + $codes = $model->code->map(function ($code) { + return $code->only(['name', 'code', 'profit']); + }); + + return new Table(['名称', '规则项', '分润金额(元)'], $codes->toArray()); + } + + }); + + $grid->column('created_at', '注册时间'); + $grid->disableExport(false); + + $grid->export(function ($export) { + $export->except(['密钥', '分润规则']); + $export->column('用户身份', function ($value, $original) { + return strip_tags($value); + }); + $export->column('渠道编号', function ($value, $original) { + return $value . "\t"; + }); + $export->column('网点编号', function ($value, $original) { + return $value . "\t"; + }); + $export->filename('用户管理' . date("YmdHis")); + }); + + return $grid; + } + + /** + * Notes: + * @Author: + * @Date : 2019/9/18 14:50 + * @return Form + */ + protected function form() + { + $province = Area::where('parent_id', 1)->pluck('name', 'code'); + + $form = new Form(new User); + $identity = Identity::find(1); + + $form->text('username', '登录账户') + ->creationRules(['required', "unique:users", 'max:11'], ['max' => '小于11个字符']) + ->updateRules(['required', "unique:users,username,{{id}}"])->required(); + + $form->password('password', '登录密码') + ->creationRules('required|min:6', [ + 'required' => '必填', + 'min' => '密码不能少于6个字符', + ]); + + $form->text('PaOutletId', '平安网点id'); + + $form->select('type', '项目') + ->options(['pingan' => '平安券和自有券', 'wo' => '沃支付']) + ->load('parent_id', '/admin/user/parent') + ->required(); + + $form->select('parent_id', '隶属渠道') + ->options(function ($option, $info) { + $user = $this; + if (!$option || ($user && $user->identity_id == 2)) { + return User::with('info')->whereHas('identity', function ($q) { + $q->where('identity_id', 1); + })->when(isset($user->id), function ($q) use ($user) { + $q->where('type', $user->type); + })->orderBy('id', 'desc')->get()->pluck('nickname', 'id'); + } else { + return [0 => '没有隶属渠道']; + } + }) + ->default(function ($info) { + if ($info->model() && $info->model()->parent) { + return $info->model()->parent_id; + } else { + return 0; + } + }) + ->help('未选择隶属渠道创建渠道账号,选择隶属渠道创建网点账号'); + + $form->select('province_id', '行政省份') + ->options($province) + ->load('city_id', '/admin/ajax/areas/children') + ->required(); + + $form->select('city_id', '行政城市')->options(function ($option, $info) { + if ($option) { + return Area::whereHas('parent', function ($q) use ($info) { + $q->where('code', $this->province_id); + })->pluck('name', 'code'); + } + })->load('district_id', '/admin/ajax/areas/children')->required(); + + $form->select('district_id', '行政区域')->options(function ($option, $info) { + if ($option) { + return Area::whereHas('parent', function ($q) use ($info) { + $q->where('code', $this->city_id); + })->pluck('name', 'code'); + } + })->required(); + + $form->divider('用户资料'); + $form->text('info.nickname', '渠道/网点')->placeholder('请输入渠道/网点名称')->required(); + + $form->saved(function (Form $form) { + $user_id = $form->model()->id; + $user = User::find($user_id); + if ($user->identity_id == 1 && $user->code()->count() === 0) { + $userCodes = Identity::find(1)->codes->map(function ($code) { + return $code->only(['name', 'code', 'profit']); + }); + $user->code()->createMany($userCodes); + } + + if ($user->parent_id) { + if ($user->server_id != $user->parent->server_id) { + $user->server_id = $user->parent->server_id; + $user->save(); + } + } + + }); + + return $form; + } + + /** + * 获取隶属 + * @author 玄尘 2020-03-12 + * @param Request $request [description] + * @return [type] [description] + */ + public function getParent(Request $request) + { + $type = $request->get('q'); + + $users = User::whereHas('identity', function ($query) { + $query->where('identity_id', 1); + })->get(); + + $userRet = $users->map(function ($code) { + return [ + 'id' => $code->id, + 'text' => $code->info->nickname, + ]; + }); + $userRet->prepend(['id' => '', 'text' => '']); + + return $userRet; + } + +}