wesmiler пре 2 месеци
родитељ
комит
77778896be
3 измењених фајлова са 45 додато и 17 уклоњено
  1. 2 2
      app/Http/Controllers/Api/v1/MemberController.php
  2. 42 15
      app/Services/Api/MemberService.php
  3. 1 0
      routes/api.php

+ 2 - 2
app/Http/Controllers/Api/v1/MemberController.php

@@ -63,11 +63,11 @@ class MemberController extends webApp
      * 设置资料
      * @return array
      */
-    public function setEntry()
+    public function setProfile()
     {
         try {
             $params = request()->all();
-            if (!MemberService::make()->setEntry($this->userId, $params)) {
+            if (!MemberService::make()->setProfile($params)) {
                 return showJson(MemberService::make()->getError(), false);
             } else {
                 return showJson(1019, true);

+ 42 - 15
app/Services/Api/MemberService.php

@@ -210,23 +210,57 @@ class MemberService extends BaseService
     }
 
 
-    public function bindPhone()
+    public function setProfile($params)
     {
+        $id = isset($params['id'])? $params['id'] : 0;
+        $code = isset($params['code'])? $params['code'] : '';
+        $avatar = isset($params['avatar'])? $params['avatar'] : '';
+        $nickname = isset($params['nickname'])? $params['nickname'] : '';
+        if($id<=0 || empty($code)){
+            $this->error = '授权参数错误,请刷新重试';
+            return false;
+        }
 
-        // 获取手机号信息
-        $phone = '';
-        $pcode = isset($params['pcode']) ? $params['pcode'] : '';
-        if ($pcode) {
-            $phoneData = MpService::make()->getPhoneNumber($pcode);
-            $phoneData = isset($phoneData['phone_info']) ? $phoneData['phone_info'] : [];
-            $phone = isset($phoneData['phoneNumber']) ? $phoneData['phoneNumber'] : '';
+        if(empty($avatar) || empty($nickname)){
+            $this->error = '请先获取用户授权信息';
+            return false;
         }
 
+        $userInfo = $this->model->where(['id'=>$id,'mark'=>1])
+            ->select(['id as uid', 'nickname', 'openid','avatar'])
+            ->first();
+        if(empty($userInfo)){
+            $this->error = '授权登录失败,请刷新重试';
+            return false;
+        }
+
+        // 获取手机号信息
+        $phoneData = MpService::make()->getPhoneNumber($code);
+        $phoneData = isset($phoneData['phone_info']) ? $phoneData['phone_info'] : [];
+        $phone = isset($phoneData['phoneNumber']) ? $phoneData['phoneNumber'] : '';
+
         if (empty($phone)) {
             $this->error = MpService::make()->getError();
             return false;
         }
+
+        $avatar = save_base64_image($avatar, 'avatar');
+        if(!$this->model->where(['id'=>$id])->update(['mobile'=>$phone,'nickname'=>$nickname,'avatar'=>$avatar,'update_time'=>time()])){
+            $this->error = '获取授权信息失败';
+            return false;
+        }
+
+        $this->error = '登录成功';
+
+        // 获取登录授权token
+        $token = JwtService::make()->encode($id);
+        return [
+            'access_token'=> $token,
+            'info'=> $userInfo
+        ];
     }
+
+
     /**
      * 重置密码
      * @param $params
@@ -242,13 +276,6 @@ class MemberService extends BaseService
             return false;
         }
 
-        // 验证码验证
-        $smsCode = isset($params['sms_code']) ? trim($params['sms_code']) : '';
-        if (!SmsService::make()->check($mobile, $smsCode, 'reset_password')) {
-            $this->error = SmsService::make()->getError();
-            return false;
-        }
-
         // 验证是否注册
         if (!$userId = $this->model->where(['mobile' => $mobile, 'mark' => 1])->value('id')) {
             $this->error = 1038;

+ 1 - 0
routes/api.php

@@ -21,6 +21,7 @@ Route::prefix('v1')->group(function() {
     Route::post('/login', [\App\Http\Controllers\Api\v1\LoginController::class, 'login']);
     Route::post('/mpAuth', [\App\Http\Controllers\Api\v1\LoginController::class, 'mpAuth']);
     Route::post('/sms/send', [\App\Http\Controllers\Api\v1\LoginController::class, 'smsSend']);
+    Route::post('/user/setProfile', [\App\Http\Controllers\Api\v1\MemberController::class, 'setProfile']);
 
     // 上传文件
     Route::post('/upload/image', [\App\Http\Controllers\Api\UploadController::class, 'uploadImage']);