From 2d2f171c32b5ea491f8aeaf15bd307b48214cc39 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Fri, 14 Apr 2023 16:26:21 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20tdevice=20=E8=A7=86=E9=A2=91=E9=80=9A?= =?UTF-8?q?=E9=81=93=E6=9F=A5=E8=AF=A2=E5=B8=A6third=5Finfo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/third/views_d.py | 54 ++++++++++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 11 deletions(-) diff --git a/apps/third/views_d.py b/apps/third/views_d.py index 7e3b0f98..ecb3bdc9 100644 --- a/apps/third/views_d.py +++ b/apps/third/views_d.py @@ -16,6 +16,7 @@ from rest_framework.exceptions import ParseError from django.db import transaction from rest_framework.mixins import ListModelMixin, CreateModelMixin, DestroyModelMixin, UpdateModelMixin from apps.utils.serializers import PkSerializer +from django.core.cache import cache class BltViewSet(CustomGenericViewSet): @@ -162,23 +163,54 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom macs_dict[i['mac']] = i for i in data: i['third_info'] = macs_dict.get(i['code'], {}) + elif typex == str(TDevice.DEVICE_VCHANNEL): + codes = [i['code'] for i in data] + json = { + 'unitTypeList': ["1"], + 'includeSubOwnerCodeFlag': True, + 'channelCodeList': codes, + 'pageSize': len(codes) + } + _, res = dhClient.request(**dhapis['channel_list'], json=json) + codes_dict = {} + for i in res['pageData']: + codes_dict[i['channelCode']] = i + for i in data: + i['third_info'] = codes_dict.get(i['code'], {}) if page is not None: return self.get_paginated_response(data) else: return Response(data) - @action(methods=['post'], detail=False, perms_map={'post': '*'}, - serializer_class=PkSerializer) - def start_mtask(self, request): - """开启视频算法监控 + # @action(methods=['post'], detail=False, perms_map={'post': '*'}, + # serializer_class=PkSerializer) + # def start_mtask(self, request): + # """开启视频算法监控 - 开启视频算法监控 - """ - request_data = request.data - pks = request_data.get('pks', []) - from apps.ecm.tasks import monitor_check - monitor_check(pks) - return Response() + # 开启视频算法监控 + # """ + # sr = PkSerializer(data=request.data) + # sr.is_valid(raise_exception=True) + # vdata = sr.validated_data + # from apps.ecm.tasks import monitor_check + # monitor_check(vdata) + # return Response() + + # @action(methods=['post'], detail=False, perms_map={'post': '*'}, + # serializer_class=PkSerializer) + # def stop_mtask(self, request): + # """停止视频算法监控 + + # 停止视频算法监控 + # """ + # sr = PkSerializer(data=request.data) + # sr.is_valid(raise_exception=True) + # vdata = sr.validated_data + # vcids = TDevice.objects.filter(id__in=vdata, type=TDevice.DEVICE_VCHANNEL).values_list('id', flat=True) + # for id in vcids: + # ckey = 'vchannel_' + id + # cache.delete(ckey) + # return Response() @action(methods=['post'], detail=False, perms_map={'post': '*'}, serializer_class=Serializer)