From 26d9c0ee7037286ba3af00ba835182a1828aabda Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E5=89=8D=E6=98=8E?= <909355014@qq.com> Date: Thu, 25 Aug 2022 17:30:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E6=B3=A8=E5=9D=90=E6=A0=87=E4=BD=8D?= =?UTF-8?q?=E7=BD=AE=E5=92=8C=E6=89=B9=E9=87=8F=E7=BB=91=E5=AE=9A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/third/serializers.py | 5 +-- apps/third/views.py | 2 +- apps/third/views_d.py | 91 +++++++++++++++++++++------------------ 3 files changed, 52 insertions(+), 46 deletions(-) diff --git a/apps/third/serializers.py b/apps/third/serializers.py index 5c6dc451..b7041878 100755 --- a/apps/third/serializers.py +++ b/apps/third/serializers.py @@ -51,17 +51,16 @@ class RequestCommonSerializer(serializers.Serializer): class BindAreaSerializer(serializers.Serializer): - codes = serializers.ListField(child=serializers.CharField(), label='标识列表') + ids = serializers.ListField(child=serializers.CharField(), label='设备ID列表') area = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(), label="区域ID") class LabelLocationSerializer(CustomModelSerializer): - code = serializers.CharField(label='设备唯一标识') class Meta: model = TDevice - fields = ['type', 'location', 'area', 'areas', 'name', 'code'] + fields = ['location', 'area', 'areas'] class BindAreasSerializer(serializers.Serializer): diff --git a/apps/third/views.py b/apps/third/views.py index 5f10b75f..e05563b1 100755 --- a/apps/third/views.py +++ b/apps/third/views.py @@ -265,6 +265,6 @@ class DhCommonViewSet(CreateModelMixin, CustomGenericViewSet): """ 其他报警转到事件派发 """ - myLogger.info(data) + # myLogger.info(data) dispatch_dahua_event(data=data) return Response() diff --git a/apps/third/views_d.py b/apps/third/views_d.py index a8ed3d70..c1398994 100644 --- a/apps/third/views_d.py +++ b/apps/third/views_d.py @@ -374,7 +374,7 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom i['my_info'] = tds_dict[i['channelCode']] return Response(res) - @action(methods=['post'], detail=False, perms_map={'post': 'tdevice.label_location'}, + @action(methods=['post'], detail=True, perms_map={'post': 'tdevice.label_location'}, serializer_class=LabelLocationSerializer) def label_location(self, request): """ @@ -382,33 +382,38 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom 标注坐标位置 """ - serializer = self.get_serializer(data=request.data) - serializer.is_valid(raise_exception=True) - vdata = serializer.validated_data - td = TDevice.objects.filter(code=vdata['code']).first() - if td: - td.location = vdata['location'] - td.type = vdata['type'] - td.area = vdata['area'] - td.name = vdata['name'] - td.update_by = request.user - td.save() - td.areas.clear() - for i in vdata['areas']: - td.areas.add(i) - else: - td = TDevice() - td.type = vdata['type'] - td.code = vdata['code'] - td.location = vdata['location'] - td.area = vdata['area'] - td.name = vdata['name'] - td.create_by = request.user - td.save() - td.areas.clear() - for i in vdata['areas']: - td.areas.add(i) + obj = self.get_object() + sr = LabelLocationSerializer(instance=obj, data=request.data) + sr.is_valid(raise_exception=True) + sr.save() return Response() + # serializer = self.get_serializer(data=request.data) + # serializer.is_valid(raise_exception=True) + # vdata = serializer.validated_data + # td = TDevice.objects.filter(code=vdata['code']).first() + # if td: + # td.location = vdata['location'] + # td.type = vdata['type'] + # td.area = vdata['area'] + # td.name = vdata['name'] + # td.update_by = request.user + # td.save() + # td.areas.clear() + # for i in vdata['areas']: + # td.areas.add(i) + # else: + # td = TDevice() + # td.type = vdata['type'] + # td.code = vdata['code'] + # td.location = vdata['location'] + # td.area = vdata['area'] + # td.name = vdata['name'] + # td.create_by = request.user + # td.save() + # td.areas.clear() + # for i in vdata['areas']: + # td.areas.add(i) + # return Response() @action(methods=['post'], detail=False, perms_map={'post': 'tdevice.bind_area'}, serializer_class=BindAreaSerializer) @@ -420,22 +425,24 @@ class TDeviceViewSet(ListModelMixin, UpdateModelMixin, DestroyModelMixin, Custom """ serializer = self.get_serializer(data=request.data) serializer.is_valid(raise_exception=True) - vdata = serializer.vdata - area = Area.objects.get(id=vdata['area']) - for i in vdata['codes']: - td = TDevice.objects.filter(code=i['code']).first() - if td: - td.area = area - td.update_by = request.user - td.save() - else: - td = TDevice() - td.type = TDevice.DEVICE_VCHANNEL - td.code = i['code'] - td.area = area - td.create_by = request.user - td.save() + vdata = serializer.validated_data + TDevice.objects.filter(id__in=vdata['ids']).update(area=vdata['area']) return Response() + # area = Area.objects.get(id=vdata['area']) + # for i in vdata['codes']: + # td = TDevice.objects.filter(code=i['code']).first() + # if td: + # td.area = area + # td.update_by = request.user + # td.save() + # else: + # td = TDevice() + # td.type = TDevice.DEVICE_VCHANNEL + # td.code = i['code'] + # td.area = area + # td.create_by = request.user + # td.save() + # return Response() class TlogViewSet(ListModelMixin, CustomGenericViewSet):