标注坐标位置修改
This commit is contained in:
parent
1850d0b23a
commit
43efaab8cd
|
@ -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列表",
|
||||
|
|
|
@ -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'},
|
||||
|
|
Loading…
Reference in New Issue