From ac099cbb6c998a3203922abe288b8ccc7fb14b7e Mon Sep 17 00:00:00 2001 From: AKW <2497744746@qq.com> Date: Wed, 27 Dec 2023 15:21:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/jqr/ksy_http.py | 22 ++++++++++++++++++++++ apps/jqr/tasks.py | 2 +- apps/jqr/utils.py | 16 ++++++++++++++++ apps/jqr/ws.py | 18 +++++++++++++----- 4 files changed, 52 insertions(+), 6 deletions(-) create mode 100644 apps/jqr/ksy_http.py diff --git a/apps/jqr/ksy_http.py b/apps/jqr/ksy_http.py new file mode 100644 index 0000000..d7b9785 --- /dev/null +++ b/apps/jqr/ksy_http.py @@ -0,0 +1,22 @@ +import requests + + +class Http(object): + BASE_URL = 'http://114.215.169.94:7035' + + @classmethod + def get_new_user_msg(cls, corpid, userid, external_userid): + url = f'{cls.BASE_URL}/api/newusermsg/getnewusermsg' + params = { + 'corpId': corpid, + 'userId': userid, + 'externalUserId': external_userid + } + res = requests.get(url, params=params) + if res.status_code == 200: + return True, res.json().get('data') + return False, None + + +if __name__ == '__main__': + Http.get_new_user_msg('ww056d00fac4950f54', 'QingFeng', 'wmy1VmQgAAWxMDKJdWrY1mY_Gl8HAHwQ') diff --git a/apps/jqr/tasks.py b/apps/jqr/tasks.py index b5f8049..0b9c2f6 100644 --- a/apps/jqr/tasks.py +++ b/apps/jqr/tasks.py @@ -78,7 +78,7 @@ def save_add_contact_by_channel(data, corpinfo, *args, **kwargs): # 修复客户关系 edit_add_contact(data, corpinfo, *args, **kwargs) # 转化外部用户Id - WS.transfer_external_userid_to_vid(f'{corpid}_{userid}', externaluserid) + WS.transfer_external_userid_to_vid(corpid, userid, externaluserid) @shared_task(name='edit_add_contact', queue='contact') diff --git a/apps/jqr/utils.py b/apps/jqr/utils.py index 0e0724c..e75c86c 100644 --- a/apps/jqr/utils.py +++ b/apps/jqr/utils.py @@ -2,7 +2,9 @@ import logging from apps.jqr.choices import JqrSendGroupMsgIsOpenChoices, JqrSendGroupMsgSendUserTypeChoices, \ JqrSendGroupMsgSendTagTypeChoices +from apps.jqr.ksy_http import Http from apps.jqr.models import JqrExternalUser, JqrHookUser, JqrNewUserSendGroupMsg, JqrExternalFollowUser +from apps.jqr.ws import WS from apps.qc.models import QcCorpinfo logger = logging.getLogger('apps') @@ -79,3 +81,17 @@ def get_jqr_new_send_msg_info(corpid, userid, external_userid): tagids = [t.get('id') for t in tag.get('tags')] if not tagids: pass + + +def send_new_user_msg(corpid, userid, external_userid): + # 发送新客欢迎 + try: + success, data = Http.get_new_user_msg(corpid, userid, external_userid) + if not success: + logger.error(f'corpid: {corpid}, userid: {userid}, external_userid: {external_userid}, 发送新客欢迎失败') + return + status_code = WS.send_wx_work_msg(data) + return status_code == 200 + except Exception as e: + logger.error(f'corpid: {corpid}, userid: {userid}, external_userid: {external_userid}, 发送新客欢迎失败: {e}') + pass diff --git a/apps/jqr/ws.py b/apps/jqr/ws.py index 0b3afa3..0263caf 100644 --- a/apps/jqr/ws.py +++ b/apps/jqr/ws.py @@ -5,23 +5,31 @@ class WS: BASE_URL = f'http://ws.xbtool.cn' @classmethod - def transfer_external_userid_to_vid(cls, client_id, external_user_ids): + def transfer_external_userid_to_vid(cls, corpid, userid, external_user_ids, is_sync=True): payload = { - "clientId": client_id, + "corpId": corpid, + "userId": userid, + "isSync": is_sync, "externalUserIds": external_user_ids } url = f'{cls.BASE_URL}/api/hook/websocket/transferexternaluseridtovid' response = requests.post(url, json=payload) + return response.status_code @classmethod - def transfer_groupid_to_roomid(cls, client_id, group_ids): + def transfer_groupid_to_roomid(cls, corpid, userid, group_ids, is_sync=True): payload = { - "clientId": client_id, + "corpId": corpid, + "userId": userid, + "isSync": is_sync, "groupIds": group_ids } url = f'{cls.BASE_URL}/api/hook/websocket/transferexternaluseridtovid' response = requests.post(url, json=payload) + return response.status_code @classmethod - def send_wx_work_msg(cls): + def send_wx_work_msg(cls, data): url = f'{cls.BASE_URL}/api/hook/websocket/sendwxworkmsg' + response = requests.post(url, json=data) + return response.status_code