# 添加设备日志统计历史

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

View File

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

View File

@ -17,9 +17,10 @@ from .serializers import (
DeviceCountSerializer,
DeviceInfoSerializer,
LogHistorySerializer,
DeviceLogHistorySerializer,
)
from ..models import DeviceCount, DeviceInfo
from mosquito.models import MosqPostStatistic
from mosquito.models import MosqPostStatistic, DevicePostStatistic
class DeviceLogListAPIView(ListAPIView):
@ -107,3 +108,18 @@ class LogHistoryListAPIView(ListAPIView):
pagination_class = PostLimitOffsetPagination
search_fields = ['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