回调状态修改

This commit is contained in:
AKW 2023-12-22 15:37:11 +08:00
parent 206b356316
commit c516698b06
1 changed files with 16 additions and 6 deletions

View File

@ -1,7 +1,9 @@
from datetime import datetime from datetime import datetime
from django.db.models import Value, When, Case
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.decorators import action from rest_framework.decorators import action
from rest_framework.exceptions import APIException
from rest_framework.response import Response from rest_framework.response import Response
from apps.jqr.models import JqrHookUser, JqrExternalQun, JqrSendnewusermsgrecord, JqrSendmsgrecordinfo, JqrExternalUser, \ from apps.jqr.models import JqrHookUser, JqrExternalQun, JqrSendnewusermsgrecord, JqrSendmsgrecordinfo, JqrExternalUser, \
@ -12,6 +14,7 @@ from apps.jqr.serializers import WechatPublicTokenSerializer, WechatEncryptSeria
TbMessageModelSerializer TbMessageModelSerializer
from apps.qc.models import QcCorpinfo from apps.qc.models import QcCorpinfo
from utils.base_viewsets import BaseViewSet from utils.base_viewsets import BaseViewSet
from utils.exceptions import CustomProjectException
from utils.response import ApiResponse from utils.response import ApiResponse
@ -92,8 +95,10 @@ class HookClientController(BaseViewSet):
@action(methods=['get'], detail=False, url_path='usersend/getnonvid') @action(methods=['get'], detail=False, url_path='usersend/getnonvid')
def novide(self, request, *args, **kwargs): def novide(self, request, *args, **kwargs):
corpid = request.query_params.get('corpid') corpid = request.query_params.get('corpid', None)
userid = request.query_params.get('userid') userid = request.query_params.get('userid', None)
if not corpid or not userid:
raise CustomProjectException('请选择企业和接粉号 ')
external_userids = JqrExternalFollowUser.objects.filter(corpid=corpid, userid=userid).values_list( external_userids = JqrExternalFollowUser.objects.filter(corpid=corpid, userid=userid).values_list(
'external_userid', flat=True) 'external_userid', flat=True)
external_users = JqrExternalUser.objects.filter(vid__isnull=True, corpid=corpid, external_users = JqrExternalUser.objects.filter(vid__isnull=True, corpid=corpid,
@ -109,13 +114,18 @@ class HookClientController(BaseViewSet):
@action(methods=['post'], detail=False, url_path='usersend/setvid') @action(methods=['post'], detail=False, url_path='usersend/setvid')
def setvid(self, request, *args, **kwargs): def setvid(self, request, *args, **kwargs):
data = request.data data = request.data
corpid = request.query_params.get('corpid', None)
userid = request.query_params.get('userid', None)
if not corpid or not userid:
raise CustomProjectException('请选择企业和接粉号 ')
external_users = data.get('external_users', []) external_users = data.get('external_users', [])
external_users = [JqrExternalUser(**external_user, utime=datetime.now()) for external_user in external_users] for external_user in external_users:
JqrExternalUser.objects.filter(corpid=corpid, external_userid=external_user).update(vid=external_user.get('vid'), utime=datetime.now())
quns = data.get('quns', []) quns = data.get('quns', [])
quns = [JqrExternalQun(**qun, utime=datetime.now()) for qun in quns] for qun in quns:
JqrExternalUser.objects.bulk_update(external_users, fields=['vid', 'utime']) JqrExternalQun.objects.filter(corpid=corpid, chat_id=qun.get('chat_id')).update(vid=qun.get('vid'), utime=datetime.now())
JqrExternalQun.objects.bulk_update(quns, fields=['vid', 'utime'])
return ApiResponse() return ApiResponse()
@action(methods=['post'], detail=False, url_path='usersend/updatestatus') @action(methods=['post'], detail=False, url_path='usersend/updatestatus')