# up device list api

This commit is contained in:
xianfuxing 2018-08-18 15:44:45 +08:00
parent 7f9bf60975
commit d1bc06940e
1 changed files with 34 additions and 20 deletions

View File

@ -39,36 +39,50 @@ class DeviceCountSerializer(serializers.ModelSerializer):
class DeviceInfoSerializer(serializers.ModelSerializer): class DeviceInfoSerializer(serializers.ModelSerializer):
compile_time = serializers.SerializerMethodField() status = serializers.SerializerMethodField()
last_connect = serializers.SerializerMethodField() count = serializers.SerializerMethodField()
last_offline_time = serializers.SerializerMethodField() signal = serializers.SerializerMethodField()
energy = serializers.SerializerMethodField()
time = serializers.SerializerMethodField()
class Meta: class Meta:
model = DeviceInfo model = DeviceInfo
fields = [ fields = [
'device_id', 'device_id',
'device_name', 'device_name',
'chip_type', 'status',
'chip_id', 'count',
'compile_time', 'signal',
'online', 'energy',
'last_connect', 'time',
'last_offline_time'
] ]
def get_compile_time(self, obj): def __init__(self, *args, **kwargs):
if obj.compile_time: super().__init__(*args, **kwargs)
return obj.compile_time.strftime('%Y-%m-%d %H:%M:%S') self.latest = None
return None
def get_last_connect(self, obj): def get_status(self, obj):
if obj.last_connect: return obj.online
return obj.last_connect.strftime('%Y-%m-%d %H:%M:%S')
return None
def get_last_offline_time(self, obj): def get_count(self, obj):
if obj.last_offline_time: self.latest = DeviceCount.objects.filter(device_id=obj.device_id).order_by('-data_time')[0]
return obj.last_offline_time.strftime('%Y-%m-%d %H:%M:%S') 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 return None