feat: 完善设备详情接口

This commit is contained in:
xianfx 2024-03-05 23:42:35 +08:00
parent 90f526fb52
commit 82cfc846c7
1 changed files with 25 additions and 0 deletions

View File

@ -7,6 +7,9 @@ from mosquito.models import DeviceInfo as MosquitoDeviceInfo
class DeviceInfoMobileSerializer(serializers.ModelSerializer): class DeviceInfoMobileSerializer(serializers.ModelSerializer):
device_name = serializers.SerializerMethodField() device_name = serializers.SerializerMethodField()
status = serializers.SerializerMethodField() status = serializers.SerializerMethodField()
csq = serializers.SerializerMethodField()
count = serializers.SerializerMethodField()
vol = serializers.SerializerMethodField()
coordinate = serializers.SerializerMethodField() coordinate = serializers.SerializerMethodField()
location = serializers.SerializerMethodField() location = serializers.SerializerMethodField()
@ -16,6 +19,9 @@ class DeviceInfoMobileSerializer(serializers.ModelSerializer):
'device_id', 'device_id',
'device_name', 'device_name',
'status', 'status',
'count',
'csq',
'vol',
'coordinate', 'coordinate',
'location', 'location',
] ]
@ -24,6 +30,7 @@ class DeviceInfoMobileSerializer(serializers.ModelSerializer):
super().__init__(*args, **kwargs) super().__init__(*args, **kwargs)
self.latest = None self.latest = None
self.cur_device = None self.cur_device = None
self.counter_device = None
def get_device_name(self, obj) -> Optional[str]: def get_device_name(self, obj) -> Optional[str]:
qs = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id) qs = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id)
@ -47,3 +54,21 @@ class DeviceInfoMobileSerializer(serializers.ModelSerializer):
if self.cur_device: if self.cur_device:
return self.cur_device.location return self.cur_device.location
return None return None
def get_count(self, obj):
device = DeviceCount.objects.filter(
device_id=self.cur_device.device_id).order_by('-data_time').first()
if device:
self.counter_device = device
return device.count
return None
def get_csq(self, obj):
if self.counter_device:
return self.counter_device.csq
return None
def get_vol(self, obj):
if self.counter_device:
return self.counter_device.vol
return None