# 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):
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