From 27e7e7f0daa0d0d15322d7218dc1bdc9427b8830 Mon Sep 17 00:00:00 2001 From: AKW <2497744746@qq.com> Date: Thu, 4 Jan 2024 12:10:59 +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/tasks.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/apps/jqr/tasks.py b/apps/jqr/tasks.py index 8072688..2f1bbb4 100644 --- a/apps/jqr/tasks.py +++ b/apps/jqr/tasks.py @@ -521,3 +521,53 @@ def qrcode_channel_handler(qrcodeid, userid, externaluserid, corpinfo): alarm_userid_by_qrcodeid(qrcodeid) # 打标签备注 tag_remark_contact(qrcodeid, userid, externaluserid, corpinfo) + + +def add_qun_by_channel(data, corpinfo, *args, **kwargs): + chat_id = data.get('chatid') + corpid = corpinfo.get('corpid') + appsecret = corpinfo.get('appsecret') + wechat_worker = WechatWorkerUtil(corpid, appsecret) + success, data = wechat_worker.get_external_groupchat(chat_id) + if not success: + return + chat_data_dict = { + 'corpid': corpid, + 'addtype': JqrAddTypeChoices.EVENT_CALLBACK, + } + for key in data.keys(): + try: + JqrExternalQun._meta.get_field(key) + chat_data_dict[key] = data.get(key) + except Exception: + pass + JqrExternalQun.objects.update_or_create( + corpid=corpid, + chat_id=chat_id, + defaults=chat_data_dict # 如果创建新记录,使用这些默认值 + ) + + +def update_qun_by_channel(data, corpinfo, *args, **kwargs): + update_detail = data.get('updatedetail') + chat_id = data.get('chatid') + corpid = corpinfo.get('corpid') + qun = JqrExternalQun.objects.filter(chat_id=chat_id, corpid=corpid).first() + print(f'新增群成员,{chat_id}') + print(f'qun ---> {qun}') + if qun is None: + return + userid = qun.owner + if update_detail == 'add_member': + uid = None + hook_user = JqrHookUser.objects.filter(corpid=corpid, userid=userid).first() + if hook_user is not None: + uid = hook_user.uid + send_new_user_msg(corpid, userid, chat_id=chat_id, uid=uid) + + +def del_qun_by_channel(data, corpinfo, *args, **kwargs): + chat_id = data.get('chatid') + corpid = corpinfo.get('corpid') + logger.info(f'删除群聊,{chat_id}') + JqrExternalQun.objects.filter(chat_id=chat_id, corpid=corpid).delete()