diff --git a/apps/counter/api/serializers.py b/apps/counter/api/serializers.py index d2bc813..d511f01 100644 --- a/apps/counter/api/serializers.py +++ b/apps/counter/api/serializers.py @@ -32,6 +32,7 @@ def get_device_latest_by_cache(device_id, key="device_latest_{}"): latest = cache.get(latest_key) if latest: return latest + latest = DeviceCount.objects.filter(device_id=device_id).order_by('-data_time').first() if latest is None: return None @@ -235,6 +236,13 @@ class DeviceInfoSerializer(serializers.ModelSerializer): def get_count(self, obj) -> str: self.latest = get_device_latest_by_cache(obj.device_id) + + # 区分一代和二代设备 + if obj.chip_type == 'AIR-V2': + mosq_device_info = MosquitoDeviceInfo.objects.filter(device_id=obj.device_id).first() + if mosq_device_info and mosq_device_info.count: + return mosq_device_info.count + if self.latest: return self.latest['count'] return '0'