wesmiler 2 vuotta sitten
vanhempi
commit
457fa30ac2

+ 21 - 0
app/Http/Controllers/Api/v1/LoginController.php

@@ -76,6 +76,27 @@ class LoginController extends webApp
     }
     }
 
 
     /**
     /**
+     * 修改账号信息
+     * @param MemberValidator $validator
+     * @return array
+     */
+    public function forget(MemberValidator $validator)
+    {
+        $params = request()->all();
+        $params = $validator->check($params, 'forget');
+        if (!is_array($params)) {
+            return showJson($params, false);
+        }
+
+        if(!MemberService::make()->forget($this->userId, $params)){
+            $error = MemberService::make()->getError();
+            return showJson($error,false,'',$error==1040?405:0);
+        }else{
+            return showJson(1013,true);
+        }
+    }
+
+    /**
      * 发送短信验证码
      * 发送短信验证码
      * @return array
      * @return array
      */
      */

+ 77 - 0
app/Services/Api/MemberService.php

@@ -913,6 +913,83 @@ class MemberService extends BaseService
     }
     }
 
 
     /**
     /**
+     * 找回密码
+     * @param $userId
+     * @param $params
+     * @return bool
+     */
+    public function forget($params)
+    {
+        $email = isset($params['email']) ? $params['email'] : '';
+        $mobile = isset($params['mobile']) ? $params['mobile'] : '';
+        $password = isset($params['password']) ? $params['password'] : '';
+        $type = isset($params['type'])? trim($params['type']) : '';
+        $scene = isset($params['scene'])? trim($params['scene']) : '';
+        if(empty($email) && empty($mobile)){
+            $this->error = 1064;
+            return false;
+        }
+
+        if (empty($password)){
+            $this->error = 1065;
+            return false;
+        }
+
+        // 用户验证
+        if($mobile){
+            $info = $this->model->with(['parent'])->where(['mobile' => $mobile, 'mark' => 1])->select(['id','pay_password','parent_id','code', 'status'])->first();
+        }else{
+            $info = $this->model->with(['parent'])->where(['email' => $email, 'mark' => 1])->select(['id','pay_password','parent_id','code', 'status'])->first();
+        }
+        if (!$info) {
+            $this->error = 2001;
+            return false;
+        }
+
+        // 使用状态校验
+        if ($info['status'] != 1) {
+            $this->error = 2009;
+            return false;
+        }
+
+        // 邮箱验证
+        if (isset($params['email']) && $email) {
+            // 邮箱验证码
+            $code = isset($params['code'])? trim($params['code']) : '';
+            if (!EmailService::make()->check($email, $code, $scene)) {
+                $this->error = EmailService::make()->getError();
+                return false;
+            }
+        }
+
+        // 手机号验证
+        if (isset($params['mobile']) && $mobile) {
+            // 手机验证码
+            $code = isset($params['code'])? trim($params['code']) : '';
+            if (!SmsService::make()->check($mobile, $code, $scene)) {
+                $this->error = SmsService::make()->getError();
+                return false;
+            }
+        }
+
+        // 密码校验
+        $data = ['update_time' => time()];
+
+        if (isset($params['password']) && $password) {
+            $password = get_password($password);
+            $data['password'] = $password;
+        }
+
+        if($this->model->where(['id' => $info['id']])->update($data)){
+            $this->error = 1013;
+            return true;
+        }
+
+        $this->error = 1014;
+        return true;
+    }
+
+    /**
      * 身份认证
      * 身份认证
      * @param $userId
      * @param $userId
      * @param $params
      * @param $params

+ 1 - 0
resources/lang/zh-cn/api.php

@@ -64,6 +64,7 @@ return [
     '1062' => '手机验证码错误',
     '1062' => '手机验证码错误',
     '1063' => '手机验证码发送成功',
     '1063' => '手机验证码发送成功',
     '1064' => '请选择邮箱验证或手机号验证',
     '1064' => '请选择邮箱验证或手机号验证',
+    '1065' => '登录密码不为空',
 
 
     // 登录注册
     // 登录注册
     '2001'=> '账号非法或未注册',
     '2001'=> '账号非法或未注册',

+ 1 - 0
routes/api.php

@@ -23,6 +23,7 @@ Route::prefix('v1')->group(function(){
     // 登录注册、验证码
     // 登录注册、验证码
     Route::post('/login/email', [\App\Http\Controllers\Api\v1\LoginController::class, 'loginEmail']);
     Route::post('/login/email', [\App\Http\Controllers\Api\v1\LoginController::class, 'loginEmail']);
     Route::post('/login/mobile', [\App\Http\Controllers\Api\v1\LoginController::class, 'loginMobile']);
     Route::post('/login/mobile', [\App\Http\Controllers\Api\v1\LoginController::class, 'loginMobile']);
+    Route::post('/login/forget', [\App\Http\Controllers\Api\v1\LoginController::class, 'forget']);
     Route::post('/register', [\App\Http\Controllers\Api\v1\LoginController::class, 'register']);
     Route::post('/register', [\App\Http\Controllers\Api\v1\LoginController::class, 'register']);
     Route::post('/sms/send', [\App\Http\Controllers\Api\v1\LoginController::class, 'sendSms']);
     Route::post('/sms/send', [\App\Http\Controllers\Api\v1\LoginController::class, 'sendSms']);
     Route::post('/email/send', [\App\Http\Controllers\Api\v1\LoginController::class, 'sendEmail']);
     Route::post('/email/send', [\App\Http\Controllers\Api\v1\LoginController::class, 'sendEmail']);