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()