# 添加设备日志统计历史
This commit is contained in:
parent
f908676d9b
commit
8993ec8edc
|
@ -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'
|
||||||
|
]
|
||||||
|
|
|
@ -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'),
|
||||||
]
|
]
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue