放开用户规则展示

This commit is contained in:
2020-09-29 15:25:36 +08:00
parent fb202ee3aa
commit 3ddfaa9502

View File

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