You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
143 lines
5.0 KiB
143 lines
5.0 KiB
<?php
|
|
|
|
namespace App\Admin\Controllers\v3;
|
|
|
|
use App\Admin\Repositories\v3\StoreUser;
|
|
use Dcat\Admin\Form;
|
|
use Dcat\Admin\Grid;
|
|
use Dcat\Admin\Show;
|
|
use Dcat\Admin\Controllers\AdminController;
|
|
use App\Models\v3\Store as StoreModel;
|
|
use App\Models\v3\StoreUser as StoreUserModel;
|
|
use App\Admin\Controllers\v3\StoreController;
|
|
use App\Admin\Actions\Grid\v3\StoreUserPassword;
|
|
|
|
class StoreUserController extends AdminController
|
|
{
|
|
|
|
/**
|
|
* Make a grid builder.
|
|
*
|
|
* @return Grid
|
|
*/
|
|
protected function grid()
|
|
{
|
|
return Grid::make(new StoreUser(), function (Grid $grid) {
|
|
// 店铺
|
|
$storeList = StoreModel::getStoreArray();
|
|
// 账号类型
|
|
$categoryList = StoreUserModel::$_USER_CATEGORY;
|
|
// 注册类型
|
|
$typeList = StoreUserModel::$_REGISTER_TYPE;
|
|
|
|
$grid->column('id')->sortable();
|
|
$grid->column('store_id')->display(function($storeId) use($storeList){
|
|
return isset($storeList[$storeId])?$storeList[$storeId]:'';
|
|
});
|
|
$grid->column('username');
|
|
$grid->column('user_category')->using($categoryList)->label(config('label.account_label'));
|
|
|
|
$grid->column('register_type')->display(function($registerType) use($typeList){
|
|
return isset($typeList[$registerType])?$typeList[$registerType]:'';
|
|
});
|
|
$grid->column('status');
|
|
$grid->column('join_ip');
|
|
|
|
$grid->column('last_ip');
|
|
$grid->column('last_visit_time_text');
|
|
$grid->model()->orderBy('id', 'desc');
|
|
// 每页10条
|
|
$grid->paginate(10);
|
|
|
|
$grid->actions([new StoreUserPassword()]);
|
|
|
|
$grid->filter(function (Grid\Filter $filter) use($categoryList,$storeList){
|
|
unset($categoryList[0]);
|
|
$filter->equal('id');
|
|
$filter->equal('user_category')->select($categoryList);
|
|
$filter->equal('store_id')->select($storeList);
|
|
});
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a show builder.
|
|
*
|
|
* @param mixed $id
|
|
*
|
|
* @return Show
|
|
*/
|
|
protected function detail($id)
|
|
{
|
|
return Show::make($id, new StoreUser(), function (Show $show) {
|
|
$show->field('id');
|
|
$show->field('store_id');
|
|
$show->field('username');
|
|
$show->field('user_category');
|
|
$show->field('register_type');
|
|
$show->field('status');
|
|
$show->field('join_ip');
|
|
$show->field('last_visit_time');
|
|
$show->field('last_ip');
|
|
$show->field('created_at');
|
|
$show->field('updated_at');
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Make a form builder.
|
|
*
|
|
* @return Form
|
|
*/
|
|
protected function form()
|
|
{
|
|
return Form::make(new StoreUser(), function (Form $form) {
|
|
// 店铺
|
|
$storeList = StoreModel::getStoreArray();
|
|
// 账号类型
|
|
$categoryList = StoreUserModel::$_USER_CATEGORY;
|
|
unset($categoryList[0]);
|
|
|
|
$form->hidden('id');
|
|
$form->hidden('salt')->default('');
|
|
$form->hidden('join_ip')->default('');
|
|
$form->select('store_id')->options($storeList)->required();
|
|
$form->select('user_category')->options($categoryList)->required();
|
|
if($form->isCreating()){
|
|
$form->text('username')->minLength(6,'必须大于等于6位字符')->required();
|
|
}else if($form->isEditing()){
|
|
$form->text('username')->disable();
|
|
}
|
|
|
|
$form->password('password')->minLength(6,'必须大于等于6位数')->required();
|
|
$form->password('password_confirm','再次输入密码')->same('password');
|
|
$form->hidden('register_type')->default(5);
|
|
$form->hidden('status')->default(2);
|
|
$form->text('remark')->default('');
|
|
|
|
$form->saving(function(Form $form){
|
|
$ip = isset($_SERVER["REMOTE_ADDR"])?$_SERVER["REMOTE_ADDR"]:'';
|
|
|
|
$userName = $form->input('username');
|
|
$password = $form->input('password');
|
|
|
|
if($form->isCreating() && !empty($password)){
|
|
$storeCon = new StoreController();
|
|
$form->salt = $storeCon->random(8);
|
|
$form->password = $storeCon->stringHash($password,$form->salt);
|
|
}
|
|
|
|
if($form->isCreating() && !empty($userName) && !empty(StoreUserModel::where('username', $userName)->first())){
|
|
return $form->error('账号已存在');
|
|
}
|
|
$form->join_ip = $ip;
|
|
$form->deleteInput('password_confirm');
|
|
});
|
|
$form->disableResetButton();
|
|
$form->disableViewCheck();
|
|
$form->disableEditingCheck();
|
|
$form->disableCreatingCheck();
|
|
$form->disableDeleteButton();
|
|
});
|
|
}
|
|
}
|