Browse Source

店铺登录账号管理--修改密码

master
liangyuyan 5 years ago
parent
commit
089c02cc0d
  1. 36
      app/Admin/Actions/Grid/v3/StoreUserPassword.php
  2. 63
      app/Admin/Controllers/v3/StoreUserController.php
  3. 73
      app/Admin/Forms/v3/StoreUserPasswordForm.php
  4. 2
      app/Admin/routes.php
  5. 10
      app/Models/v3/StoreUser.php
  6. 6
      config/label.php
  7. 11
      resources/lang/zh-CN/store-user.php

36
app/Admin/Actions/Grid/v3/StoreUserPassword.php

@ -0,0 +1,36 @@
<?php
namespace App\Admin\Actions\Grid\v3;
use Dcat\Admin\Grid\RowAction;
use Dcat\Admin\Widgets\Modal;
use App\Admin\Forms\v3\StoreUserPasswordForm;
class StoreUserPassword extends RowAction
{
/**
* @return string
*/
protected $title = '修改密码';
public function render()
{
$id = $this->getKey();
$modal = Modal::make()
->xl()
->title($this->title)
->body(StoreUserPasswordForm::make()->setKey($id))
->button($this->title);
return $modal;
}
public function parameters()
{
return [
];
}
}

63
app/Admin/Controllers/v3/StoreUserController.php

@ -9,9 +9,12 @@ 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.
*
@ -25,32 +28,34 @@ class StoreUserController extends AdminController
// 账号类型
$categoryList = StoreUserModel::$_USER_CATEGORY;
// 注册类型
$typeList = 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')->display(function($userCategory) use($categoryList){
return isset($categoryList[$userCategory])?$categoryList[$userCategory]:'';
});
$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_visit_time');
$grid->column('last_ip');
$grid->column('last_visit_time_text');
$grid->model()->orderBy('id', 'desc');
// 每页10条
$grid->paginate(10);
$grid->filter(function (Grid\Filter $filter) use($categoryList){
$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);
});
});
}
@ -93,16 +98,46 @@ class StoreUserController extends AdminController
$categoryList = StoreUserModel::$_USER_CATEGORY;
unset($categoryList[0]);
$form->display('id');
$form->select('store_id')->options($storeList);
$form->text('username');
$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_');
$form->password('password_confirm')->same('password');
$form->select('user_category')->options($categoryList);
$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();
});
}
}

73
app/Admin/Forms/v3/StoreUserPasswordForm.php

@ -0,0 +1,73 @@
<?php
namespace App\Admin\Forms\v3;
use App\Models\v3\GoodsBanners;
use Dcat\Admin\Widgets\Form;
use Symfony\Component\HttpFoundation\Response;
use App\Models\v3\StoreUser as StoreUserModel;
use App\Admin\Controllers\v3\StoreController;
class StoreUserPasswordForm extends Form
{
/**
* Handle the form request.
*
* @param array $input
*
* @return Response
*/
public function handle(array $input)
{
// 获取外部传递参数
$id = $input['id'];
$password= $input['password'];
if($id > 0 && !empty($password)){
$model = StoreUserModel::select('id','password','salt')->find($id);
$storeCon = new StoreController();
$salt = $storeCon->random(8);
$passwordOld = $storeCon->stringHash($password,$model->salt);
if($model && $model->password != $passwordOld){
$model->salt = $salt;
$model->password = $storeCon->stringHash($password,$salt);;
if($model->save()){
return $this->success('修改成功!');
}else{
return $this->error('修改失败!');
}
}else{
return $this->error('密码相同,无需修改!');
}
}
return $this->error('请求参数为空!');
}
/**
* Build a form here.
*/
public function form()
{
$id = $this->getKey();
$storeUser = StoreUserModel::select('username')->find($id);
$userName = empty($storeUser->username)?'':$storeUser->username;
$this->hidden('id')->value($id);
$this->display('username','账号')->value($userName);
$this->password('password')->minLength(6,'必须大于等于6位数')->required();
$this->password('password_confirm','再次输入密码')->same('password');
}
/**
* The data of the form.
*
* @return array
*/
public function default()
{
return [];
}
}

2
app/Admin/routes.php

@ -54,7 +54,7 @@ Route::group([
// 店铺
$router->resource('/store', 'v3\StoreController');
$router->resource('/store_Users', 'v3\StoreUserController');
$router->resource('/store_user', 'v3\StoreUserController');
// 商品
$router->resource('/goods', 'v3\GoodsController');
$router->resource('/goods_activity', 'v3\GoodsActivityController');

10
app/Models/v3/StoreUser.php

@ -16,9 +16,10 @@ class StoreUser extends Model
protected $appends = [
'user_category_text',
'register_type_text',
'status_text'
'status_text',
'last_visit_time_text',
];
public static $_USER_CATEGORY = ['管理员','店长', 2=>'店员'];
public static $_USER_CATEGORY = ['管理员', '店长', '店员', '默认'];
public static $_REGISTER_TYPE = ['网站注册','QQ','微信','app','商户注册默认账号','后台添加商户账号'];
public static $_STATUS = ['禁用','审核中', '正常'];
@ -37,4 +38,9 @@ class StoreUser extends Model
$value = $value ? $value : $this->status;
return isset(self::$_STATUS[$value]) ? self::$_STATUS[$value] : '';
}
public function getLastVisitTimeTextAttribute($value)
{
$value = $value ? $value : $this->last_visit_time;
return $value ? date('Y-m-d H:i',$value) : '';
}
}

6
config/label.php

@ -8,5 +8,11 @@ return [
2 => 'warning',
3 => 'danger',
-1=> 'danger'
],
'account_label'=>[
'default' => '#d3ffd3',
0 => '#f00',
1 => '#ff6600',
2 => '#1c9f78'
]
];

11
resources/lang/zh-CN/store-user.php

@ -2,18 +2,21 @@
return [
'labels' => [
'StoreUser' => '店铺账号',
'StoreUser' => '店铺账号',
'store_User' => '店铺账号',
'storeUser' => '店铺账号',
'store_user' => '店铺账号',
],
'fields' => [
'store_id' => '商家id',
'store_id' => '商家',
'username' => '账号',
'password' => '密码',
'user_category' => '账号类型',
'register_type' => '用户来源类型',
'register_type' => '注册类型',
'status' => '状态',
'join_ip' => '注册IP',
'last_visit_time' => '最后访问时间',
'last_visit_time_text' => '最后访问时间',
'last_ip' => '最后访问IP',
'remark' => '备注'
],
'options' => [
],

Loading…
Cancel
Save