# 添加设备日志统计历史

This commit is contained in:
xianfuxing 2018-09-20 19:12:36 +08:00
parent f908676d9b
commit 8993ec8edc
3 changed files with 33 additions and 5 deletions

View File

@ -4,7 +4,7 @@ from datetime import datetime, time
from django.db.models import Sum from django.db.models import Sum
from rest_framework import serializers from rest_framework import serializers
from counter.models import DeviceCount, DeviceInfo from counter.models import DeviceCount, DeviceInfo
from mosquito.models import MosqPostStatistic from mosquito.models import MosqPostStatistic, DevicePostStatistic
class DeviceCountSerializer(serializers.ModelSerializer): class DeviceCountSerializer(serializers.ModelSerializer):
@ -93,7 +93,6 @@ class DeviceInfoSerializer(serializers.ModelSerializer):
return [q.longitude, q.latitude] return [q.longitude, q.latitude]
return None return None
def get_time(self, obj): def get_time(self, obj):
if self.latest: if self.latest:
return self.latest.data_time.strftime('%Y-%m-%d %H:%M:%S') return self.latest.data_time.strftime('%Y-%m-%d %H:%M:%S')
@ -108,4 +107,15 @@ class LogHistorySerializer(serializers.ModelSerializer):
'date', 'date',
'total', 'total',
'increment', 'increment',
] ]
class DeviceLogHistorySerializer(serializers.ModelSerializer):
class Meta:
model = DevicePostStatistic
fields = [
'device_id',
'total',
'date'
]

View File

@ -4,7 +4,8 @@ from .views import (
DeviceInfoListAPIView, DeviceInfoListAPIView,
DeviceLogStatisticAPIView, DeviceLogStatisticAPIView,
DeviceInfoStatisticAPIView, DeviceInfoStatisticAPIView,
LogHistoryListAPIView LogHistoryListAPIView,
DeviceLogHistoryListAPIView
) )
@ -14,5 +15,6 @@ urlpatterns = [
path('device/', DeviceInfoListAPIView.as_view(), name='device'), path('device/', DeviceInfoListAPIView.as_view(), name='device'),
path('logs/statistic/', DeviceLogStatisticAPIView.as_view(), name='logs-statistic'), path('logs/statistic/', DeviceLogStatisticAPIView.as_view(), name='logs-statistic'),
path('logs/statistic/history/', LogHistoryListAPIView.as_view(), name='logs-statistic-history'), path('logs/statistic/history/', LogHistoryListAPIView.as_view(), name='logs-statistic-history'),
path('device/logs/history/', DeviceLogHistoryListAPIView.as_view(), name='device-logs-history'),
path('device/statistic/', DeviceInfoStatisticAPIView.as_view(), name='device-statistic'), path('device/statistic/', DeviceInfoStatisticAPIView.as_view(), name='device-statistic'),
] ]

View File

@ -17,9 +17,10 @@ from .serializers import (
DeviceCountSerializer, DeviceCountSerializer,
DeviceInfoSerializer, DeviceInfoSerializer,
LogHistorySerializer, LogHistorySerializer,
DeviceLogHistorySerializer,
) )
from ..models import DeviceCount, DeviceInfo from ..models import DeviceCount, DeviceInfo
from mosquito.models import MosqPostStatistic from mosquito.models import MosqPostStatistic, DevicePostStatistic
class DeviceLogListAPIView(ListAPIView): class DeviceLogListAPIView(ListAPIView):
@ -107,3 +108,18 @@ class LogHistoryListAPIView(ListAPIView):
pagination_class = PostLimitOffsetPagination pagination_class = PostLimitOffsetPagination
search_fields = ['date'] search_fields = ['date']
queryset = MosqPostStatistic.objects.all().order_by('-date') queryset = MosqPostStatistic.objects.all().order_by('-date')
class DeviceLogHistoryListAPIView(ListAPIView):
serializer_class = DeviceLogHistorySerializer
permission_classes = [IsAuthenticated]
filter_backends = [SearchFilter, OrderingFilter]
pagination_class = PostLimitOffsetPagination
search_fields = ['device_id', 'date']
def get_queryset(self, *args, **kwargs):
queryset_list = DevicePostStatistic.objects.get_queryset().order_by('-date')
device_id = self.request.GET.get('device_id')
if device_id:
queryset_list = queryset_list.filter(device_id__icontains=device_id)
return queryset_list