Bladeren bron

小程序二维码

wushaodong 4 jaren geleden
bovenliggende
commit
77825ad855
2 gewijzigde bestanden met toevoegingen van 19 en 6 verwijderingen
  1. 16 3
      apps/wxapp/serializers.py
  2. 3 3
      apps/wxapp/tenant/views.py

+ 16 - 3
apps/wxapp/serializers.py

@@ -71,15 +71,28 @@ class WechatBindSerializer(serializers.Serializer):
         openid = self.initial_data.get('openid')
         openid = self.initial_data.get('openid')
         phoneEncryptedData = self.initial_data.get('encryptedData')
         phoneEncryptedData = self.initial_data.get('encryptedData')
         phoneIv = self.initial_data.get('iv')
         phoneIv = self.initial_data.get('iv')
+        company_no = self.initial_data.get('company_no')
 
 
         if openid and phoneEncryptedData and phoneIv:
         if openid and phoneEncryptedData and phoneIv:
             customer = CustomerWechat.bindWechat(appid, openid, phoneEncryptedData, phoneIv)
             customer = CustomerWechat.bindWechat(appid, openid, phoneEncryptedData, phoneIv)
             user = customer.user
             user = customer.user
             payload = jwt_payload_handler(user)
             payload = jwt_payload_handler(user)
             customer_log(customer, BizLog.INSERT, u'用户微信登录,username=%s' % user.username)
             customer_log(customer, BizLog.INSERT, u'用户微信登录,username=%s' % user.username)
-            tenant_id = customer.tenant and customer.tenant.id or ''
-            company_no = customer.tenant and customer.tenant.company_no or ''
-            nick_name = customer.tenant and customer.tenant.company_name or settings.WEAPP['nick_name']
+            tenant_id = ''
+            nick_name = settings.WEAPP['nick_name']
+            if customer.tenant:
+                tenant_id = customer.tenant.id
+                company_no = customer.tenant.company_no
+                nick_name = customer.tenant.company_name
+            elif company_no:
+                # 扫二维码,没有绑定企业的用户之间绑定企业
+                tenant = Tenant.objects.filter(company_no=company_no).first()
+                if tenant:
+                    customer.tenant = tenant
+                    customer.save()
+                    tenant_id = tenant.id
+                    company_no = tenant.company_no
+                    nick_name = tenant.company_name
             is_validity = Tenant.check_validity(company_no)
             is_validity = Tenant.check_validity(company_no)
             return {
             return {
                 'token': jwt_encode_handler(payload),
                 'token': jwt_encode_handler(payload),

+ 3 - 3
apps/wxapp/tenant/views.py

@@ -18,14 +18,14 @@ class SearchTenantView(APIView):
     def get(self, request, *args, **kwargs):
     def get(self, request, *args, **kwargs):
         company_no = request.GET.get('company_no')
         company_no = request.GET.get('company_no')
         tenant = Tenant.objects.filter(company_no=company_no, status=settings.PASS).first()
         tenant = Tenant.objects.filter(company_no=company_no, status=settings.PASS).first()
-        if tenant:
+        if tenant and tenant != request.user.employee.tenant:
             data = {
             data = {
-                'id':tenant.id,
+                'company_no':tenant.company_no,
                 'company_name':tenant.company_name,
                 'company_name':tenant.company_name,
             }
             }
             return response_ok(data)
             return response_ok(data)
         else:
         else:
-            return response_error(u'未找到企业,请输入正确的企业编号')
+            return response_ok()
 
 
 class GetTenantView(APIView):
 class GetTenantView(APIView):
     permission_classes = [isLogin]
     permission_classes = [isLogin]