From d1bc06940e6962692116b43021e09310872ddda1 Mon Sep 17 00:00:00 2001 From: xianfuxing Date: Sat, 18 Aug 2018 15:44:45 +0800 Subject: [PATCH] # up device list api --- apps/counter/api/serializers.py | 54 +++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 20 deletions(-) diff --git a/apps/counter/api/serializers.py b/apps/counter/api/serializers.py index af433ec..803da7f 100644 --- a/apps/counter/api/serializers.py +++ b/apps/counter/api/serializers.py @@ -39,36 +39,50 @@ class DeviceCountSerializer(serializers.ModelSerializer): class DeviceInfoSerializer(serializers.ModelSerializer): - compile_time = serializers.SerializerMethodField() - last_connect = serializers.SerializerMethodField() - last_offline_time = serializers.SerializerMethodField() + status = serializers.SerializerMethodField() + count = serializers.SerializerMethodField() + signal = serializers.SerializerMethodField() + energy = serializers.SerializerMethodField() + time = serializers.SerializerMethodField() class Meta: model = DeviceInfo fields = [ 'device_id', 'device_name', - 'chip_type', - 'chip_id', - 'compile_time', - 'online', - 'last_connect', - 'last_offline_time' + 'status', + 'count', + 'signal', + 'energy', + 'time', ] - def get_compile_time(self, obj): - if obj.compile_time: - return obj.compile_time.strftime('%Y-%m-%d %H:%M:%S') - return None + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + self.latest = None - def get_last_connect(self, obj): - if obj.last_connect: - return obj.last_connect.strftime('%Y-%m-%d %H:%M:%S') - return None + def get_status(self, obj): + return obj.online - def get_last_offline_time(self, obj): - if obj.last_offline_time: - return obj.last_offline_time.strftime('%Y-%m-%d %H:%M:%S') + def get_count(self, obj): + self.latest = DeviceCount.objects.filter(device_id=obj.device_id).order_by('-data_time')[0] + if self.latest: + return self.latest.count + return 0 + + def get_signal(self, obj): + if self.latest: + return self.latest.csq + return 0 + + def get_energy(self, obj): + if self.latest: + return self.latest.vol + return 0 + + def get_time(self, obj): + if self.latest: + return self.latest.data_time.strftime('%Y-%m-%d %H:%M:%S') return None