diff --git a/test_server/crm/views.py b/test_server/crm/views.py index 0ca10c2..9618a8f 100644 --- a/test_server/crm/views.py +++ b/test_server/crm/views.py @@ -652,12 +652,18 @@ class WxphoneRegister(APIView): data = request.data pc = WXBizDataCrypt(appid, data['sessionKey']) wxdata = pc.decrypt(data['encryptedData'], data['iv']) - request.user.username = wxdata['phoneNumber'] - if request.user.role.name =='游客': - request.user.role = ConsumerRole.objects.get(name='注册用户') - if not request.user.workscope: - request.user.workscope = WorkScope.objects.all().first() - request.user.save() + phoneNumber = wxdata['phoneNumber'] + consumer = Consumer.objects.filter(username=phoneNumber).first() + if consumer: + consumer.username = phoneNumber + consumer.save() + else: + request.user.username = phoneNumber + if request.user.role.name =='游客': + request.user.role = ConsumerRole.objects.get(name='注册用户') + if not request.user.workscope: + request.user.workscope = WorkScope.objects.all().first() + request.user.save() return Response(status=status.HTTP_200_OK) class change_remain_count(APIView):