| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- # coding:utf-8
- import datetime
- from rest_framework.response import Response
- from rest_framework.views import APIView
- from drf_spectacular.utils import extend_schema, OpenApiResponse, OpenApiParameter, OpenApiExample, OpenApiTypes
- from rest_framework.generics import GenericAPIView
- from ..models import PhotoForbiddenInfo
- from monitor.pagination import CustomPagination
- from monitor.permissions import LoginPermission
- from .serializers import PhotoMonitorListSerializer, PhotoMonitorPostSerializer
- class PhotoMonitorView(GenericAPIView):
- # queryset = PhotoForbiddenInfo.objects.using('siqing').filter(is_allowrd=1).order_by('-id')
- queryset = PhotoForbiddenInfo.objects.using('siqing').exclude(is_allowrd=1).order_by('-id')
- serializer_class = PhotoMonitorListSerializer
- pagination_class = CustomPagination
- permission_classes = [LoginPermission]
- def get_serializer_class(self):
- if self.request.method == 'POST':
- return PhotoMonitorPostSerializer
- return self.serializer_class
- @extend_schema(
- parameters=[
- OpenApiParameter(
- name='page',
- type=OpenApiTypes.STR,
- location=OpenApiParameter.QUERY,
- description='页码,第几页',
- ),
- OpenApiParameter(
- name='size',
- type=OpenApiTypes.STR,
- location=OpenApiParameter.QUERY,
- description='每页条目数',
- ),
- OpenApiParameter(
- name='device_id',
- type=OpenApiTypes.STR,
- location=OpenApiParameter.QUERY,
- description='设备编号',
- ),
- ],
- description="获取待解封列表接口",
- request=None,
- responses=PhotoMonitorListSerializer
- )
- def get(self, request):
- '''获取待解封列表接口'''
- device_id = request.query_params.get('device_id', '').strip()
- queryset = self.get_queryset()
- if device_id:
- queryset = queryset.filter(device_id__contains=device_id)
- page_data = self.paginate_queryset(queryset)
- ser_obj = self.get_serializer(page_data, many=True)
- data = self.get_paginated_response(ser_obj.data)
- return data
- @extend_schema(
- description="解封封禁接口",
- request=PhotoMonitorPostSerializer,
- responses=None
- )
- def post(self, request):
- '''解封封禁'''
- ser_obj = self.get_serializer(data=request.data)
- ser_obj.is_valid(raise_exception=True)
- device_id = request.data['device_id']
- queryset = self.get_queryset()
- queryset = queryset.filter(device_id=device_id)
- if queryset:
- queryset.update(is_allowrd=2, operate_time=datetime.datetime.now())
- return Response(status=200)
|