diff --git a/apps/jqr/models.py b/apps/jqr/models.py index 7aa3bfd..6f9a963 100644 --- a/apps/jqr/models.py +++ b/apps/jqr/models.py @@ -117,9 +117,9 @@ class JqrExternalUser(models.Model): class JqrExternalFollowUser(models.Model): + id = models.BigAutoField(primary_key=True) corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') external_userid = models.CharField(max_length=60, verbose_name='外部用户id') - id = models.BigAutoField(primary_key=True) userid = models.CharField(max_length=50, verbose_name='接粉号userid') remark = models.TextField( verbose_name='该成员对此外部联系人的备注', null=True, blank=True) diff --git a/apps/jqr/serializers.py b/apps/jqr/serializers.py index 1adc52b..5a34e93 100644 --- a/apps/jqr/serializers.py +++ b/apps/jqr/serializers.py @@ -196,6 +196,10 @@ class TbMessageModelSerializer(BaseSerializer): fields = '__all__' def create(self, validated_data): - JQRMSGPubSubUtils.publish(self.context.get('request').data) + JQRMSGPubSubUtils.publish({ + **self.context.get('request').data, + 'corpid': validated_data.get('corpid'), + 'userid': validated_data.get('userid'), + }) return TbMessage(**validated_data) diff --git a/apps/jqr/views.py b/apps/jqr/views.py index fb415d8..70894a7 100644 --- a/apps/jqr/views.py +++ b/apps/jqr/views.py @@ -81,6 +81,10 @@ class HookClientController(BaseViewSet): @action(methods=['post'], detail=False, url_path='client/heartbeat') def heartbeat(self, request, *args, **kwargs): + corpid = request.query_params.get('corpid', None) + userid = request.query_params.get('userid', None) + if not corpid or not userid: + raise CustomProjectException('请选择企业和接粉号 ') serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) serializer.save() @@ -88,7 +92,16 @@ class HookClientController(BaseViewSet): @action(methods=['post'], detail=False, url_path='client/pushmsg') def pushmsg(self, request, *args, **kwargs): - serializer = self.get_serializer(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('请选择企业和接粉号 ') + data = { + **request.data, + 'corpid': corpid, + 'userid': userid + } + serializer = self.get_serializer(data=data) serializer.is_valid(raise_exception=True) serializer.save() return ApiResponse() diff --git a/apps/msg/models.py b/apps/msg/models.py index abb250a..b734c70 100644 --- a/apps/msg/models.py +++ b/apps/msg/models.py @@ -3,6 +3,9 @@ from django.db import models class TbMessage(models.Model): id = models.BigAutoField(primary_key=True) + corpid = models.CharField(max_length=32, verbose_name='企业微信corpid') + external_userid = models.CharField(max_length=60, verbose_name='外部用户id', null=True, blank=True) + userid = models.CharField(max_length=50, verbose_name='接粉号userid') create_time = models.DateTimeField(verbose_name='创建时间') update_time = models.DateTimeField(verbose_name='更新时间') remark = models.CharField(max_length=255, verbose_name='备注') diff --git a/apps/msg/utils.py b/apps/msg/utils.py index caea2b4..afea8f8 100644 --- a/apps/msg/utils.py +++ b/apps/msg/utils.py @@ -41,6 +41,5 @@ def listen(): JQRMSGPubSubUtils.msg_list.clear() -if not settings.DEBUG: - t = Thread(target=listen) - t.start() +t = Thread(target=listen) +t.start()