Bläddra i källkod

绑定手机号调整

zhangxiaobin 1 år sedan
förälder
incheckning
627ebf6962
1 ändrade filer med 20 tillägg och 1 borttagningar
  1. 20 1
      application/api/controller/User.php

+ 20 - 1
application/api/controller/User.php

@@ -1124,6 +1124,7 @@ class User extends Api
      */
     public function bindmobile()
     {
+        Db::startTrans();
         try {
             $user = model('User')->find($this->auth->id);
             $mobile = $this->request->param('mobile');
@@ -1150,7 +1151,7 @@ class User extends Api
                 if (empty($userData['openid'])) {
                     model('User')->update(['openid'=>$user['openid']],$where);//老用户更新openid
                 } else {
-                    $this->error('该手机号已被其他用户绑定');
+                    throw new Exception('该手机号已被其他用户绑定');
                 }
             }
             //清除微信登录没绑定手机号的数据
@@ -1163,8 +1164,26 @@ class User extends Api
 
             Sms::flush($mobile, 'changemobile');
             $this->auth->direct($userData['id']);
+            //更新token
+            $userTokenWhere['user_id'] = $userDel['id'];
+            $userToken = Db::name('user_token')->where($userTokenWhere)->find();
+            if (!empty($userToken)) {
+                $userOldTokenWhere['user_id'] = $userData['id'];
+                $userOldTOken = Db::name('user_token')->where($userOldTokenWhere)->find();
+                if (!empty($userOldTOken)) {
+                    $userOldTOkenRes = Db::name('user_token')->where($userOldTokenWhere)->update(['token'=>$userToken['token']]);
+                    if ($userOldTOkenRes) {
+                       $userTokenDelRes = Db::name('user_token')->where($userTokenWhere)->delete();
+                       if (!$userTokenDelRes) {
+                           throw new Exception('绑定失败');
+                       }
+                    }
+                }
+            }
+            Db::commit();
             $this->success('success',$this->userInfo('return'));
         } catch (Exception $e) {
+            Db::rollback();
             $this->error($e->getMessage());
         }
     }