转化外部用户Id
This commit is contained in:
parent
fb30210370
commit
af56a72fc1
|
@ -35,6 +35,28 @@ class JQREventCallbackPubSub:
|
||||||
handler(callback_data, corpinfo)
|
handler(callback_data, corpinfo)
|
||||||
|
|
||||||
|
|
||||||
|
class JQREventNewUserCallbackPubSub:
|
||||||
|
rc = get_redis_connection()
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def publish(cls, data):
|
||||||
|
cls.rc.lpush(Constant.JQR_EVENT_NEW_USER_CALLBACK_PUBSUB_CHANNEL, json.dumps(data))
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def event_callback_listener(cls):
|
||||||
|
while True:
|
||||||
|
data = cls.rc.brpop(Constant.JQR_EVENT_NEW_USER_CALLBACK_PUBSUB_CHANNEL, 5)
|
||||||
|
if data is None:
|
||||||
|
time.sleep(5)
|
||||||
|
continue
|
||||||
|
data = json.loads(data[1])
|
||||||
|
callback_data = json.loads(data['data'])
|
||||||
|
corpinfo = data['corpinfo']
|
||||||
|
handler = data['handler']
|
||||||
|
handler = import_string(handler)
|
||||||
|
handler(callback_data, corpinfo)
|
||||||
|
|
||||||
|
|
||||||
class JQRQrcodeCallbackPubSub:
|
class JQRQrcodeCallbackPubSub:
|
||||||
rc = get_redis_connection()
|
rc = get_redis_connection()
|
||||||
|
|
||||||
|
@ -60,7 +82,7 @@ class JQRQrcodeCallbackPubSub:
|
||||||
|
|
||||||
|
|
||||||
if not settings.DEBUG:
|
if not settings.DEBUG:
|
||||||
t = Thread(target=JQREventCallbackPubSub.event_callback_listener)
|
t = Thread(target=JQREventNewUserCallbackPubSub.event_callback_listener)
|
||||||
t.start()
|
t.start()
|
||||||
t2 = Thread(target=JQRQrcodeCallbackPubSub.qrcode_callback_listener)
|
t2 = Thread(target=JQRQrcodeCallbackPubSub.qrcode_callback_listener)
|
||||||
t2.start()
|
t2.start()
|
||||||
|
|
|
@ -2,11 +2,10 @@ import base64
|
||||||
import json
|
import json
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
|
|
||||||
from django.utils.module_loading import import_string
|
|
||||||
from rest_framework import serializers
|
from rest_framework import serializers
|
||||||
|
|
||||||
from apps.jqr.models import JqrHookUser
|
from apps.jqr.models import JqrHookUser
|
||||||
from apps.jqr.pubsub import JQREventCallbackPubSub
|
from apps.jqr.pubsub import JQREventNewUserCallbackPubSub, JQREventCallbackPubSub
|
||||||
from apps.jqr.tasks import save_add_contact, delete_add_contact, edit_add_contact, save_add_contact_by_channel, \
|
from apps.jqr.tasks import save_add_contact, delete_add_contact, edit_add_contact, save_add_contact_by_channel, \
|
||||||
edit_add_contact_by_channel, delete_add_contact_by_channel
|
edit_add_contact_by_channel, delete_add_contact_by_channel
|
||||||
from apps.msg.models import TbMessage
|
from apps.msg.models import TbMessage
|
||||||
|
@ -109,7 +108,7 @@ class WechatEncryptSerializer(serializers.Serializer):
|
||||||
data['agentid'] = corp.agentid
|
data['agentid'] = corp.agentid
|
||||||
data['uid'] = corp.uid
|
data['uid'] = corp.uid
|
||||||
# save_add_contact.delay(data, corp.to_dict(['corpid', 'appsecret']))
|
# save_add_contact.delay(data, corp.to_dict(['corpid', 'appsecret']))
|
||||||
JQREventCallbackPubSub.publish({
|
JQREventNewUserCallbackPubSub.publish({
|
||||||
'handler': f'{save_add_contact_by_channel.__module__}.{save_add_contact_by_channel.__name__}',
|
'handler': f'{save_add_contact_by_channel.__module__}.{save_add_contact_by_channel.__name__}',
|
||||||
'data': json.dumps(data),
|
'data': json.dumps(data),
|
||||||
'corpinfo': corp.to_dict(['corpid', 'appsecret']),
|
'corpinfo': corp.to_dict(['corpid', 'appsecret']),
|
||||||
|
@ -153,7 +152,7 @@ class WechatEncryptSerializer(serializers.Serializer):
|
||||||
data['agentid'] = corp.agentid
|
data['agentid'] = corp.agentid
|
||||||
data['uid'] = corp.uid
|
data['uid'] = corp.uid
|
||||||
# save_add_contact.delay(data, corp.to_dict(['corpid', 'appsecret']))
|
# save_add_contact.delay(data, corp.to_dict(['corpid', 'appsecret']))
|
||||||
JQREventCallbackPubSub.publish({
|
JQREventNewUserCallbackPubSub.publish({
|
||||||
'handler': f'{save_add_contact_by_channel.__module__}.{save_add_contact_by_channel.__name__}',
|
'handler': f'{save_add_contact_by_channel.__module__}.{save_add_contact_by_channel.__name__}',
|
||||||
'data': json.dumps(data),
|
'data': json.dumps(data),
|
||||||
'corpinfo': corp.to_dict(['corpid', 'appsecret']),
|
'corpinfo': corp.to_dict(['corpid', 'appsecret']),
|
||||||
|
@ -185,6 +184,8 @@ class WechatEncryptSerializer(serializers.Serializer):
|
||||||
"""
|
"""
|
||||||
print('客户群创建事件')
|
print('客户群创建事件')
|
||||||
print(data)
|
print(data)
|
||||||
|
corp = self.context.get('corp')
|
||||||
|
data['chat_id'] = data.pop('chatid')
|
||||||
|
|
||||||
def handle_change_external_chat_update(self, data):
|
def handle_change_external_chat_update(self, data):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -43,6 +43,6 @@ class JQRMSGPubSub:
|
||||||
cls.msg_list.clear()
|
cls.msg_list.clear()
|
||||||
|
|
||||||
|
|
||||||
if not settings.DEBUG:
|
# if not settings.DEBUG:
|
||||||
t = Thread(target=JQRMSGPubSub.listen)
|
# t = Thread(target=JQRMSGPubSub.listen)
|
||||||
t.start()
|
# t.start()
|
||||||
|
|
|
@ -4,8 +4,8 @@ class Constant:
|
||||||
WECHAT_WORKER_TOKEN = 'wechat:worker:token:'
|
WECHAT_WORKER_TOKEN = 'wechat:worker:token:'
|
||||||
WECHAT_WORKER_TOKEN_EXPIRES = 6000
|
WECHAT_WORKER_TOKEN_EXPIRES = 6000
|
||||||
JQR_MSG_PUBSUB_CHANNEL = 'jqr:msg'
|
JQR_MSG_PUBSUB_CHANNEL = 'jqr:msg'
|
||||||
|
JQR_EVENT_NEW_USER_CALLBACK_PUBSUB_CHANNEL = 'jqr:event:new:user:cb'
|
||||||
JQR_EVENT_CALLBACK_PUBSUB_CHANNEL = 'jqr:event:cb'
|
JQR_EVENT_CALLBACK_PUBSUB_CHANNEL = 'jqr:event:cb'
|
||||||
JQR_EVENT_CALLBACK_TYPE = ''
|
|
||||||
JQR_QRCODE_PUBSUB_CHANNEL = 'jqr:qrcode'
|
JQR_QRCODE_PUBSUB_CHANNEL = 'jqr:qrcode'
|
||||||
ONE = 1
|
ONE = 1
|
||||||
TWO = 2
|
TWO = 2
|
||||||
|
|
Loading…
Reference in New Issue