diff --git a/apps/counter/api/mobile/serializers.py b/apps/counter/api/mobile/serializers.py index 062251c..2f06347 100644 --- a/apps/counter/api/mobile/serializers.py +++ b/apps/counter/api/mobile/serializers.py @@ -7,6 +7,9 @@ from mosquito.models import DeviceInfo as MosquitoDeviceInfo class DeviceInfoMobileSerializer(serializers.ModelSerializer): device_name = serializers.SerializerMethodField() status = serializers.SerializerMethodField() + csq = serializers.SerializerMethodField() + count = serializers.SerializerMethodField() + vol = serializers.SerializerMethodField() coordinate = serializers.SerializerMethodField() location = serializers.SerializerMethodField() @@ -16,6 +19,9 @@ class DeviceInfoMobileSerializer(serializers.ModelSerializer): 'device_id', 'device_name', 'status', + 'count', + 'csq', + 'vol', 'coordinate', 'location', ] @@ -24,6 +30,7 @@ class DeviceInfoMobileSerializer(serializers.ModelSerializer): super().__init__(*args, **kwargs) self.latest = None self.cur_device = None + self.counter_device = None def get_device_name(self, obj) -> Optional[str]: qs = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id) @@ -47,3 +54,21 @@ class DeviceInfoMobileSerializer(serializers.ModelSerializer): if self.cur_device: return self.cur_device.location 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