Browse Source

用户管理

moonsflyer 8 tháng trước cách đây
mục cha
commit
d0dbb56570

+ 24 - 2
app/adminapi/controller/user/UserController.php

@@ -52,7 +52,18 @@ class UserController extends BaseAdminController
         return $this->success('', $detail);
     }
 
-
+    /**
+     * @notes 新增用户信息
+     * @return \think\response\Json
+     * @author 段誉
+     * @date 2022/9/22 16:34
+     */
+    public function add()
+    {
+        $params = (new UserValidate())->post()->goCheck('addInfo');
+        UserLogic::addUserInfo($params);
+        return $this->success('新增成功', [], 1, 1);
+    }
     /**
      * @notes 编辑用户信息
      * @return \think\response\Json
@@ -65,7 +76,18 @@ class UserController extends BaseAdminController
         UserLogic::setUserInfo($params);
         return $this->success('操作成功', [], 1, 1);
     }
-
+    /**
+     * @notes 新增用户信息
+     * @return \think\response\Json
+     * @author 段誉
+     * @date 2022/9/22 16:34
+     */
+    public function delete()
+    {
+        $params = (new UserValidate())->post()->goCheck('delete');
+        UserLogic::deleteUserInfo($params);
+        return $this->success('删除成功', [], 1, 1);
+    }
 
     /**
      * @notes 调整用户余额

+ 23 - 0
app/adminapi/logic/user/UserLogic.php

@@ -18,6 +18,8 @@ use app\common\enum\user\UserTerminalEnum;
 use app\common\logic\AccountLogLogic;
 use app\common\logic\BaseLogic;
 use app\common\model\user\User;
+use app\common\service\ConfigService;
+use think\facade\Config;
 use think\facade\Db;
 
 /**
@@ -116,4 +118,25 @@ class UserLogic extends BaseLogic
         }
     }
 
+    public static function addUserInfo(array $params){
+        $userSn = User::createUserSn();
+        $passwordSalt = Config::get('project.unique_identification');
+        $password = create_password($params['password'], $passwordSalt);
+        $avatar = ConfigService::get('default_image', 'user_avatar');
+
+        User::create([
+            'sn' => $userSn,
+            'avatar' => $avatar,
+            'nickname' => '用户' . $userSn,
+            'account' => $params['account'],
+            'password' => $password,
+            'channel' => 7,
+        ]);
+        return true;
+    }
+
+    public static function deleteUserInfo(array $params)
+    {
+        return User::destroy($params['id']);
+    }
 }

+ 26 - 3
app/adminapi/validate/user/UserValidate.php

@@ -24,19 +24,33 @@ use app\common\validate\BaseValidate;
  */
 class UserValidate extends BaseValidate
 {
-
+    protected $regex = [
+        'register' => '^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]+$',
+        'password' => '/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)]|[\(\)])+$)([^(0-9a-zA-Z)]|[\(\)]|[a-z]|[A-Z]|[0-9]){6,20}$/'
+    ];
     protected $rule = [
         'id' => 'require|checkUser',
         'field' => 'require|checkField',
         'value' => 'require',
+        'account'=>'require|length:3,12|unique:' . User::class . '|regex:register',
+        'password'=>'require|length:6,20|regex:password',
     ];
 
     protected $message = [
         'id.require' => '请选择用户',
         'field.require' => '请选择操作',
-        'value.require' => '请输入内容',
+        'account.require' => '请输入账号',
+        'account.regex' => '账号须为字母数字组合',
+        'account.length' => '账号须为3-12位之间',
+        'account.unique' => '账号已存在',
+        'password.require' => '请输入密码',
+        'password.length' => '密码须在6-25位之间',
+        'password.regex' => '密码须为数字,字母或符号组合',
     ];
 
+    public function sceneAddInfo(){
+        return $this->only(['account','password']);
+    }
 
     /**
      * @notes 详情场景
@@ -48,7 +62,16 @@ class UserValidate extends BaseValidate
     {
         return $this->only(['id']);
     }
-
+    /**
+     * @notes 删除场景
+     * @return UserValidate
+     * @author 段誉
+     * @date 2022/9/22 16:35
+     */
+    public function sceneDelete()
+    {
+        return $this->only(['id']);
+    }
 
     /**
      * @notes 用户信息校验