标注坐标位置修改

This commit is contained in:
曹前明 2022-06-29 16:56:59 +08:00
parent 1850d0b23a
commit 43efaab8cd
2 changed files with 9 additions and 20 deletions

View File

@ -1,6 +1,8 @@
from rest_framework import serializers
from apps.am.models import Area
from apps.third.models import TDevice
from apps.utils.serializers import CustomModelSerializer
class RequestCommonSerializer(serializers.Serializer):
@ -23,12 +25,14 @@ class BindAreaSerializer(serializers.Serializer):
label="区域ID")
class LabelLocationSerializer(serializers.Serializer):
code = serializers.CharField(label='设备唯一标识')
location = serializers.JSONField(label='坐标信息')
class LabelLocationSerializer(CustomModelSerializer):
class Meta:
model = TDevice
fields = ['type', 'location', 'area', 'areas']
class BindAreasSerializer(serializers.Serializer):
type = serializers.CharField(label='设备类型')
codes = serializers.ListField(child=serializers.CharField(), label='标识列表')
areas = serializers.PrimaryKeyRelatedField(queryset=Area.objects.all(),
label="区域ID列表",

View File

@ -50,29 +50,14 @@ class TDeviceViewSet(CustomGenericViewSet):
_, res = dhClient.request(**dhapis['channel_list'], json=request.data)
return Response(res)
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:label_location'},
serializer_class=LabelLocationSerializer)
@action(methods=['post'], detail=True, perms_map={'post': 'tdevice:label_location'},
serializer_class=LabelLocationSerializer, lookup_field='code')
def label_location(self, request):
"""
标注坐标位置
标注坐标位置
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
vdata = serializer.vdata
td = TDevice.objects.filter(code=vdata['code']).first()
if td:
td.location = vdata['location']
td.update_by = request.user
td.save()
else:
td = TDevice()
td.type = TDevice.DEVICE_VCHANNEL
td.code = vdata['code']
td.location = vdata['location']
td.create_by = request.user
td.save()
return Response()
@action(methods=['post'], detail=False, perms_map={'post': 'tdevice:bind_area'},