chenjunkai há 5 anos atrás
pai
commit
359e8dfc99
3 ficheiros alterados com 35 adições e 36 exclusões
  1. 32 36
      Controller/UserController.py
  2. 1 0
      Model/models.py
  3. 2 0
      Object/ResponseObject.py

+ 32 - 36
Controller/UserController.py

@@ -1580,26 +1580,29 @@ class wxPerfectView(TemplateView):
                     access_token = res_json['access_token']
                     openid = res_json['openid']
                     if access_token and openid:
-                        user_extend_qs = UserExtendModel.objects. \
-                            filter(userID_id=userID, authType=1, appBundleId=appBundleID)
-                        if user_extend_qs.exists():
-                            # 如果用户绑定过则直接登录
-                            user_extend_qs.update(authOpenID=openid)
-                            return response.json(0)
-                        else:
-                            try:
-                                nowTime = int(time.time())
-                                UserExtendModel.objects.create(
-                                    addTime=nowTime,
-                                    updTime=nowTime,
-                                    appBundleId=appBundleID,
-                                    userID_id=userID,
-                                    authType=1,
-                                    authOpenID=openid)
-                            except Exception as e:
-                                return response.json(424, repr(e))
-                            else:
+                        user_has_bind = UserExtendModel.objects.filter(authOpenID=openid)
+                        if user_has_bind.exists():
+                            user_extend_qs = UserExtendModel.objects. \
+                                filter(userID_id=userID, authType=1, appBundleId=appBundleID)
+                            if user_extend_qs.exists():
+                                user_extend_qs.update(authOpenID=openid)
                                 return response.json(0)
+                            else:
+                                try:
+                                    nowTime = int(time.time())
+                                    UserExtendModel.objects.create(
+                                        addTime=nowTime,
+                                        updTime=nowTime,
+                                        appBundleId=appBundleID,
+                                        userID_id=userID,
+                                        authType=1,
+                                        authOpenID=openid)
+                                except Exception as e:
+                                    return response.json(424, repr(e))
+                                else:
+                                    return response.json(0)
+                        else:
+                            return response.json(16)
                     else:
                         return response.json(414, 'access_token,openid')
                 else:
@@ -1959,25 +1962,18 @@ class UnbundingWXView(TemplateView):
 
     def ValidationError(self, request_dict, response):
         token = request_dict.get('token', None)
-        print(token)
-        token = request_dict.get('token')
         tko = TokenObject(token)
         if tko.code == 0:
-            try:
-                user_qs = Device_User.objects.filter(userID=tko.userID).values('phone', 'userEmail')
-                UserExtend = UserExtendModel.objects.filter(userID=tko.userID)
-                if (user_qs[0]['phone'] != '' or user_qs[0]['userEmail'] != ''):
-                    print(user_qs[0]['phone'] != '')
-                    print(user_qs[0]['userEmail'] != '')
-                    if UserExtend.exists():
-                        UserExtend.update(authOpenID='', authType=0)
-                    else:
-                        return response.json(173)
+            user_qs = Device_User.objects.filter(userID=tko.userID).values('phone', 'userEmail')
+            UserExtend = UserExtendModel.objects.filter(userID=tko.userID)
+            if (user_qs[0]['phone'] != '' or user_qs[0]['userEmail'] != ''):
+                if UserExtend.exists():
+                    UserExtend.update(authOpenID='', authType=0)
+                    return response.json(0)
                 else:
-                    print('都是空')
-                    return response.json(48)
-                return response.json(0)
-            except Exception as e:
-                return response.json(309)
+                    return response.json(173)
+            else:
+                print('都是空')
+                return response.json(48)
         else:
             return response.json(tko.code)

+ 1 - 0
Model/models.py

@@ -707,6 +707,7 @@ class UidPushModel(models.Model):
         ordering = ('-id',)
 
 
+# oauth2 第三方登录补全信息
 class UserExtendModel(models.Model):
     id = models.AutoField(primary_key=True, verbose_name='自增id')
     userID = models.ForeignKey(Device_User, to_field='userID', on_delete=models.CASCADE)

+ 2 - 0
Object/ResponseObject.py

@@ -14,6 +14,7 @@ class ResponseObject(object):
             12: 'You are not the primary user of the device!',
             14: 'Device is not belong to you',
             15: 'Device has been bound',
+            16: 'WeChat has been bound',
             44: 'System error! Can not send email',
             48: 'System object error!',
             89: 'Already send the code, please check it or get it again after 10m',
@@ -68,6 +69,7 @@ class ResponseObject(object):
             12: '非设备主用户',
             14: '设备不属于您',
             15: '设备已被绑定',
+            16: '微信已被绑定',
             44: '系统错误!无法发送电子邮件',
             48: '系统对象错误',
             89: '已发验证码,请检测或10分钟后重新获取。',