afa 5 сар өмнө
parent
commit
66e4eec39c

+ 38 - 4
app/api/controller/User.php

@@ -6,7 +6,7 @@ use app\api\service\auth\MysqlAdapter;
 use app\api\service\auth\ApiAuthService;
 use app\api\validate\User as UserValidate;
 use think\exception\ValidateException;
-use think\Cache;
+use app\common\model\User as UserModel;
 
 class User extends Base
 {
@@ -14,15 +14,49 @@ class User extends Base
     protected $noNeedLogin = ['login'];
 
 
-    public function userinfo()
+    public function userinfo(UserModel $userModel)
     {
-        $user = $this->userinfo;
+        $user = $userModel->find($this->userinfo['id']);
         return  $this->success('ok', $user);
     }
 
+    //编辑用户
+    public function edit(UserModel $userModel){
+        $data = $this->request->post();
+        try{
+            validate(UserValidate::class)->scene('edit')->check($data);
+            $user = $userModel->find($this->userinfo['id']);
+            if(!$user){
+                return $this->error('用户不存在');
+            }
+            $user->save($data);
+            return $this->success('ok');
+        }catch (ValidateException $e) {
+            return $this->error($e->getError());
+        }
+    }
 
+    //修改密码
+    public function password(UserModel $userModel){
+        $data = $this->request->post();
+        try{
+            validate(UserValidate::class)->scene('password')->check($data);
+            $user = $userModel->find($this->userinfo['id']);
+            if(!$user){
+                return $this->error('用户不存在');
+            }
+            if($user->password != md5(md5($data['oldpassword'].$user->salt))){
+                return $this->error('旧密码错误');
+            }
+            $user->password = md5(md5($data['password'].$user->salt));
+            $user->save();
+            return $this->success('ok');
+        }catch (ValidateException $e) {
+            return $this->error($e->getError());
+        }
+    }
 
-    public function login(ApiAuthService $authService)
+    public function login(ApiAuthService $authService,UserModel $userModel)
     {
         $data = $this->request->post();
         try{

+ 2 - 3
app/api/route/route.php

@@ -11,7 +11,8 @@ Route::group('user', function () {
     Route::rule('login','user/login','POST');
     Route::rule('userinfo','user/userinfo','GET|POST');
     Route::rule('logout','user/logout','GET|POST');
-
+    Route::rule('edit','user/edit','POST');
+    Route::rule('password','user/password','POST');
     //平台
     Route::rule('platform','index/getPlatform','POST');
     //店铺
@@ -41,8 +42,6 @@ Route::group('user', function () {
     //库存记录
     Route::rule('stocklog','inventory/stocklog','POST');
 
-
-   
   })->middleware(AllowCrossDomain::class);
 
 

+ 13 - 2
app/api/validate/User.php

@@ -8,18 +8,29 @@ class User extends Validate
     protected $rule =   [
         'username'  => 'require|max:25',
         'password'  => 'require|length:6,32',
-        'email' => 'email',    
+        'nickname'  => 'require|max:25',
+        'mobile'    => 'require|number|length:11',
+        'email' => 'email',  
+        'password' => 'require|length:6,32',
+        'repassword' => 'require|length:6,32|confirm:password',
+        'oldpassword' => 'require|length:6,32',
     ];
     
     protected $message  =   [
         'name'      => '名称必须',
         'password'  => '密码长度只能在6-32之间',
-        'email'     => '邮箱格式错误',    
+        'email'     => '邮箱格式错误', 
+        'mobile'    => '手机号格式错误',
+        'nickname'  => '昵称格式错误',
+        'oldpassword' => '旧密码错误',
+        'repassword' => '两次密码不一致',
     ];
 
 
  
     protected $scene = [
         'login'  =>  ['name','password'],
+        'edit'   =>  ['mobile','nickname','email'],
+        'password' => ['password','oldpassword', 'repassword']
     ]; 
 }