Bläddra i källkod

完善安卓微信授权绑定逻辑

sunxbiao 1 år sedan
förälder
incheckning
6da44e68ee

+ 48 - 15
app/common/repositories/user/UserExtractRepository.php

@@ -1056,24 +1056,57 @@ class UserExtractRepository extends BaseRepository
1056 1056
         }
1057 1057
         return ["msg"=>'绑定成功'];
1058 1058
     }
1059
-    public function band_openid($openid,$uid){
1060
-        $user_data["wechat_user_id"]=$openid;
1061
-        $user_count=Db::name('user')->where($user_data)->count();
1062
-        if($user_count>0){
1063
-            return true;
1064
-        }
1065
-        $data["openid"]=$openid;
1066
-        $count=Db::name("user_extract_openid")->where($data)->count();
1067
-        if($count>0){
1059
+
1060
+    public function band_openid($openid, $uid, $nickname = '', $avatar = '')
1061
+    {
1062
+        // 屎山上边堆屎
1063
+        $existUid = Db::name('user_extract_openid')->where('openid', $openid)->value('uid');
1064
+        if (!empty($existUid) && $existUid != $uid) {
1068 1065
             return false;
1069 1066
         }
1070
-        $data["uid"]=$uid;
1071
-
1072
-        $wx_type=input("wx_type/d",0);
1073
-        $data["type"]=$wx_type==1?1:0;
1074
-        Db::name("user_extract_openid")->insert($data);
1067
+        $check = Db::name('user_extract_openid')->where('uid', $uid)->value('openid');
1068
+        if (!empty($check)) {
1069
+            if ($check != $openid) {
1070
+                return false;
1071
+            }
1072
+        } else {
1073
+            Db::name("user_extract_openid")->insert([
1074
+                'uid' => $uid,
1075
+                'openid' => $openid,
1076
+                'type' => 1
1077
+            ]);
1078
+        }
1079
+        /** @var UserRepository  $userRepository */
1080
+        $userRepository = app()->make(UserRepository::class);
1081
+        $userRepository->updateUser(
1082
+            $uid,
1083
+            ['wechat_user_id' => $openid],
1084
+            [
1085
+                "type" => 1,
1086
+                "uid" => $uid,
1087
+                "nickname" => $nickname,
1088
+                "avater" => $avatar,
1089
+            ]
1090
+        );
1075 1091
         return true;
1076
-//        return ["msg"=>'绑定成功'];
1092
+
1093
+        // $user_data["wechat_user_id"] = $openid;
1094
+        // $user_count = Db::name('user')->where($user_data)->count();
1095
+        // if ($user_count < 0) {
1096
+        //
1097
+        // }
1098
+        // $data["openid"] = $openid;
1099
+        // $count = Db::name("user_extract_openid")->where($data)->count();
1100
+        // if ($count > 0) {
1101
+        //     return false;
1102
+        // }
1103
+        // $data["uid"] = $uid;
1104
+        //
1105
+        // $wx_type = input("wx_type/d", 0);
1106
+        // $data["type"] = $wx_type == 1 ? 1 : 0;
1107
+        // Db::name("user_extract_openid")->insert($data);
1108
+        // return true;
1109
+        // //        return ["msg"=>'绑定成功'];
1077 1110
     }
1078 1111
 
1079 1112
     /*获取绑卡账户*/

+ 3 - 1
app/controller/api/user/UserExtract.php

@@ -171,11 +171,13 @@ class UserExtract extends BaseController
171 171
     public function band_openid(){
172 172
         $type=input("type/d","1");
173 173
         $openid=input("openid","");
174
+        $nickname = input("nickname", "");
175
+        $avatar = input("openid", "");
174 176
         if(empty($openid)){
175 177
             return app('json')->fail("绑定微信失败");
176 178
         }
177 179
         $uid = $this->request->uid();
178
-        $res=$this->repository->band_openid($openid,$uid);
180
+        $res=$this->repository->band_openid($openid,$uid, $nickname, $avatar);
179 181
         if($res){
180 182
             return app('json')->success('绑定成功');
181 183
         }